gpt4 book ai didi

python - 如何强制 os.system() 使用 bash 而不是 shell

转载 作者:太空狗 更新时间:2023-10-30 00:50:27 38 4
gpt4 key购买 nike

我已经尝试过 How to force /bin/bash interpreter for oneliners 中所说的内容

通过做

os.system('GREPDB="my command"')
os.system('/bin/bash -c \'$GREPDB\'')

但是运气不好,不幸的是我需要用 bash 运行这个命令,而 subp 在这个环境中不是一个选项,我仅限于 python 2.4。有什么建议可以让我朝着正确的方向前进吗?

最佳答案

这两个命令在不同的子 shell 中执行。

在第一个 system 调用中设置变量不会影响第二个 system 调用。

您需要将两个命令放在一个字符串中(将它们与 ; 组合)。

>>> import os
>>> os.system('GREPDB="echo 123"; /bin/bash -c "$GREPDB"')
123
0

注意 您需要使用"$GREPDB" 而不是'$GREPDBS'。否则按字面解释而不是展开。

如果可以使用subprocess:

>>> import subprocess
>>> subprocess.call('/bin/bash -c "$GREPDB"', shell=True,
... env={'GREPDB': 'echo 123'})
123
0

关于python - 如何强制 os.system() 使用 bash 而不是 shell,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21822054/

38 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com