簡體   English   中英

Unix Shell腳本-在另一個變量內替換變量並將值連接到同一變量

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM