扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
作者:蓝色键盘 来源:天极论坛 2007年10月28日
关键字: Linux
下面是一个在超市中发布每日商品价格的示范程序片段。发布每日商品价格统一由程序/tmp/jiage来执行,它为每种商品价格赋值,并把相应的赋值语句写入文件/tmp/jiagebiao中。在各终端上运行的收款程序/tmp/shoukuan将读入文件 /tmp/jiagebiao中所有赋值语句并在当前进程中执行,从而获取在 程序/tmp/jiage中设定的价格。
价格设定程序/tmp/jiage:
echo “Enter the price of chicken, duck and fish: \c" read chicken duck fish exec 3>/tmp/jiagebiao echo “chicken_price=$chicken" >&3 echo “duck_price=$duck" >&3 echo “fish_price=$fish" >&3 |
执行/tmp/jiage程序后,文件/tmp/jiagebiao中将有如下内容:
chicken_price=5.4 duck_price=2.5 fish_price=4.2 |
收款程序/tmp/shoukuan:
. /tmp/jiagebiao count=0 while : do echo “Enter the trade name and quantities or input q to sum: \c" read trade$count quantity$count eval a=\$trade$count if [ “$a" = “q" ] then if [ $count -gt 0 ] then count=‘expr $count - 1’ fi break fi count=‘expr $count + 1 ’ done echo “\n‘date’" echo “trade name\tquantity\tsum" while [ “$count" -ge 0 ] do eval trade=“\${trade$count}" eval trade_price=“${trade}_price" eval danjia=\${$trade_price} eval quantity=“\${quantity$count}" sum=‘echo “scale=2; $danjia *$quantity"|bc’ echo “$trade\t\t$quantity\t\t$sum" count=‘expr $count - 1 ’ done |
在终端上执行程序/tmp/shoukuan将有如下显示:
Enter the trade name and quantities Thu Jan 28 09:29:29 BJT 1999: |
四、使用export语句
通常shell变量是局部变量,无论是通过赋值操作还是通过命令赋值,其变量值只在当前进程中有效。但是经过export语句说明的shell变量就成为一个全局性变量,其变量名和变量值可以传递给子进程及其后代进程。在子进程中可以修改这个变量的值,但并不影响这个变量在父进程中的取值。
下面的例子中,父进程(/tmp/text)将赋值后的变量 pro_name传递给子进程(/tmp/text_child), 在子进程中对变量pro_name所赋的新值并不影响父进程中该变量的值。
/tmp/text程序: /tmp/text_child程序: |
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者