shell 脚本的字符串中包含的变量要怎么才能被解析

2022 年 5 月 25 日
 justRua
有个配置文件 file.properties ,里面有个配置项:
opts=-Xmx1024m -Xms1024m -Djava.io.tmpdir=${TEMP_DIR}

现在有个脚本 a.sh ,会读取这个 file.properties 获取到 opts 后面的内容赋值到变量 testParam 中。
testParam 实际取到的值为-Xmx1024m -Xms1024m -Djava.io.tmpdir=${TEMP_DIR}

现在问题是${TEMP_DIR} 在脚本中是有定义的,TEMP_DIR="./tmp",
期望是得到 testParam=-Xmx1024m -Xms1024m -Djava.io.tmpdir=./tmp

请问各位彦祖这个要怎么实现~
1596 次点击
所在节点    问与答
3 条回复
AoEiuV020CN
2022 年 5 月 25 日
盲猜你需要 envsubst
privil
2022 年 5 月 25 日
eval 吧
justRua
2022 年 5 月 25 日
@privil 谢谢啦,试了下确实可以,之前有想过用 eval ,但搜了下网上的例子用不了
换了个姿势试了试可以了,eval_opts=`eval echo "$opts"`
这样写$opts 中的${TEMP_DIR}会被解析到,此贴完结。。。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://v2ex.ih06.com/t/855269

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX