#!/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