我正在使用bash腳本來遍歷配置文件,並基於此,通過ssh調用python腳本。不幸的是,一旦Python腳本完成它的工作,我打電話quit
bash腳本也會關閉,因此調用bash腳本的循環過早終止。如何從我的python腳本返回控件到調用bash腳本?
這裏是我的bash腳本
target | grep 'srv:' | while read l ; do srv $l $SSH ; done
srv() {
SSH=$2
SRV=`echo $1 | awk -F: '{print $2}'`
STATUS=`echo $1 | awk -F: '{print $3}'`
open $SSH "srv" $SRV $STATUS
}
然後遠程機器在python腳本被稱爲
if __name__== "main":
redirect('./Server.log', 'false')
conn()
if sys.argv[1] == "srv":
ServerState(sys.argv[2], sys.argv[3])
quit()
上所以看起來像退出()也中斷了腳本。
你有沒有嘗試刪除quit()語句,並讓執行到達文件的結尾? –
是否退出函數fire sys.exit(0)?如果Alex的解決方案無效,你也可以嘗試。 –
我剛剛嘗試對quit()函數進行註釋,以正常關閉與服務器的打開會話。 無論如何,它仍然以相同的方式表現。它可能是SSH會話嗎? 'open(){ if [$ 1 =「true」];然後 \t ssh -l「$ SSHUSER」「$ SSHOST」「$ WSLT $ PYTH $ 2 $ 3 $ 4;」 else \t $ WLST $ PYTH $ 2 $ 3 $ 4 fi }' – AleIla