2016-12-22 3 views
0

Ich habe ein Skript, das, wenn ich auf dem Bildschirm läuft, perfekt funktioniert. Die Verzeichnisstruktur ist wie folgt:Aufruf eines Skripts in einem Skript, das über nohup ausgeführt wurde

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

Im Skript, öffnet es ein anderes Skript, die eine Funktion enthält, indem man einfach, dies zu tun:

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

Nun, wenn ich das Skript mit dem folgenden nohup aufrufen Befehl:

nohup/home/Benutzername/Verarbeitung/ScriptRunning

dies ist die Ausgabe:

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

Es scheint, die die Linie innerhalb der ScriptRunning geändert Ich habe

processing Verzeichnis verpasst zu sein, um einen vollständigen Pfad zu haben, beide zu /home/username/processing fest einprogrammiert und auch dies als ein durch den Aufruf $(pwd) erstellt Variable hat, aber der Fehler ist der gleiche.

Vermisse ich wirklich etwas so dumm?

Antwort

1

Dies ist kein nohup Problem. Sie fügen eine Quelldatei mit einem relativen Dateinamen ein. Versuchen:

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

umfassen eine Quelldatei relativ befindet ${BASH_SOURCE}

+0

Ich bin so ein Idiot, es ist nur mir, was für ein Esel! Ich wusste nicht, dass das nohup.out angehängt wurde. Der erste Fehler war der Anfang und danach gab es einen Unterschied. Ihre Antwort funktioniert, ich habe selbst etwas sehr ähnliches getan, indem ich eine Variable mit $ (dirname) gesetzt habe. Es tut mir leid, dass ich deine Zeit verschwendet habe, was für ein Clown ich bin –

+0

Kein Problem. Alles gut –

Verwandte Themen