我的腳本是這樣的命令行從python腳本執行的shell腳本參數
./pro.sh "Argument1"
我從我的Python腳本調用它目前這樣
subprocess.call(shlex.split('bash pro.sh "Argument1"'))
如何執行我是否將Argument1的值作爲變量傳遞?我對腳本的參數可以是任何字符串。我如何實現這一目標?
我的腳本是這樣的命令行從python腳本執行的shell腳本參數
./pro.sh "Argument1"
我從我的Python腳本調用它目前這樣
subprocess.call(shlex.split('bash pro.sh "Argument1"'))
如何執行我是否將Argument1的值作爲變量傳遞?我對腳本的參數可以是任何字符串。我如何實現這一目標?
您可以使用
subprocess.Popen(["bash", "pro.sh", "Argument1"])
如果字符串參數是多個單詞,它應該工作的罰款。
subprocess.Popen(["bash", "pro.sh", "Argument with multiple words"])
只要多個單詞是在傳遞到subprocess.Popen()
列表中的一個字符串,它被認爲是在該命令的參數列表一個參數。
除非您有充分的理由,否則不應使用shell=True
。如果您不太注意它的使用方式,可能會造成安全問題。
使用子打電話給你的shell腳本
subprocess.Popen(['run.sh %s %s' % (var1, var2)], shell = True)
我的參數是一串多個單詞。當我使用這個時,只有字符串的第一個字被使用。 – RJP
U必須將字符串存儲在變量var1,var2中,然後執行腳本 – bigbounty
我已經這樣做了。它只讀取var1的第一個單詞。 var 1包含多個單詞 – RJP