4

新しい2.6サブプロセスモジュールを使用せずに、os.popenまたはos.systemのいずれかで、bashの代わりにtcshを使用してコマンドを実行するにはどうすればよいですか?他のコマンドを実行する前に、tcshで記述されたスクリプトを入手する必要があり、python2.4内でこれを行う必要があります。

編集'tcsh-c'を使用して回答をありがとうございますが、私は狂気から逃れる必要があるため、これを避けたいと思います。文字列はbashによって解釈され、次にtcshによって解釈されます。私は次のようなことをしなければなりません:

os.system("tcsh -c '"+re.compile("'").sub(r"""'"'"'""",my_cmd)+"'")

'bash'サブプロセスの代わりに'tcsh'サブプロセスを開くようにPythonに指示することはできませんか?それは可能ですか?

PS私は、bashが猫の鳴き声であることを認識していますが、私は企業環境で働いており、tcshとbashの戦い(より大きな魚を揚げる)と戦わないことを選択します。

4

3 に答える 3

11

コマンドの一部としてシェルのプレフィックスを付けるだけです。私はtcshをインストールしていませんが、zshを使用しています:

>>> os.system ("zsh -c 'echo $0'")
zsh
0
于 2009-02-10T17:53:19.697 に答える
5

どうですか:

>>> os.system("tcsh your_own_script")

または、スクリプトを記述して追加するだけです

#!/bin/tcsh

ファイルの先頭で、OSに処理させます。

于 2009-02-10T17:50:02.310 に答える
-1

使用するシェルを次のように設定するだけですtcsh

>>> os.environ['SHELL'] = 'tcsh'
>>> os.environ['SHELL']
'tcsh'
>>> os.system("echo $SHELL")
tcsh
于 2009-02-10T18:06:53.177 に答える