[英]Linux Shell if-statements
我正在尝试编写一个将整数加在一起的脚本。 我的第一个脚本可以加数字
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
我已经尝试了好几个小时来解决这个问题,并且一直陷入困境,帮助会很不错
-z
运算符不检查字符串是否为数字,而是检查字符串的长度是否为零。
没有操作员可以检查字符串是否为整数,但是在bash中有几种方法可以执行此操作。 前面讨论的答案应该会有所帮助 。
-z
测试只会测试变量是否为空(长度为零)。 如果您想知道它是一个整数,则可以使用正则表达式匹配,例如
if [[ $number =~ ^-?[0-9]+$ ]]; then
sum=$((sum + number))
else
echo "Sorry, $number is not a number"
exit
fi
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.