[英]Unix shell script - variable substitution inside another and concatenate values to the same variable
我有以下要求将变量的值连接到其自己的变量并创建一个数组:
Table=CRS
Job=JOBNAME
gen_job_$Table=GENERATEDJOB
gen_job_$TABLE=$Job,${gen_job_${Table}}
echo ${gen_job_${Table}} should give JOBNAME,GENERATEDJOB
我也尝试使用eval
函数,如下所示:
eval gen_job_$Table=$job,eval echo \$gen_job_$Table
但是,我无法显示最终结果。
您可能只想考虑在这种情况下使用数组(我建议阅读此页面 ,但是,如果要动态构建变量名,则可以这样做。要设置名称存储在另一个变量中的变量,请使用printf -v
喜欢
table=CRS
job=JOBNAME
holds_name="gen_job_$Table"
printf -v "$holds_name" 'GENERATEDJOB'
然后,当您要访问其名称在holds_name
设置的变量时,可以使用间接holds_name
:
printf '%s,%s\n' "$job" "${!holds_name}"
如果括号内的第一个字符是!
,请在变量名周围使用括号!
那么该词的其余部分将被视为变量的名称,该变量将展开以查找应使用其值的实际变量的名称。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.