如果不使用新的2.6子进程模块,如何使用tcsh而不是bash来获取os.popen或os.system来执行命令?我需要在执行一些其他命令之前获取一些用tcsh编写的脚本,我需要在python2.4中执行此操作.
编辑感谢使用'tcsh -c'的答案,但我想避免这种情况,因为我必须逃避疯狂.该字符串将由bash解释,然后由tcsh解释.我必须做的事情如下:
os.system("tcsh -c '"+re.compile("'").sub(r"""'"'"'""",my_cmd)+"'")
我不能告诉python打开'tcsh'子进程而不是'bash'子进程吗?那可能吗?
PS我意识到bash是猫的喵喵,但我在公司环境中工作,我将选择不打tcsh vs bash战斗 - 更大的鱼来炸.
只需将shell作为命令的一部分加上前缀.我没有安装tcsh但是使用zsh:
>>> os.system ("zsh -c 'echo $0'") zsh 0
怎么样:
>>> os.system("tcsh your_own_script")
或者只是编写脚本并添加
#!/bin/tcsh
在文件的开头,让操作系统处理.