Does the `shell` in `shell=True` in subprocess means `bash`?(子进程中的`shell = True`中的`shell`是否意味着`bash`?)
问题描述
我想知道 subprocess.call("if [ ! -d '{output}' ]; then mkdir -p {output}; fi",shell=True) 是否会被解释sh 或 zsh 而不是 bash 在不同的服务器?
有人对此有想法吗?
我应该怎么做才能确保它被 bash 解释?
http://docs.python.org/2/library/subprocess.html
<块引用>在 shell=True 的 Unix 上,shell 默认为/bin/sh请注意,/bin/sh 通常与不同的符号链接,例如在 ubuntu 上:
$ ls -la/bin/shlrwxrwxrwx 1 root root 4 Mar 29 2012/bin/sh ->短跑您可以使用 executable 参数替换默认值:
... 如果 shell=True,打开Unix 的可执行参数为默认/bin/sh.
subprocess.call("if [ ! -d '{output}' ]; then mkdir -p {output}; fi",壳=真,可执行文件="/bin/bash")I was wondering whether subprocess.call("if [ ! -d '{output}' ]; then mkdir -p {output}; fi",shell=True) will be interpreted by sh orzsh instead of bash in different server?
Anyone has ideas about this?
What should I do to make sure that it's interpreted by bash?
http://docs.python.org/2/library/subprocess.html
On Unix with shell=True, the shell defaults to /bin/sh
Note that /bin/sh is often symlinked to something different, e.g. on ubuntu:
$ ls -la /bin/sh
lrwxrwxrwx 1 root root 4 Mar 29 2012 /bin/sh -> dash
You can use the executable argument to replace the default:
... If shell=True, on Unix the executable argument specifies a replacement shell for the default /bin/sh.
subprocess.call("if [ ! -d '{output}' ]; then mkdir -p {output}; fi",
shell=True,
executable="/bin/bash")
这篇关于子进程中的`shell = True`中的`shell`是否意味着`bash`?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:子进程中的`shell = True`中的`shell`是否意味着`bash`?
基础教程推荐
- 在同一图形上绘制Bokeh的烛台和音量条 2022-01-01
- 包装空间模型 2022-01-01
- 求两个直方图的卷积 2022-01-01
- Plotly:如何设置绘图图形的样式,使其不显示缺失日期的间隙? 2022-01-01
- 在Python中从Azure BLOB存储中读取文件 2022-01-01
- PermissionError: pip 从 8.1.1 升级到 8.1.2 2022-01-01
- PANDA VALUE_COUNTS包含GROUP BY之前的所有值 2022-01-01
- 使用大型矩阵时禁止 Pycharm 输出中的自动换行符 2022-01-01
- 修改列表中的数据帧不起作用 2022-01-01
- 无法导入 Pytorch [WinError 126] 找不到指定的模块 2022-01-01
