相关疑难解决方法(0)

如何检查Bash中是否设置了变量?

我如何知道Bash中是否设置了变量?

例如,如何检查用户是否将第一个参数提供给函数?

function a {
    # if $1 is set ?
}
Run Code Online (Sandbox Code Playgroud)

variables bash shell

1417
推荐指数
23
解决办法
119万
查看次数

"test -v $ TESTENV"总是假,即使定义了TESTENV

我在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运算符 - 但行为是一样的.

bash shell if-statement

0
推荐指数
1
解决办法
53
查看次数

标签 统计

bash ×2

shell ×2

if-statement ×1

variables ×1