我有一个使用配置文件的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
但是我想要一个没有路径的配置文件。
答案 0 :(得分:0)
您可以尝试“source ./abc.config”,以确保查看相同的文件夹。
- 或者,取决于执行模式/环境的复杂性 -
在采购之前,您可能会检测到脚本运行的文件夹,将其存储到变量中并将其用作abc.config的前缀,如
DIRN=`dirname $0`
source $DIRN/abc.config