相关疑难解决方法(0)

测试 -n 给出意外结果

我知道test -n <expression>如果表达式的计算结果为大于 0 的字符串长度,则返回 false。为什么会发生以下情况?

Macbook:~ echo ${#undeclared_variable}
0
Macbook:~ test -n $undeclared_variable && echo Foo
Foo
Run Code Online (Sandbox Code Playgroud)

重击 4.x

我的期望是,既然test -n $undeclared_variable应该评估 false,那么 Foo 不应该被回应。如果我使用[[ ]]而不是测试,它会按预期工作。

shell bash string quoting test

8
推荐指数
1
解决办法
668
查看次数

bash - 如果字符串的长度为(非)零,则为真?

# touch $$
# gzip $$
# gzip --test $$.gz
# echo $?
0
# OUT=$(gzip --test $$.gz)
# echo $OUT

# if [ -z $OUT ] ; then echo $$ ; fi
26521
# if [ -n $OUT ] ; then echo $$ ; fi
26521
# 
Run Code Online (Sandbox Code Playgroud)

bash(1)

   -z string
          True if the length of string is zero.
   string
   -n string
          True if the length of string is non-zero.
Run Code Online (Sandbox Code Playgroud)

我很困惑,它如何同时为零非零?如何检查键是否具有值(使用bash)?

string shell-script test variable

6
推荐指数
2
解决办法
1万
查看次数

标签 统计

string ×2

test ×2

bash ×1

quoting ×1

shell ×1

shell-script ×1

variable ×1