bash脚本没有在nohup中运行但是作为独立工作正常

时间:2016-10-13 06:35:46

标签: linux bash shell config nohup

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

source abc.config

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

  

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

我使用

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

在调试中,它正确地获取配置值并且shell脚本有效。

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

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

如何解决此问题?

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

source ${path}/abc.config

但是我想要一个没有路径的配置文件。

1 个答案:

答案 0 :(得分:0)

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

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

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

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