我希望实现一个bash函数,测试第一个参数是否真的是某个地方定义的变量。
例如,在我的.bashrc
文件中:
customPrompt='yes';
syntaxOn='no';
[...]
function my_func {
[...]
# I want to test if the string $1 is the name of a variable defined up above
# so something like:
if [[ $$1 == 'yes' ]];then
echo "$1 is set to yes";
else
echo "$1 is not set or != to yes";
fi
# but of course $$1 doesn't work
}
需要输出:
$ my_func customPrompt
> customPrompt is set to yes
$ my_func syntaxOn
> syntaxOn is set but != to yes
$ my_func foobar
> foobar is not set
我尝试了很多测试,比如-v "$1"
、-z "$1"
、-n "$1"
,但它们都把$1测试为字符串而不是变量。
(如果我表达不清楚,请纠正我)
"${!VAR}"
是什么(可以附上链接)?我知道它是如何工作的,因为那正是我在寻找的东西,但我没有找到。 :) - 4wk_