[問題] 如何在shell裡面下指令

作者: proX (不知名水鳥)   2016-07-24 01:33:13
嗨大家好
想請問如何要在一個新的shell裡面下指令,不會等到該shell關閉以後才能繼續那個指令
舉個例子,在Unix shell上面,假設用特定的指令會開新的shell (暫且稱之為newsh),
進去這個newsh shell以後,想要用exit再出去,也就是回去原本的unix shell
enter_shell = subprocess.Popen('newsh', shell=True)
exit_shell = subprocess.Popen('exit', shell=True, stdout=subprocess.PIPE)
out, _ = exit_shell.communicate()
print out
enter_shell成功進去newsh以後,exit_shell起不了作用。
試著在 command line 上面打'exit'可以結束newsh,而exit_shell這時候突然可以動了,
因為執行exit_shell又exit一次,但terminal並沒有被關閉,之後out才跟著被印出來
但我希望的是exit_shell的程序在newsh裡面執行,而不是等待newsh shell關閉以後才
接收這個指令,變成exit兩次,試了幾次都失敗,不知道要怎麼做QQ
有任何建議或其他作法都非常感謝~~~
謝謝大家!!
作者: s860134 (s860134)   2016-07-24 02:47:00
enter_shell 和 exit_shell 兩者環境是獨立的
作者: Neverfor (八卦蟑螂)   2016-07-24 02:47:00
我的眼睛!!!
作者: kenduest (小州)   2016-07-24 02:54:00
我看好久,原貼可能完全誤會 process 運作原理另外還有開一個 shell 目的是什麼也看不出來
作者: aweimeow (喵喵喵喵 ヽ( ・∀・)ノ)   2016-07-25 20:10:00
用 pty ?

Links booklink

Contact Us: admin [ a t ] ucptt.com