我有一個shell腳本,詢問用戶輸入。考慮下面的例子在python中執行交互式shell腳本
Test.sh
#!/bin/bash
echo -n "Enter name > "
read text
echo "You entered: $text"
echo -n "Enter age > "
read text
echo "You entered: $text"
echo -n "Enter location > "
read text
echo "You entered: $text"
腳本執行:
sh test.sh
Enter name> abc
You entered: abc
Enter age > 35
You entered: 35
Enter location > prop
You entered: prop
現在,我稱此腳本Python程序。我正在使用子流程模塊來做這件事。據我所知,子過程模塊創建一個新的過程。問題是當我執行python腳本時,我無法將參數傳遞給底層shell腳本,scipt處於hault階段。可能某些時候我哪裏做錯了
python腳本(CHECK.PY):
import subprocess, shlex
cmd = "sh test.sh"
proc = subprocess.Popen(shlex.split(cmd), stdout=subprocess.PIPE, stderr=subprocess.PIPE)
stdout,stderr = proc.communicate()
print stdout
Python的執行:check.py
python check.py
我們可以通過OS模塊完成同樣的事情,但我嘗試使用子模塊 –