Jquery中文网 www.jquerycn.cn
Jquery中文网 >  脚本编程  >  shell  >  正文 bash 循环中变量作用范围的问题

bash 循环中变量作用范围的问题

发布时间:2014-09-22   编辑:www.jquerycn.cn
bash 循环中变量作用范围的问题,先来看一段错误的代码。<br /> #!/bin/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

您可能感兴趣的文章:
bash 循环中变量作用范围的问题
了解bash与sh中的export语法的区别
不同shell环境下数值运算的处理
php $$特殊变量(输出变量字符串对应变量的值)
bash中too many arguments问题的解决方法
python的for循环怎么理解
C# 循环
PHP变量详解和定义变量名的方法
Shell 变量
python怎么打印九九乘法表

[关闭]