【问题标题】:Substitute variables value in myscript.sh file when running with sh command使用 sh 命令运行时替换 myscript.sh 文件中的变量值
【发布时间】:2017-02-11 09:21:40
【问题描述】:

我有一个属性文件 mypropety.properties,我在其中设置了多个键值对。

我将属性加载到运行$. myproperty.properties 命令的当前会话。

现在,当我使用 $. myscript.sh 运行脚本时,它会从会话中加载所有变量值并且工作正常。但是在我的用例中,我需要使用 sh myscript.sh 命令运行该命令,并且当我以这种方式运行它时,它不会替换脚本中的变量值并且会失败。

知道在使用 sh 命令运行脚本时如何进行变量替换吗?

【问题讨论】:

  • 你做不到。那一定是“shell”这个词的含义之一。
  • 您是否导出属性文件中的变量?即export key=value.
  • @Jean-FrançoisFabre 那么怎么办?
  • @heijp06 我只写key=value。它通常在我运行. myscript.sh 时工作
  • 要使变量对子进程可见,您必须将其导出 stackoverflow.com/questions/1158091/…

标签: linux bash shell unix scripting


【解决方案1】:

Bash 在环境中查找变量 BASH_ENV,如果存在,则展开并读取文件。

sh -c "BASH_ENV=myproperty.properties myscript.sh"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-04
    • 1970-01-01
    • 2020-04-26
    • 1970-01-01
    • 2015-01-25
    相关资源
    最近更新 更多