我需要一個 bash 腳本來查找由空格分隔的整數的絕對值之和。例如,如果輸入是:
1 2 -3
腳本應該列印 6 到標準輸出我有:
while read x ; do echo $(( ${x// / } )) ; done
這給了我
0
如果沒有過于復雜的事情,我將如何在該陳述句中包含每個 x 的絕對值,以便輸出:
6
uj5u.com熱心網友回復:
根據 Barmar 的想法:
echo "1 2 -3" | tr -d - | tr ' ' ' ' | bc -l
輸出:
6
uj5u.com熱心網友回復:
POSIX 友好實作,無需運行回圈,也無需生成子 shell:
#!/usr/bin/env sh
abssum() {
IFS='-'
set -- $*
IFS=' '
set -- $*
IFS=
printf %d\\n $(($*))
}
abssum 1 2 -3
結果:
6
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/353703.html
