2017-10-02 9 views
0

Ich habe 2 Skripte. Script a.sh kochend Ausgabe Skript b.sh Verarbeiten der Ausgabe wie folgt:Bestimmung eines Skripts, das eine Ausgabe in ein anderes Skript leitet

$ cat a.sh 
#!/bin/bash 
echo output | ./b.sh ### piping into STDIN of b.sh script 
$ 
$ cat b.sh 
#!/bin/bash 
grep output ### reading from STDIN 
$ 
$ ./a.sh 
output 

Gibt es irgendeine Weise, die ich in Skript b.sh bestimmen kann, aus dem Skript es Eingang zu bekommen? Ich möchte, dass b.sh-Skript herausfindet, dass es a.sh ist. Ich habe versucht, mit Inhalten von/proc/$$/fd in Kombination mit lsof zu arbeiten, aber ohne Erfolg.

+1

Warum möchten Sie wissen? Was wirst du anders machen? Das klingt wie ein [XY-Problem] (https://meta.stackexchange.com/questions/66377/what-is-the-xy-problem). –

+0

jedes Skript sollte ein anderer Prozess sein, sollten Sie in der Lage sein, es aus einem PS-Befehl aus dem b.sh-Skript herauszufinden :) der übergeordnete Prozess sollte das a.sh-Skript sein – Rob

Antwort

0

Dies kann eine alberne Lösung sein, aber Sie können ps verwenden, um den übergeordneten Prozess zu finden, als den Befehl von diesem Prozess erneut mit ps zu erhalten.

Beispiel von durch diese auf die b.sh Zugabe gab man oben:

ps -p $(ps -o ppid= -p $$) -o cmd= 

die ausgegeben werden, wenn aus dem a.sh Skript aufgerufen wurde:

/bin/bash ./a.sh 

, wenn sie direkt vom Befehl aufgerufen Leitung:

-bash 

ich nehme an, Sie es die/proc/$$ Ordner verwendet, könnte das gleiche tun Look zu erzielen Importieren Sie in/proc/$$ die parentPid und lesen Sie/proc/$ (parentPid)/cmdline, um das gleiche Ergebnis zu erhalten.

so diese Weise können Sie so etwas wie tun würde:

parentPid=$(cat /proc/$$/stat | awk '{print $4}') 
cat /proc/$(parentPid)/cmdline 

ausgegeben, wenn b.sh von a.sh aufgerufen:

/bin/bash./a.sh 
+1

Ich konnte dies tun, indem Sie: cat/proc/$ PPID/cmdline | Saiten | tail -n +2 –

+0

@ rasty.g guter Deal. :) – Rob

0

Sie den ps Befehl verwenden könnte mit der PPID Option, oder der caller Befehl, um zu überprüfen, welches Skript es aufgerufen hat.

Verwandte Themen