如何确定在bash中传递给函数的变量的值?

时间:2013-10-21 19:08:54

标签: string bash shell

所以我有一个函数要求用户输入一些内容,然后使用eval将输入值赋给传入的变量名.I.e。

eval "$1='$input'"

但是我想检查$1是否为空,因为如果不是,我不想重新赋值。这个函数被多次调用,所以如果我可以在不进行每次调用检查的情况下添加一些检查,这是最好的。

我试过

if [[ ! -z "$1" ]]; then
    return
fi

但变量$1的计算结果是我传入的变量名。

即。 _function_call VAR_A< - 如果在函数中进行评估,此调用将导致$1VAR_A

那么,有什么方法可以确定变量的值,或者只检查函数中是否为空?该函数不是从另一个函数调用的。

1 个答案:

答案 0 :(得分:2)

使用BASH间接来首先获取名称存储在$1中的变量:

var1=${!1}

# then
if [[ ! -z "$var1" ]]; then
   exit 1
fi