所以我在这里有此代码:
#!/bin/bash sum=0 for i; do if [ "$i" -ge 0 ] then sum=$((sum + i)) else sum=$((sum + (i * -1))) fi done echo $sum
因此,用户键入blin.sh 1 3 2 5 -5 -8,程序应该采用所有整数,如果为负数,则使它们为正数,然后回显总和。但由于某些科学未知的原因,我的bash代码仅回显0。
对所有参数使用$ *(不使用分号;)
for i in $*
您的代码对我有用。
#!/bin/bash sum=0 for i in $* do if [ "$i" -ge 0 ] then sum=$((sum + i)) else sum=$((sum + (i * -1))) fi done echo $sum