子进程中的`shell = True`中的`shell`是否意味着`bash`?

2023-09-03Python开发问题
3

本文介绍了子进程中的`shell = True`中的`shell`是否意味着`bash`?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

问题描述

我想知道 subprocess.call("if [ ! -d '{output}' ]; then mkdir -p {output}; fi",shell=True) 是否会被解释shzsh 而不是 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`?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

The End

相关推荐

在xarray中按单个维度的多个坐标分组
groupby multiple coords along a single dimension in xarray(在xarray中按单个维度的多个坐标分组)...
2024-08-22 Python开发问题
15

Pandas中的GROUP BY AND SUM不丢失列
Group by and Sum in Pandas without losing columns(Pandas中的GROUP BY AND SUM不丢失列)...
2024-08-22 Python开发问题
17

pandas 有从特定日期开始的按月分组的方式吗?
Is there a way of group by month in Pandas starting at specific day number?( pandas 有从特定日期开始的按月分组的方式吗?)...
2024-08-22 Python开发问题
10

GROUP BY+新列+基于条件的前一行抓取值
Group by + New Column + Grab value former row based on conditionals(GROUP BY+新列+基于条件的前一行抓取值)...
2024-08-22 Python开发问题
18

PANDA中的Groupby算法和插值算法
Groupby and interpolate in Pandas(PANDA中的Groupby算法和插值算法)...
2024-08-22 Python开发问题
11

PANAS-基于列对行进行分组,并将NaN替换为非空值
Pandas - Group Rows based on a column and replace NaN with non-null values(PANAS-基于列对行进行分组,并将NaN替换为非空值)...
2024-08-22 Python开发问题
10