這個問題在這里已經有了答案: Bash 中的動態變數名 (17 個回答) 4 天前關閉。
我的 bash 腳本中有兩個變數
CAR_PRICE=50000
BIKE_PRICE=20000
我在執行我的 .sh shell 腳本檔案時傳遞了一個命令列引數。
--vehicletype CAR or --vehicletype BIKE
我能夠讀取腳本中的車輛型別值并存盤在另一個變數中
VEHICLE_TYPE=<VALUE PASSED FROM COMMAND LINE ARG i.e CAR/BIKE
現在我正在嘗試使用以下語法動態讀取 CAR_PRICE 或 BIKE_PRICE
${${VEHICLE_TYPE}_PRICE}
獲取 params 的值,根據 passwed 值動態替換變數的第一部分,即,但它拋出了Bad Substitution 錯誤。
我嘗試了幾種方法,但似乎沒有任何效果。我是 shell 腳本的新手,不確定 bash 腳本中是否支持這種動態替換。
任何指標都會有所幫助。
uj5u.com熱心網友回復:
您可以在bash以下位置使用間接變數參考:
CAR_PRICE=50000
BIKE_PRICE=20000
VEHICLE_TYPE='CAR'
var="${VEHICLE_TYPE}_PRICE"
# variable name
echo "$var"
# variable value
echo "${!var}"
輸出:
CAR_PRICE
50000
uj5u.com熱心網友回復:
您可以使用price=${VEHICLE_TYPE}_PRICE; echo "${!price}". 但是,關聯陣列是完成這項作業的更好工具:
declare -A vehicle_price
vehicle_price[ford]=7777
vehicle_price[toyota]=8888
vehicle_type=toyota
echo "${vehicle_price[$vehicle_type]}"
# gives
8888
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/359470.html
