我在使用subprocess.call()執行shell腳本的問題,我在Python控制檯做這個測試,試圖找出其中的問題是:使用Python子調用(叫)shell腳本將不起作用
import subprocess
subprocess.call(["touch", "/tmp/out.txt"])
這可以在tmp文件夾中創建文件。然而,沒有這兩個調用的工作:
subprocess.call(["sh", "/tmp/test.sh"])
subprocess.call(["/tmp/test.sh"])
/tmp/test.sh:
#!/bin/bash
touch out.txt
exit 0
基本上,執行從一個subprocess.call腳本()不產生任何輸出。我完全授權文件和文件夾以避免任何問題。看起來問題可能與用戶執行腳本有關,但與第一種情況相同,該用戶正在工作。 任何想法可能是什麼問題?
順便說一句,我使用的是Ubuntu 12.04 LTS,Python 2.7.4。
在此先感謝。
這應該在你的cwd而不是你的'/ tmp'上創建'test.sh'。 – utdemir
不確定你的意思。我期望在/ tmp文件夾中創建out.txt文件。我沒有任何錯誤訪問腳本文件,所以路徑是正確的,但是,該文件沒有創建。 – dmelendo
「...從subprocess.call()執行腳本不產生任何輸出」 - 你的shell腳本不包含任何應該產生任何輸出的東西,所以我不知道爲什麼這是令人驚訝的... – twalberg