use*_*080 4 bash shell alphabetical
如何在两个单词之间按字母顺序检查哪些单词?例如在代码中
#!/bin/bash
var1="apple"
var2="bye"
if [ $var1 \> $var2 ]
then
echo $var1
else
echo $var2
fi
Run Code Online (Sandbox Code Playgroud)
我想要它打印苹果,因为苹果按字母顺序出现在bye之前,但它并没有按预期工作.我究竟做错了什么?
解决当前问题需要做的是扭转你的陈述的意义,因为"小于"运算符<不是>.
这样做会让它正常工作:
if [ $var1 \< $var2 ]
Run Code Online (Sandbox Code Playgroud)
或者,你可以使用[[它的变体并不要求转义:
if [[ $var1 < $var2 ]]
Run Code Online (Sandbox Code Playgroud)
我更喜欢后者,因为:
[[变种是更富于表现力和强大.