Linux 在Bash中指定给动态变量名
如何为名称中包含变量的变量赋值Linux 在Bash中指定给动态变量名,linux,shell,unix,Linux,Shell,Unix,如何为名称中包含变量的变量赋值 var1="file" var2_$var1="folder" 上面的代码给出了错误-bash:var2\u file=folder:command not found。我很想知道如何给一个名为另一个变量的变量赋值 Bash的版本是“gnubash,version4.1.2”对于Bash,您可以使用declare: declare var2_$var1="123" 如何使用另一个变量来保存动态名称,并在设置后使用它来检索值 new_var=var2_$var1
var1="file"
var2_$var1="folder"
上面的代码给出了错误-bash:var2\u file=folder:command not found
。我很想知道如何给一个名为另一个变量的变量赋值
Bash的版本是“gnubash,version4.1.2”对于
Bash
,您可以使用declare
:
declare var2_$var1="123"
如何使用另一个变量来保存动态名称,并在设置后使用它来检索值
new_var=var2_$var1
declare var2_$var1="123"
echo "${!new_var}" # => 123
不幸的是,Bash不允许
声明$new\u var=“123”
——这会使它更漂亮。这是非常特定于shell的。你用的是什么外壳?Bash(来自错误消息)?请同时列出版本。不要在评论中回应。请编辑问题本身。为什么需要它?可能有更好的方法来实现您的目标。在99%的情况下,最好使用关联数组。详细介绍了这一点——关联数组和间接赋值都是如此。export
的工作方式是否相同?关于set
?非常感谢您的两个答案。我尝试了导出
,设置
和声明
都很好。但知道如何找回它的价值echo$var2_$var1
它的输出应该是“123”是的,这就是这种方法的问题所在。我建议改为使用和关联数组