繁体   English   中英

Linux Shell if语句

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM