1

所以我有一个函数要求用户输入一些输入,然后用于eval将输入的值分配给传入的变量名。即

eval "$1='$input'"

但我想检查是否$1为空,因为如果不是,我不想为它重新分配一个值。这个函数被多次调用,所以如果我可以在其中添加一些检查而不在每次调用时进行检查,那将是最好的。

我试过

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

但是该变量的$1计算结果是我传递给它的变量名。

即<-如果在函数中求值,_function_call VAR_A此调用将导致$1被执行。VAR_A

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

4

1 回答 1

2

使用 BASH 间接获取名称存储在的变量$1

var1=${!1}

# then
if [[ ! -z "$var1" ]]; then
   exit 1
fi
于 2013-10-21T19:17:48.713 回答