[英]Bash: Get value of variable from string of variable name (when string contains other characters than variable name)
給定此代碼,它將打印“ abc _ $ {var1}”,但我希望它顯示“ abc_def”,但是bash腳本有很多小細節,我不知道,因此希望有人可以解釋此行為:
Shell scripts:
function main()
var1="def"
var2=$(get_val_sh ${another_var})
echo ${var2}
# I want to echo:
# abc_def
# instead, I get:
# abc_${var1}
function get_val_sh()
var3=call_python(get_val_py())
echo ${var3}
Python:
def get_val_py():
print "abc_${var1}"
另一件事是,如果我直接從bash腳本返回(而不是調用Python),則可以得到所需的結果(但必須調用python)。 它與Python中的print返回與bash中的echo不同的字符串有關嗎? 我什至不知道該如何檢查。
需要明確的是,以下代碼給出了理想的結果,盡管我不知道為什么但不能使用,因為我需要Python為我提供適當的值:
function main()
var1="def"
var2=$(get_val_sh ${another_var})
echo ${var2}
# I want to echo:
# abc_def
# instead, I get:
# abc_${var1}
function get_val_sh()
echo "abc_${var1}"
您如何為var2分配值?
var1="def"
var3="var1" # var3 contains name of the variable. Note: NOT $var1
var2="abc_${var3}" # This will give abc_var1, not abc_def
采用
var2="abc_${!var3}" # This should give abc_def
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.