python - Python的子进程使用什么shell?
问题描述
这个问题和答案演示了如何使用 Python 的subprocess
模块与 Python 进行交互bash
。
因此,如果subprocess
不使用系统的默认 shell,那么它使用什么 shell来运行如下命令:
import subprocess
print subprocess.check_output(["ls", "-la"])
解决方案
如果shell
没有作为它使用的关键字参数传递fork_exec
,或者_winapi.CreateProceess
- https://github.com/python/cpython/blob/f3751efb5c8b53b37efbbf75d9422c1d11c01646/Modules/_posixsubprocess.c#L600
- https://github.com/python/cpython/blob/f3751efb5c8b53b37efbbf75d9422c1d11c01646/Modules/_winapi.c#L1062
- https://github.com/python/cpython/blob/e02ab59fdffa0bb841182c30ef1355c89578d945/Lib/subprocess.py#L1770
- https://github.com/python/cpython/blob/e02ab59fdffa0bb841182c30ef1355c89578d945/Lib/subprocess.py#L1434
如果shell=True
:
- posix它使用
/bin/sh
, . - 它使用的窗户
cmd.exe
。
看:
推荐阅读
- javascript - Nuxt 注册用户返回无法读取未定义的属性 'then'
- jenkins - Jenkins groovy 中的关系运算符
- python - Django 模型字段内联
- html - 如何使导航栏具有粘性?
- python - 从 scipy.optimize 最小化约束的不可迭代错误
- python - 无法在 Windows-10 中使用 Docker 运行 Flask App
- android - Android 创建一个两个应用程序可以读取的文件
- sorting - 你如何分析这个排序算法的时间复杂度?
- react-native - VirtualizedLists 永远不应该嵌套错误
- javascript - 尽管处理它但在控制台上出现错误(MERN + Redux)