bash 循环中变量作用范围的问题分析
更新时间:2013年01月29日 17:40:34 作者:
大家在bash编写中,经常需要用到循环,但循环中变量作用范围的问题有些朋友不是很懂,这里简单分享下,方便需要的朋友
先来看一段错误的代码。
复制代码 代码如下:
#!/bin/bash
for x in `ls */.*/.*`
cat $x|do echo $x
while read line
do
c=`echo $line|awk -F'(' '{print $1}'`
#echo $c
i=$((i+$c))
done
echo
done
echo $i
以上代码有什么问题呢?
cat之后的管道会使i的值没有被加1。
正确的方法:
复制代码 代码如下:
#!/bin/bash
for x in `ls */.*/.*`
do echo $x
while read line
do
c=`echo $line|awk -F'(' '{print $1}'`
#echo $c
i=$((i+$c))
done<$x
echo
done
echo $i
相关文章
linux shell数据重定向(输入重定向与输出重定向)详细分析
这篇文章主要介绍了linux shell数据重定向(输入重定向与输出重定向)详细分析,需要的朋友可以参考下2015-10-10
最新评论