2016-10-13 10 views
0

У меня есть один скрипт оболочки, который использует файл конфигурации. Я добавил следующий код для использования файла конфигурации.bash скрипт не работает в nohup, но работает нормально как автономный

source abc.config 

Когда я запустил этот скрипт оболочки вручную, он работает нормально. Однако, когда я делаю этот сценарий оболочки фоновым процессом с использованием no hup, он дает мне следующую ошибку.

линия 19: Источник: abc.config: файл не найден

Я отлажена сценарий оболочки, используя

bash -x shell_script.sh 

В отладке он принимает значения конфигурации правильно и сценарий оболочки работал.

Этот сценарий оболочки работал отлично несколько дней назад, но внезапно он начал давать такие ошибки. Также тот же скрипт отлично работает в другой среде.

Для правильного выполнения этого сценария оболочки мы должны предоставить полный путь к файлу конфигурации в исходной инструкции. Но это неверно, так как сценарии конфигурации и оболочки обычно находятся в одной папке и для синтаксиса источника мы должны указывать только имя файла конфигурации.

Как исправить эту проблему?

P.S: В настоящее время я добавил путь конфигурационного файла следующим образом

source ${path}/abc.config 

Но я хочу, чтобы источник конфигурационного файла без пути его.

ответ

0

Вы можете попробовать «источник ./abc.config», чтобы убедиться, что он ищет одну и ту же папку.

-OR, в зависимости от сложности выполнения режима/environment--

перед тем поиском вы можете обнаружить папку скрипт работает в, магазине, в переменный и использовать его в качестве префикса для вашего аЬса .config, как

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

спасибо за быстрый ответ, я следую за этим решением, но я хочу использовать только имя файла конфигурации с исходной командой. Я проверил .profile .bashrc, чтобы найти подсказку. но не получил. – Vidya