2017-02-06 294 views
0

我有兩個shell腳本,稱爲script1.sh(在本地服務器上執行)和script2.sh(在遠程服務器上執行,我將它傳遞給ssh命令)。我的script1.sh連接到unix服務器並執行script2.sh,如下所示。如何從一個shell腳本返回一個變量到另一個腳本

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

和script2.sh做一些計算和返回一些變量來調用腳本即script1.sh

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

我想從該服務器上執行script2.sh返回VAR1,應該返回一些值給script1.sh。我怎樣才能做到這一點?我需要在script1.sh中讀取var1的值。請幫幫我。

+0

您不能使用退貨。使用'echo'。 – ceving

回答

0

最簡單的方法是使用標準輸出,並打印出結果你script2.sh(使用echo爲你所做的),並將其收集在script1.sh例如

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

這變得更加複雜/當你從一個孩子的腳本返回多個值,你必須劃定/解析。然而,對於單一的價值來說,這是一種簡單而實用的方法。

請注意,這與shell腳本退出代碼截然不同,傳統上它用於指示腳本是否成功返回。

相關問題