#!/bin/sh
num=0
cat api.txt | while read line
do
echo $line
num=`expr $num + 1`
done
echo $num
我的文件包含很多行,最后输出num时候仍然是0?
因为num=`expr $num + 1`中的num变量在子shell中,无法影响到父shell
管道会产生子shell,用while read 处理。
while read line
do
echo $line
num=`expr $num + 1`
done <api.txt
echo $num
使用sh -x test.sh 可以很方便的对shell脚本进行调试,查看每一步产生的结果。