shell 脚本中循环未能修改循环外变量的问题解决

来源:互联网 发布:java中的异常处理机制 编辑:程序博客网 时间:2024/06/17 12:40

在写一个监控脚本中发现问题


cur_status="123"
cat status_code | while read code_line
do


http_code=`echo $code_line | awk -F =  '{print $1}'`
http_sub=`echo $code_line | awk -F = '{print $2}'`




if [ $check_status = $http_code ]
then


cur_status=$http_sub
#$cur_status='unkown http_code'


fi


done 
echo $cur_status


发现最后echo出来的 $cur_status 总是123循环中没有改变这个变量,后来经过baidu发现是因为 在while 之前使用的管道影响了值的传递。


修改成



cur_status="123"
 while read code_line
do


http_code=`echo $code_line | awk -F =  '{print $1}'`
http_sub=`echo $code_line | awk -F = '{print $2}'`




if [ $check_status = $http_code ]
then


cur_status=$http_sub
#$cur_status='unkown http_code'


fi


done < status_code
echo $cur_status




0 0
原创粉丝点击