python 执行shell命令为什么会加 bash -c前缀,如何去掉命令中携带的bash -c
时间: 2024-03-27 13:34:55 浏览: 131
CloudFoundry-BulkUserCreation:用于批量用户生成的BASH脚本
Python执行shell命令时会默认使用`bash`作为默认的shell解释器,而`bash -c`是一种在bash中执行单个命令或命令字符串的方式。因此,在执行shell命令时,Python会自动将命令字符串包装在`bash -c`中。
如果你想去掉命令中携带的`bash -c`,可以使用`subprocess.Popen`来代替`os.system`执行命令,然后将`shell`参数设置为`True`,这样就可以直接执行命令字符串了,例如:
```python
import subprocess
cmd = "ls -l"
subprocess.Popen(cmd, shell=True)
```
这样执行的命令就不会带有`bash -c`前缀了。不过需要注意的是,使用`shell=True`执行命令会存在一定的安全风险,因为它可以执行任意的shell命令,所以需要确保命令字符串的来源是安全可信的。
阅读全文