Shell-Script

來自變數連接的變數

  • January 13, 2017

我認為這是一個相當簡單的問題,但是我無法完成這項工作:我有一個完整的變數列表,例如:

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 -ninbash或 with聲明)。這意味著每次取消引用它時,它都會擴展到它所引用的變數的值。typeset -n``bash``ksh

引用自:https://unix.stackexchange.com/questions/337113