我怎样才能在 bash 脚本中做到这一点?
#!/bin/sh
func() {
export ${NAME}_SUFFIX=`result_of_some_command`
}
NAME=my_name
func
# This variable will become my_name_SUFFIX
# but how can I reference it using $NAME?
echo ${${NAME}_SUFFIX} # Doesn't work...
I'd use declare如果它可以通过函数调用工作,但似乎不行。另外,我的声明版本不支持-x。
您可以使用间接参数扩展:
varname=${NAME}_SUFFIX
echo "${!varname}"
bash
4.3还引入了namerefs,使用起来稍微简单一些。
$ NAME=FOO
$ FOO_SUFFIX=3
$ declare -n varname=${NAME}_SUFFIX
$ echo $varname
3
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)