【问题标题】:bash script not running in nohup but working fine as stand alone [duplicate]bash脚本没有在nohup中运行,但作为独立的工作正常[重复]
【发布时间】:2016-10-13 06:35:46
【问题描述】:

我有一个使用配置文件的 shell 脚本。我添加了以下代码来使用配置文件。

source abc.config

当我手动运行这个 shell 脚本时,它工作正常。但是,当我使用 no hup 将此 shell 脚本作为后台进程时,它给了我以下错误。

第 19 行:来源:abc.config:找不到文件

我使用

调试了 shell 脚本
bash -x shell_script.sh

在调试中,它正确地获取了配置值,并且 shell 脚本正常工作。

这个shell脚本几天前运行良好,但突然开始出现这样的错误。同样的脚本在另一个环境中运行良好。

要正确运行这个 shell 脚本,我们必须在源语句中给出配置文件的完整路径。但这不是正确的方法,因为配置文件和 shell 脚本都在同一个文件夹中,对于源语法,我们只需要给出配置文件名。

我该如何解决这个问题?

P.S : 目前,我添加了配置文件的路径如下

source ${path}/abc.config

但我想获取一个没有路径的配置文件。

【问题讨论】:

    标签: linux bash shell config nohup


    【解决方案1】:

    您可以尝试“source ./abc.config”,以确保查看的是同一个文件夹。

    --或者,取决于执行模式/环境的复杂性--

    在采购之前,您可能会检测到脚本正在运行的文件夹,将其存储到变量中并将其用作 abc.config 的前缀,例如

    DIRN=`dirname $0`
    source $DIRN/abc.config
    

    【讨论】:

    • 感谢您的快速回复,我只遵循该解决方案,但我只想将配置文件名与 source 命令一起使用。我检查了 .profile .bashrc 以找到一些线索。但没有得到任何东西。
    猜你喜欢
    • 2021-05-17
    • 1970-01-01
    • 2015-07-14
    • 1970-01-01
    • 2010-10-17
    • 2015-10-25
    • 2017-05-11
    • 2012-12-15
    • 2022-01-01
    相关资源
    最近更新 更多