在 echo 之前展开变量内的变量
Expand a variable within variable right before echo
示例:
testing="test"
var="\"${testing} the variable\""
testing="Update"
echo "$var"
输出:
测试变量
需要输出:
更新变量
变量在使用字符串时被扩展,它们不是记住变量替换的模板。
如果需要这样做,需要将变量按字面意思放入字符串中,使用eval
.
testing="test"
var='"${testing} the variable"'
testing="Update"
eval "echo $var"
但是 eval
是危险的——它会执行字符串中的任何 shell 命令。更好的解决方案可能是使用某种占位符字符串并使用 shell 扩展运算符替换它。
var='#testing# the variable'
testing="Update"
echo "${var//#testing#/$testing}"
示例:
testing="test"
var="\"${testing} the variable\""
testing="Update"
echo "$var"
输出: 测试变量
需要输出: 更新变量
变量在使用字符串时被扩展,它们不是记住变量替换的模板。
如果需要这样做,需要将变量按字面意思放入字符串中,使用eval
.
testing="test"
var='"${testing} the variable"'
testing="Update"
eval "echo $var"
但是 eval
是危险的——它会执行字符串中的任何 shell 命令。更好的解决方案可能是使用某种占位符字符串并使用 shell 扩展运算符替换它。
var='#testing# the variable'
testing="Update"
echo "${var//#testing#/$testing}"