我有一个Unix bash函数,它执行解析自定义环境变量的脚本。我想避免在bash中导出相关的变量,而是仅将它们设置为脚本,作为执行命令的一部分。在本地bash函数变量中设置脚本的环境变量
如果我直接在命令中设置变量 - 例如,VARNAME=VARVAL script_name
- 它运作良好。但是,由于我想根据不同的条件设置多个变量,我想使用本地函数变量来存储环境变量设置,然后在脚本执行命令中使用此变量。 我有一个本地“变量”变量,最终设置,例如,到VARNAME=VAR
,但如果我尝试从我的bash函数运行${vars} script_name
,我得到一个“命令未找到”错误$ vars变量赋值 - 即$ vars的内容被解释为一个命令,而不是作为环境变量分配。
我尝试了命令语法的不同变体,但至今无济于事。 目前,我必须在调用脚本之前在函数中导出相关变量,然后将它们重置为以前的值,但这并不是我所希望的解决方案。
任何帮助将不胜感激。
感谢, 沙龙
感谢您的及时回复。有效 :-)! (我实际上在某个时候尝试了使用eval,但我意外地使用了错误的语法。) – Sharon 2012-01-16 10:37:50
['eval' is evil](http://mywiki.wooledge.org/BashFAQ/048) – l0b0 2014-02-28 16:32:10