3

私はbashスクリプトを持っており、その中のcshellでいくつかのコマンドを実行する必要があります。

#!/bin/bash

echo entering_to_cshell
csh
echo in_cshell
exit
echo exited_from_cshell

このスクリプトが期待どおりに実行されないのはなぜですか?印刷するだけでentering_to_cshell、cshellからは終了しません。

4

2 に答える 2

2

使用することで

csh

スクリプトが実行されない新しいサブシェルを開始します。そのため、次のコマンドはどれも実行されません。あなたのスクリプトは、このサブシェルが終了するのを待ちます。

試す

csh -c "echo in_cshell"

この方法では、スクリプトの影響を受けない新しいサブシェルを作成しません。

于 2013-02-19T09:31:20.680 に答える
0

スクリプトを呼び出すだけcshで、インタラクティブな csh サブシェルが開始されます。セッションを終了するcshと、スクリプトは後続の echo と quiting on に進みexitます。

一連のコマンドをcshbash スクリプトから に渡す方法の 1 つは、ヒア ドキュメント構文を使用してコマンドを にリダイレクトすることcshです。

#!/bin/bash

echo entering_to_cshell

csh <<EOF
echo in_cshell
exit
EOF

echo exited_from_cshell

EOF エントリ間の行は、 によって解釈されるスクリプトとして扱われますcsh

于 2013-02-19T09:38:27.570 に答える