你仍然缺少一个 ;在你的一个班轮中。
users=9
usersFinal=9
if [ "$users" -eq "$usersFinal" ];then
echo "Bravoidididid!"
fi
你的单线:
users=9;usersFinal=9;if [ "$users" -eq "$usersFinal" ] ; then echo "Bravoidididid!" fi
缺少最后一个;
users=9;usersFinal=9;if [ "$users" -eq "$usersFinal" ] ; then echo "Bravoidididid!"; fi
我假设 users 和 usersFinal 是整数,而不是字符串。
对于oneliner, ;在 if 测试之后(在 then 之前),在 fi 之前。
如果 users / usersFinal 是字符串,使用 ==
users='fred';usersFinal='fred';if [ "$users" == "$usersFinal" ] ; then echo "Bravoidididid!"; fi
users='fred george'
usersFinal='fred george'
if [ "$users" == "$usersFinal" ];then
echo "Bravoidididid!"
fi
请注意,在字符串中引用变量在这里变得很重要。使用单括号时,如果其中一个变量为空,则有必要避免错误。
http://tldp.org/LDP/abs/html/comparison-ops.html
-gt、-lt、-eq、-le、-ge 是整数比较运算符。
请注意,您将看到带有 "$x" = "$y" 的示例,即单个 =,但我发现它更加清晰易读,并且始终使用 == 进行字符串比较Bash(还要注意 = 和 == 与 [[ ]] 的细微差别)。
当您使用 > 和 -gt 时,请特别注意该页面。记住它的简单方法:[[ $a > $b ]] 但是 [ "$a" -gt "$b" ](单括号和双括号)。