在不使用新的 2.6 子进程模块的情况下,如何让 os.popen 或 os.system 使用 tcsh 而不是 bash 来执行我的命令?在执行一些其他命令之前,我需要获取一些用 tcsh 编写的脚本,我需要在 python2.4 中执行此操作。
编辑 感谢使用“tcsh -c”的答案,但我想避免这种情况,因为我必须逃避疯狂。该字符串将由 bash 解释,然后由 tcsh 解释。我将不得不做类似的事情:
os.system("tcsh -c '"+re.compile("'").sub(r"""'"'"'""",my_cmd)+"'")
我不能只告诉 python 打开一个“tcsh”子进程而不是“bash”子进程吗?这可能吗?
附言 我意识到 bash 是猫的叫声,但我在公司环境中工作,我将选择不打一场 tcsh 与 bash 的战斗——更大的鱼要炸。
最佳答案
只需在 shell 前加上前缀作为命令的一部分。我没有安装 tcsh 但安装了 zsh:
>>> os.system ("zsh -c 'echo $0'")
zsh
0
关于python - 在 python 2.4 中,如何使用 csh 而不是 bash 执行外部命令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/533398/