V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
justRua
V2EX  ›  问与答

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

  •  
  •   justRua · 2022-05-25 17:49:38 +08:00 · 795 次点击
    这是一个创建于 892 天前的主题,其中的信息可能已经有所发展或是发生改变。
    有个配置文件 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

    请问各位彦祖这个要怎么实现~
    3 条回复    2022-05-25 18:53:16 +08:00
    AoEiuV020CN
        1
    AoEiuV020CN  
       2022-05-25 17:58:35 +08:00
    盲猜你需要 envsubst
    privil
        2
    privil  
       2022-05-25 18:04:08 +08:00
    eval 吧
    justRua
        3
    justRua  
    OP
       2022-05-25 18:53:16 +08:00
    @privil 谢谢啦,试了下确实可以,之前有想过用 eval ,但搜了下网上的例子用不了
    换了个姿势试了试可以了,eval_opts=`eval echo "$opts"`
    这样写$opts 中的${TEMP_DIR}会被解析到,此贴完结。。。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2838 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 14:32 · PVG 22:32 · LAX 07:32 · JFK 10:32
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.