我不知道如何来在bash中'test -n'如何返回'true'?
test -n
返回“真”,例如:
if test -n; then echo "yes" ; else echo "no" ; fi
打印“是的”,尽管测试给出,从理论上说,一个空长度的字符串作为参数以及选项-n,它检查字符串长度是否为0(返回false)或其他内容(返回true)。
谢谢
我不知道如何来在bash中'test -n'如何返回'true'?
test -n
返回“真”,例如:
if test -n; then echo "yes" ; else echo "no" ; fi
打印“是的”,尽管测试给出,从理论上说,一个空长度的字符串作为参数以及选项-n,它检查字符串长度是否为0(返回false)或其他内容(返回true)。
谢谢
它出于同样的原因test x
返回true返回true - 字符串-n
非空。它没有执行-n
选项,因为-n
需要第二个参数,而您没有提供。
test -n "" || echo false
x=""
test -n $x && echo true
test -n "$x" || echo false
执行每个回显命令;注意,特别是中间的一个!
从文档:
的
test
和[
建宏评估使用 基于参数个数一组规则的条件表达式。0自变量: 表达式为false。
1参数: 当且仅当参数不是 null时,表达式才为true。
在你的情况下,你只需要一个非空参数(-n
)。