Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash 使用“;时如何测试变量是否已设置且不为空;集合-o名词集合”;_Bash_Shell - Fatal编程技术网

Bash 使用“;时如何测试变量是否已设置且不为空;集合-o名词集合”;

Bash 使用“;时如何测试变量是否已设置且不为空;集合-o名词集合”;,bash,shell,Bash,Shell,是的,这里有一个类似的线程: 然而,有这么多不同的答案,它不是特别清楚 如果设置了一个变量且该变量不是空的,那么下面的内容是否足以进行测试 #!/bin/bash set -o nounset if [[ ! -z "${EXAMPLE-}" ]]; then echo "Variable is defined and is not empty..." fi Yes,[!-z“${EXAMPLE-}”]安全地确定名为EXAMPLE的变量是否分配了非空值,即使set-u处于活动状态

是的,这里有一个类似的线程:

然而,有这么多不同的答案,它不是特别清楚

如果设置了一个变量且该变量不是空的,那么下面的内容是否足以进行测试

#!/bin/bash 
set -o nounset

if [[ ! -z "${EXAMPLE-}" ]]; then
    echo "Variable is defined and is not empty..."
fi

Yes
[!-z“${EXAMPLE-}”]
安全地确定名为
EXAMPLE
的变量是否分配了非空值,即使
set-u
处于活动状态


就我个人而言,我会写
[[[-n”${EXAMPLE-}]]
,甚至
[[${EXAMPLE-}]
——利用
[[[[]]
所带来的额外简洁性,并且在
[[]
中不值得信赖,但所有这些都是正确的。

是的
[!-z'${EXAMPLE-}]
安全地确定名为
示例
的变量是否分配了非空值,即使
设置-u
处于活动状态


就我个人而言,我会写
[[[[-n”${EXAMPLE-}]]
,甚至是
[[${EXAMPLE-}]]
——利用
[[[[[]]]
安全的额外简洁性和
[]
——但所有这些都是正确的。

-v
操作符可以检查名称是否已设置为值:

if [[ -v EXAMPLE ]]; then
    echo "Safe to expand: $EXAMPLE"
fi

您可以使用
-v
运算符检查名称是否已设置为值:

if [[ -v EXAMPLE ]]; then
    echo "Safe to expand: $EXAMPLE"
fi

BashFAQ#112可以使用更新;它没有提到
-v
操作符。这在.BashFAQ#112可以使用更新;它没有提到
-v
操作符。请注意,这需要Bash 4.2或更新版本。请注意,这需要Bash 4.2或更新版本。