作者nith (skyl)
看板LinuxDev
标题Re: [问题] 变数问题
时间Sun Jan 23 02:03:37 2011
※ 引述《ppsy (looking for)》之铭言:
: 大家好,我利用下面的指令把一个档案导入FILE里
: 然後利用回圈去算行数,回圈中每行均能正常印出
: 但出了回圈後变数却被归0,请问有人知道原因吗?
: 谢谢。
: FILE=`cat 24.txt | awk -F "(" '{print $2}' | uniq`
: i=0
: echo "$FILE" | \
: while read CMD; do
: i=`expr $i + 1`
: echo $i
: done
: echo K$i
因为你的变数i并不是设定给你正在执行的shell script
例如:
echo 'aaaa' | ABC="test"
echo "ABC = $ABC"
输出的ABC会是空的值
因为这种变数设定的方法 (跑shell command同时设定变数)
只会对那一行有效 (因为这种写法的语义是只要让该行的command吃到这个变数)
所以你的shell script应该要改写成:
FILE=`cat 24.txt | awk -F "(" '{print $2}' | uniq`
i=0
for CMD in $FILE
do
i=`expr $i + 1`
echo $i
done
echo K$i
或你也可以考虑用wc这个command来帮你做count:
FILE=`cat 24.txt | awk -F "(" '{print $2}' | uniq`
i=`echo $FILE | wc -w`
echo K$i
--
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 118.166.226.207
1F:推 ppsy:谢谢你。 01/31 00:49