在没有操作员的情况下进行测试



一个简单的问题:与直接测试变量相比,使用测试运算符进行测试的优势是什么?如下:

[ -n "$foo" ] && echo "that's some variable :"$foo || echo '$foo is blank.'

[ $foo ] && echo "that's some variable :"$foo || echo '$foo is blank.'

第二个更优雅。但我怀疑这一定是有原因的,因为有人麻烦地让"-z"one_answers"-n"存在。

我怀疑由于历史原因支持[ "$foo" ](引用参数扩展(;曾几何时,通过省略常用的显式-n来节省两个字节可能意义重大。

今天,为了清晰起见,我将始终显式使用-n

请注意,不应将&&||组合为"一行"条件语句。使用if语句。

if [ -n "$foo" ]; then
echo "that's some variable: $foo"
else
echo "foo is blank."
fi

最新更新