新しいシェルを作成し、新しいシェル(古いシェルではない)で新しいコマンドを実行するスクリプト

新しいシェルを作成し、新しいシェル(古いシェルではない)で新しいコマンドを実行するスクリプト

次のように構成された汎用シェルcshコマンドスクリプトがあります。新しい端末を作成し、後続のコマンドを実行したいと思います。存在する新しいシェルが作成されました。

xterm&;
sourcemyscript.scr;fred;runtool&;

xterm & ;source myscript.scr;ツールの実行&

term1というcsh用語でスクリプトを実行しています。したがって、最初の部分は、新しいターミナルterm2を開き、新しく開いたターミナルterm2で次のいくつかのコマンドを実行することです。その後、元のterm1端末の他の端末も必要になり、この新しい端末で別のコマンドを実行します(例:term3)。

新しいターミナルterm2が作成されましたが、後続のコマンドが新しいターミナルterm2ではなく元のターミナルterm1で実行されることがわかりました。

後続のコマンドが実行のために新しいシェルfofに「移動」されたかどうかを確認する方法を提案しますか?また、戻って新しい端末を実行する必要があることにも注意してください。

ベストアンサー1

使用:

xterm -e "myscript.scr; cd fred; run _tool" &
xterm -e "source myscript.scr; cd bull; run_tool" &

スイッチは-e指定されたコマンドを実行します以内にxterm代わりに会議後ろにあなたの例はまさにそのことをします。

マニュアルページから:

-eプログラム[パラメータ...]

このオプションは、xtermウィンドウで実行されるプログラム(および対応するコマンドライン引数)を指定します。 -Tと-nがコマンドラインに指定されていない場合、ウィンドウのタイトルとアイコン名もランチャーのデフォルト名に設定されます。これはコマンドラインの最後のオプションでなければなりません。

おすすめ記事