2016-12-22 15 views
0

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

/home/username/processing/ScriptRunning 
/home/username/processing/functions/include_me 

В сценарии, он открывает еще один сценарий, который содержит функцию, просто делает это:

#!/bin/bash 
#This is ScriptRunning script 
. functions/include_me 

Теперь, когда я называю сценарий с помощью следующей поЬир команда:

поЬир/главная/имя пользователя/обработки/ScriptRunning

это выход:

/home/username/processing/ScriptRunning: line 3: /home/username/functions/include_me: No such file or directory 

Это, кажется, хватает на processing каталог

Я изменил линию внутри ScriptRunning иметь полный путь, как жёстко к /home/username/processing, а также имея это в качестве переменной, созданной путем вызова $(pwd), но ошибка одна и та же.

У меня действительно отсутствует что-то такое глупое?

ответ

1

Это не вопрос nohup. Вы включаете исходный файл, используя относительное имя файла. Попробуйте:

. $(dirname ${BASH_SOURCE})/functions/include_me 

включать исходный файл, расположенный по отношению к ${BASH_SOURCE}

+0

Я такой идиот, его только мне, чем осел! Я не понимал, что nohup.out прилагается. Первая ошибка была исходной, и после нее была другая. Ваш ответ действительно работает, я сам делал что-то очень похожее на установку переменной с помощью $ (dirname). Мне очень жаль, что потратил ваше время, что такое клоун. –

+0

Нет проблем. Все хорошо –