这是我的脚本:
#!/bin/bash
num=1
while [ $num -lt 100 ]
do
if [ $num % 3 -eq "0" ]
then
echo "fizz"
elif [ $num % 5 -eq "0" ]
then
echo "buzz"
elif [ $num % 3 -eq "0" ] && [ $num % 5 -eq "0" ]
then
echo "fizzbuzz"
else
echo $num
fi
((num++))
done
Run Code Online (Sandbox Code Playgroud)
它一直在说bash: [: too many arguments。
正确的语法是:
if [ $(($num % 3)) -eq "0" ]
Run Code Online (Sandbox Code Playgroud)
来自man bash:
算术展开
算术扩展允许对算术表达式求值并替换结果。算术展开的格式为:
$((expression))
$num % 3必须先计算表达式,然后才能使用 进行比较-eq。