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或更新版本。