Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/18.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
Bash 如何使用计数器创建新变量?_Bash_Shell_Scripting - Fatal编程技术网

Bash 如何使用计数器创建新变量?

Bash 如何使用计数器创建新变量?,bash,shell,scripting,Bash,Shell,Scripting,下面是我的代码片段 counters=1 details='AAA BBB CCC' details_$counters=$details echo $details_1 预期结果 AAA BBB CCC 使用eval进行变量名插值 x="1" eval "y_$x='hello world'" echo $y_1 # outputs "hello world" 使用声明;它比eval更安全(但不是完全安全),因为它限制了您可以运行的任意代码量 declare "details_$co

下面是我的代码片段

counters=1
details='AAA BBB CCC'
details_$counters=$details
echo $details_1  
预期结果

AAA BBB CCC

使用
eval
进行变量名插值

x="1"
eval "y_$x='hello world'"
echo $y_1 # outputs "hello world"

使用
声明
;它比eval更安全(但不是完全安全),因为它限制了您可以运行的任意代码量

declare "details_$counters=$details"
或者,您可以简单地使用数组:

all_details[$counters]=$details

counters=“1”details=“aaaaaaaa bbbbbbb cccccc”eval”details_$counters=$details”echo$details_1 35;结果:./aa.sh:第8行:bbbbbbb:命令不可用found@Anup请尝试使用正确的报价:
counters=“1”details=“aaaaaaaa bbbbbbb cccccc”eval”details\u$counters='$details'”echo$details\u1
@Anup here,如果
$details
在评估的
details\u$counters='$details'
部分中没有单引号,它将展开两次:一次是因为双引号,另一次是在评估期间。添加单引号可防止出现这种情况,并提供预期结果非常感谢您的帮助。现在我得到了预期的结果。