我正在尝试编写一个脚本来将整数添加到一起。我的第一个脚本用于添加数字
for number in $@; do
sum=$(($sum + $number))
done
echo $sum
现在我正在尝试编写一个if语句,检查$ number是否为有效整数,如果没有显示错误消息并终止该脚本。
if [ -z $number]; then
sum=$(($sum + $number))
else
echo $number
echo "Sorry, $number is not a number"
exit
fi
我一直试图解决这个问题几个小时并继续陷入困境,帮助会很好
答案 0 :(得分:2)
-z
运算符不检查字符串是否为数字,它检查字符串的长度是否为零。
没有运算符来检查字符串是否为整数,但是有几种方法可以在bash中执行此操作。 The answers on this previous discussion should be helpful
答案 1 :(得分:2)
-z
测试只测试变量是否为空(零长度)。如果你想知道它有一个整数你可以使用像
if [[ $number =~ ^-?[0-9]+$ ]]; then
sum=$((sum + number))
else
echo "Sorry, $number is not a number"
exit
fi