justRua
V2EX  ›  问与答

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

  •  
  •   justRua · May 25, 2022 · 1465 views
    This topic created in 1468 days ago, the information mentioned may be changed or developed.
    有个配置文件 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 replies    2022-05-25 18:53:16 +08:00
    AoEiuV020CN
        1
    AoEiuV020CN  
       May 25, 2022
    盲猜你需要 envsubst
    privil
        2
    privil  
       May 25, 2022
    eval 吧
    justRua
        3
    justRua  
    OP
       May 25, 2022
    @privil 谢谢啦,试了下确实可以,之前有想过用 eval ,但搜了下网上的例子用不了
    换了个姿势试了试可以了,eval_opts=`eval echo "$opts"`
    这样写$opts 中的${TEMP_DIR}会被解析到,此贴完结。。。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1166 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 5414617a · 37ms · UTC 23:27 · PVG 07:27 · LAX 16:27 · JFK 19:27
    ♥ Do have faith in what you're doing.