我如何知道Bash中是否设置了变量?
例如,如何检查用户是否将第一个参数提供给函数?
function a {
# if $1 is set ?
}
Run Code Online (Sandbox Code Playgroud) 我在Fedora 27下运行Bash 4.4.19,我有一个简单的脚本:
#!/bin/bash
TESTENV="Hello"
echo "$TESTENV"
if [ -v $TESTENV ]; then
echo "Yup"
fi
echo "Done"
Run Code Online (Sandbox Code Playgroud)
当我运行它时,它打印:
Hello
./myscript: line 3: [: Hello: binary operator expected
Done
Run Code Online (Sandbox Code Playgroud)
所以,我将额外的括号添加到第3行,现在看起来像:
if [[ -v $TESTENV ]]; then
Run Code Online (Sandbox Code Playgroud)
但产生:
Hello
Done
Run Code Online (Sandbox Code Playgroud)
是什么赋予了?我希望看到上面一个/两个的"Yup".我试过"$TESTENV"用引号括起来,而且我也尝试过-z运算符 - 但行为是一样的.