Shell-Script
來自變數連接的變數
我認為這是一個相當簡單的問題,但是我無法完成這項工作:我有一個完整的變數列表,例如:
SP60=OLA SP61=BYE SP62=TRT
我想創建一個循環以變數的特定數量呼叫它們,所以我認為一個簡短的解決方案可能是:
for i in {60..62}; do SP=$"SP$i"; echo $SP.txt; done
我期待的結果是:
OLA.txt BYE.txt TRT.txt
但我明白了
SP60.txt...
我想知道是否有一種簡單的方法可以完成這項工作。
變數已經初始化後的另一個選擇:
for i in $SP{60..62}; do echo $i.txt; done
考慮以下
bash
/ksh
腳本:SP60="OLA" SP61="BYE" SP62="TRT" for (( i = 60; i <= 62; ++i )); do typeset -n var="SP$i" printf 'SP%d = %s.txt\n' "$i" "$var" done
它將輸出以下內容:
SP60 = OLA.txt SP61 = BYE.txt SP62 = TRT.txt
它使用名稱引用變數
var
(在and中使用declare -n
inbash
或 with聲明)。這意味著每次取消引用它時,它都會擴展到它所引用的變數的值。typeset -n``bash``ksh