所以我有一个函数要求用户输入一些内容,然后使用eval
将输入值赋给传入的变量名.I.e。
eval "$1='$input'"
但是我想检查$1
是否为空,因为如果不是,我不想重新赋值。这个函数被多次调用,所以如果我可以在不进行每次调用检查的情况下添加一些检查,这是最好的。
我试过
if [[ ! -z "$1" ]]; then
return
fi
但变量$1
的计算结果是我传入的变量名。
即。 _function_call VAR_A
< - 如果在函数中进行评估,此调用将导致$1
为VAR_A
。
那么,有什么方法可以确定变量的值,或者只检查函数中是否为空?该函数不是从另一个函数调用的。
答案 0 :(得分:2)
使用BASH间接来首先获取名称存储在$1
中的变量:
var1=${!1}
# then
if [[ ! -z "$var1" ]]; then
exit 1
fi