我使用Ubuntu服務器,你可以看到:簡單的Bash腳本:什麼是錯的?
#uname -a
Linux grosella 3.13.0-48-generiC#80-Ubuntu SMP Thu Mar 12 11:16:15 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
Supose數據文件像這樣(/tmp/data.txt):
1 AAAA
2 BBBB
3 CCCC
4 DDDD
5 EEEE
6 FFFF
運行以下bash腳本:
typeset -i ACUM=0
typeset -a V=('')
cat /tmp/data.txt | \
while read LINEA ; do
[ "x$LINEA" == "x" ] && break
V=($LINEA)
VAL="${V[0]}"
[ "x$VAL" == "x" ] && continue
[[ $VAL =~ ^[0-9]+$ ]] || continue
((ACUM+=VAL))
echo -e "VAL=$VAL\t\tACUM=$ACUM"
done
echo -e "\nFinal Result: $ACUM"
這裏是打印輸出:
VAL=1 ACUM=1
VAL=2 ACUM=3
VAL=3 ACUM=6
VAL=4 ACUM=10
VAL=5 ACUM=15
VAL=6 ACUM=21
Final Result: 0
而不是21,最終的結果是0.什麼是錯的?
http://mywiki.wooledge.org/BashFAQ/024 –
Boo/hiss在提出問題之前沒有更好地描述您的問題。 (另請參閱http://stackoverflow.com/help/mcve) –