2017-02-06 2 views
0

Ich habe 2 Shell-Skripte mit dem Namen script1.sh (wird auf dem lokalen Server ausgeführt) und script2.sh (wird auf dem Remote-Server ausgeführt und übergibt es an den ssh-Befehl). und mein script1.sh verbindet sich mit unix server und führt script2.sh wie folgt aus.wie man eine Variable von einem Shell-Skript zu einem anderen Skript zurückgibt

declare RESULT=$(sshpass -p 'password' ssh [email protected] "bash -s" < ./script2.sh) 

und script2.sh führt einige Berechnungen und liefert eine Variable Aufruf Skript dh script1.sh

#!/bin/sh 
declare var1="fgte" 
return var1 

I var1 von script2.sh zurückkehren möchten, die auf dem Server ausgeführt wird und sollte einige zurückkehren Wert für script1.sh. Wie kann ich das machen? Ich muss den Wert von var1 in script1.sh lesen. Bitte hilf mir.

+0

Sie können die Rückgabe nicht verwenden. Verwende echo. – ceving

Antwort

0

Die einfachste Möglichkeit ist die Verwendung von stdout, und drucken Sie das Ergebnis in Ihrem script2.sh (mit echo wie Sie getan haben), und sammeln Sie es in script1.sh z.

#!/bin/sh 
result=$(script2.sh $var) 

Dies wird komplexer als/wenn Sie mehrere Werte von einem Kind Skript zurückzukehren, und Sie haben/Parse zu beschreiben. Für einen einzelnen Wert ist es jedoch ein einfacher und pragmatischer Ansatz.

Hinweis: Dies unterscheidet sich vom Shell-Skript Exit-Code, der traditionell verwendet wird, um anzugeben, ob das Skript erfolgreich zurückgegeben wurde oder nicht.

Verwandte Themen