这是我刚刚发现一个黑客:短的方式来运行命令,如果变量设置
DEBUG=true
$DEBUG && echo "Hello"
而这恰好是工作,因为true
是一个实际的命令,它会返回0,&&
运营商很满意即:
» true
» echo $?
0
有一个变量被设置执行一段代码的非hackish的方式,任何值,除了空字符串?事情是这样的,但作为一个可读的一行(像上面的):
myvar="ggg"
if [ "$myvar" != "" ] ; then echo "Hello" ; fi
'[[-n“$ myvar”]] && echo“Hello”'应该可以工作 – anubhava
'[-z $ {myvar + x}] && echo“Hello”'[另见](https:// stackoverflow .com/questions/3601515 /如何检查,如果变量是在集合中) – redneb
我不认为它是hackish。 – hek2mgl