Shell

變數擴展中的變數

  • February 23, 2018

我想評估一個變數,其名稱需要動態評估另一個變數,即 varENVIRONMENT可以是prodstgtest,所以我有 3 個 url:

URL_PROD=https://myproduction.com
URL_STG=https://mystaging.com
URL_TEST=https://mytest.com

所以我想檢索說URL_STG.

以下不起作用

echo $"URL_${ENVIRONMENT^^}"

除了@Kusalananda 提出的關聯數組的相關答案,我還想出了這個:

ENDPOINT=URL_${ENVIRONMENT^^}
MY_URL="${!ENDPOINT}"

使用最近的bashor ksh93,創建一個關聯數組來保存 URL:

URL=( [prod]=https://myproduction.com
     [stg]=https://mystaging.com
     [test]=https://mytest.com )

url_type=test

echo "${URL[$url_type]}"

這將輸出測試 URL。

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