[英]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.