Bash

在shell中間接擴展變數

  • March 6, 2022

我需要在bashshell 中間接引用一個變數。

我基本上想make通過寫作來做什麼$($(var))

我嘗試過使用${$var}which 將是最直接的解決方案,bash但隨後我收到此錯誤:

bash: ${$var}: bad substitution

有沒有辦法做到這一點?

我想要做的是使用迭代變數將所有參數($1, $2, $3, …)迭代到程序中,如果沒有間接,我無法做到這一點。

如果你有var1=fooand foo=bar,你可以bar${!var1}. 但是,如果您想迭代位置參數,幾乎肯定會更好

for i in "$@"; do
   # something
done

使用/bin/bash

foo=bar
test=foo
echo ${!test}

# prints -> bar

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