没有运算符的测试?

问题描述 投票:0回答:1

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

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

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

第二个更优雅。但是我怀疑这一定是有原因的,因为有人麻烦使“ -z”和“ -n”存在。

shell
1个回答
0
投票

我怀疑出于历史原因支持[ "$foo" ](引用参数扩展);曾几何时,通过省略显式的-n可以节省两个字节,这很重要。

今天,为了清晰起见,我会总是明确使用-n

请注意,对于“单行”条件语句,请勿将&&||组合在一起。使用if语句。

if [ -n "$foo" ]; then
  echo "that's some variable: $foo"
else
  echo "foo is blank."
fi
© www.soinside.com 2019 - 2024. All rights reserved.