Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 在Bash中指定给动态变量名_Linux_Shell_Unix - Fatal编程技术网

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”是的,这就是这种方法的问题所在。我建议改为使用和关联数组