#!/bin/bash
sum=0
cat ./whileTest.txt | while read line
do
line_n=`echo $line|sed 's/[^0-9]//g'`
if [ "$line_n" != '' ]; then
echo $line_n
sum=$[$sum+$line_n]
fi
done
echo "sum:$sum"
#!/bin/bash
sum=0
while read line || [[ -n ${line} ]]
do
line_n=`echo $line|sed 's/[^0-9]//g'`
if [ "$line_n" != '' ]; then
echo $line_n
sum=$[$sum+$line_n]
fi
done < whileTest.txt
echo "sum:$sum"
$ ./whileTest.sh
1
2
33
sum:36
while 用法
使用管道传递内容,这是用的最多、但却最烂的写法
cat ./whileTest.txt | while read line
do
...
done
文件
while read line
do
...
done < whileTest.txt
文本内容
while read line
do
...
done <<< "
aaa1
bbbb
2ccc
3dd3"
进程
while read line
do
...
done < <(cat whileTest.txt)
改变标准输入
exec <filename
while read line
do
...
done
sum=0
exec <whileTest.txt
while read line || [[ -n ${line} ]]
do
line_n=`echo $line|sed 's/[^0-9]//g'`
if [ "$line_n" != '' ]; then
echo $line_n
sum=$[$sum+$line_n]
fi
done
echo "sum:$sum"