python - 在 python 2.4 中,如何使用 csh 而不是 bash 执行外部命令?

标签 python shell csh tcsh

在不使用新的 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/

相关文章:

Python 按键和按键释放监听器

Python 无法正确运行 shell 命令

linux - 如何在 csh/tcsh 中写一个可以用 shebang 写一个文件的别名?

bash - 如何确定我所在的当前交互式 shell(命令行)

python - 将列表中的字符串转换为 float

python - 将 InitSpider 与启动画面 : only parsing the login page? 一起使用

python - 将行编辑传递给上下文管理器以设置验证器

linux - 使用 awk 在 Linux 中分割日期

macos - (OS X Shell)基于包含不带扩展名的文件名的文本文件复制文件

csh - TCSH shell 中 << 重定向有何用途