Linux Shell if语句

时间:2015-08-08 01:05:27

标签: linux bash shell

我正在尝试编写一个脚本来将整数添加到一起。我的第一个脚本用于添加数字

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

我一直试图解决这个问题几个小时并继续陷入困境,帮助会很好

2 个答案:

答案 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