我有下一個data source和code:
資料:
1
2
3
測驗.sh:
s=0
cat data | while read oneline
do
v=$(($oneline))
s=$(($s $v))
echo $s
done
echo "Final: $s"
執行:
$ ./test.sh
1
3
6
Final: 0
我想要做的是對資料檔案中的所有值求和,你可以看到echo內部回圈成功地一步一步列印了總和,但在回圈之外,我們得到了Final: 0,它應該是Final: 6。我犯了什么錯誤?
uj5u.com熱心網友回復:
管道創建子殼。while read 運行在與您的腳本不同的 shell 上。以下將修復它
s=0
while read oneline
do
v=$(($oneline))
s=$(($s $v))
echo $s
done < data
echo "Final: $s"
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/474232.html
標籤:重击
