输入:
number=5
if $number > 0; echo "Yes"; else echo "No";fi
Run Code Online (Sandbox Code Playgroud)
我的输出是:
bash: 5: command not found...
No
Run Code Online (Sandbox Code Playgroud)
我只想要Yes或者No,那么语法有什么问题?
if需要命令(实际上是命令列表),而不是表达式.该test命令是你想要的.(您也缺少then关键字,它会终止条件.)
if test "$number" -gt 0; then
echo "Yes"
else
echo "No"
fi
Run Code Online (Sandbox Code Playgroud)
对于bash 算术,更喜欢现代风格:
if ((number > 0)); then
echo "Yes"
else
echo "No"
fi
Run Code Online (Sandbox Code Playgroud)
或使用布尔逻辑:
((number > 0)) && echo "Yes" || echo "No"
Run Code Online (Sandbox Code Playgroud)