鉴于此代码,它会打印“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}"