[问题] 如何在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