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'
部分中没有单引号,它将展开两次:一次是因为双引号,另一次是在评估期间。添加单引号可防止出现这种情况,并提供预期结果非常感谢您的帮助。现在我得到了预期的结果。