在python中获取shell提示

Pseyfert

我想在python脚本中获取(zsh)shell提示符。只需使用

import os
prompt = os.environ['PS1']

似乎不是正确的方法,因为PS1通常不会转发给子流程。env | grep PS外壳中以相同的方式失败。

因此,我得出的结论是,我可能应该启动一个交互式外壳程序作为子进程并查询其提示符。从外壳我可以做

zsh -c -i 'echo $PS1'

(必须为单引号,双引号失败)

我试图从python(2.7)subprocess这样做就像这样:

print subprocess.check_output(['-i','-c',r"'echo $PS1'"],executable="/bin/zsh")

这失败了

subprocess.CalledProcessError: Command '['-i', '-c', "'echo $PS1'"]' returned non-zero exit status 127

我认为这不是因为$PS1而是由于我如何提供echo-part作为参数,因为以这种方式回显裸字符串也失败了。

最终来回尝试各种组合

prompt =  subprocess.check_output("""zsh -c -i 'echo $PS1'""",shell=True,executable="/bin/zsh")

这似乎可以完成工作,但是对我来说似乎是错的,因为这正在启动一个shell,并在该shell中使用调用另一个shell -c -i 'echo $PS1'

获取shell提示的正确方法是什么?

吉格纳卡
print subprocess.check_output(['zsh','-i','-c','echo $PS1'])

zsh从另一个外壳运行时,必须用引号引起来echo $PS1,以便整个字符串作为后面的单个参数传递-c它们必须是引号,因为在双引号中,第一个外壳会扩展了$PS1

在Python中,整个命令是一个字符串,因此它像其他字符串一样被引用。添加第二组就像键入'echo $PS1'(带引号)zsh-外壳将查找名为的可执行文件,但找不到'echo $PS1'

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在Python中获取shell提示

来自分类Dev

如何在Python中获取实际的shell提示字符串?

来自分类Dev

Emacs Shell提示中的颜色

来自分类Dev

获取Python(cron)中Shell命令的输出?

来自分类Dev

使用ubuntu中的shell脚本获取不提示输入密码的无线接入点名称或ssid

来自分类Dev

从Java ProcessBuilder运行的Shell中显示提示

来自分类Dev

本机终端 shell 中缺少 Bash 提示

来自分类Dev

从python中的shell命令获取返回值

来自分类Dev

如何从Python脚本中的Shell重定向获取输出数据?

来自分类Dev

如何获取使用Python在Shell中执行的命令和参数

来自分类Dev

在python函数中运行Shell脚本并从脚本获取数据

来自分类Dev

如何获取我的Shell脚本以自动接受提示?

来自分类Dev

如何在Python中使用Selenium从JS提示符中获取整数

来自分类Dev

使用Selenium Python获取工具提示文本

来自分类Dev

在pydev中输入提示以获取多个参数

来自分类Dev

在Highcharts的工具提示中获取轴名称

来自分类Dev

在ipython中获取当前的提示号码

来自分类Dev

在Clojure中获取函数的参数类型提示

来自分类Dev

在Leaflet中获取活动的工具提示文本

来自分类Dev

在Highcharts的工具提示中获取轴名称

来自分类Dev

如何从 <input> 而不是提示中获取值?

来自分类Dev

在方法中获取按钮工具提示

来自分类Dev

Python 2中的类型提示

来自分类Dev

Windows中的彩色Python提示?

来自分类Dev

重新提示Python中的动作

来自分类Dev

命令提示中的Python路径

来自分类Dev

Python:从多行提示中读取

来自分类Dev

使用python获取Shell输出

来自分类Dev

在另一种 shell 类型下运行的 shell 脚本中的奇怪 shell 提示 (PS)

Related 相关文章

热门标签

归档