码迷,mamicode.com
首页 > 其他好文 > 详细

bash变量作用域问题

时间:2014-12-17 22:31:23      阅读:303      评论:0      收藏:0      [点我收藏+]

标签:ar   sp   java   on   文件   div   问题   bs   ad   

queue_exist=0
 
ps -ef | grep ${PROCESS_PARM} | grep java |  awk ‘{print $2}‘ | while read pid
do
       queue_exist=1
        break;
done
 
queue_exist=1 这句就是不起作用,出了循环之后还是等于0。
 
印象中bash变量都是全局变量。
 
查了下,原来在bash shell中管道是新起了一个进程的,相当于 queue_exist=1这句是定义在subshell中了,subshell中的变量是local变量,对原来的shell不起作用,因而赋值不成功。
没找到好的办法,后来就在循环体内创建隐藏文件代替变量来标识这个状态了,最后再把隐藏文件删除。

bash变量作用域问题

标签:ar   sp   java   on   文件   div   问题   bs   ad   

原文地址:http://www.cnblogs.com/bornfish/p/4170523.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!