2013-02-22 127 views
-1

我已經創建了一個TCP客戶端/服務器,用於確定軟件是否是最新的,如果不是它調用bash腳本來執行軟件升級。我有這個成功在Windows上使用下面的代碼和啓動客戶端從Cygwin的Python 3:在Python腳本中啓動Bash腳本

但是工作
subprocess.call("windowsUpgrade.sh", shell=True) 

,當我嘗試,我得到的錯誤,而使用這種從一個基於Linux或Mac客戶端

/bin/sh: linuxUpgrade.sh: not found 

/bin/sh: macUpgrade.sh: command not found 

是什麼原因導致這個問題,以及如何解決它的任何想法? 感謝

+0

當前工作目錄差異?你確定這些腳本在頂部有一個哈希爆炸線嗎?處於正確的位置等? – 2013-02-22 15:59:04

+0

它們在頂部(#!/ bin/bash)有hash-bang行,並且與Mac上Linux和Desktop上的root用戶位於同一目錄中。 – Metagen 2013-02-22 16:17:44

回答

1

當前目錄是在默認情況下沒有在PATH變量,其中的可執行文件進行了全面搜查,可以嘗試:

subprocess.call("./linuxUpgrade.sh", shell=True) 

還,請確保您的腳本標記爲可執行

chmod u+x linuxUpgrade.sh