我試圖在python中創建一個基本上是shell終端的簡單腳本。它會反覆詢問輸入命令並嘗試執行給定的os命令。我無法弄清楚的是,如何讓Python'記住'已執行的命令。我的意思在python中執行相關的os命令
實施例:
- 用戶輸入
ls
- Python的打印當前目錄的內容
- 接着用戶輸入
cd exampledir
- Python的執行命令
- 用戶輸入
ls
- Python打印的內容210
由於命令序列是ls
>cd exampledir
>ls
我期望程序返回exampledir的內容,而是在兩個ls
命令的輸出是相同的。
有沒有辦法讓Python以某種方式「記住」已執行的命令並根據以前的命令執行下一個命令?
我知道你可以使用類似cd exampledir && ls
但這不是我要找的東西。這些命令必須像shell終端一樣單獨執行。
到目前爲止的代碼:
import subprocess
while True:
cmd = input("Command to Execute: ")
p = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
out = p.communicate()[0]
print(out)
感謝您的回覆。這個項目的重點是創建一個Web應用程序,用戶可以在其中輸入os命令(如在終端中),這些命令將發送到服務器,執行並將輸出返回到Web應用程序。我正在尋找一些通用的方式來做這個'命令鏈接'。就像命令可以是'ls'到'grep'到'scp'一樣。用戶應該能夠像使用服務器實際終端一樣執行命令。 那麼你知道我可以像shell會話那樣創建每個命令的結果嗎? – Chaosy
好的,但你仍然必須檢查和過濾所有的命令(有點像上面),你不能允許輸入,因爲這是危險的。 –