端末を開き、コマンドを自動的に実行するにはどうすればよいですか?

端末を開き、コマンドを自動的に実行するにはどうすればよいですか?

私は端末エミュレータにいます。指定されたコマンドを実行するために別の端末を開きたいです。

gnome-terminal -e "zsh -c 'pwd; zsh;'"

他の端末では引き続き正常に実行されますpwd。終了zsh後、pwdzsh が開始され、2 番目の端末インスタンスで別のコマンドを実行できます。

ただし、別のアプリケーションを実行すると、pwd長時間実行されるプログラムが正しく終了しません。

たとえば、CtrlCnode.jsサーバーをシャットダウンするために以下のコマンドを入力すると、端末も閉じます。オプションを介してSIGINT最初のオプションに渡されるようです。zsh-c

gnome-terminal -e "zsh -c 'node server.js; zsh;'"

この問題をどのように解決できますか?

ベストアンサー1

私はこれをbashで試しました

それでもできない場合は、事前に謝罪してください。

私はuserInput.shというbashスクリプトを書いた。スクリプトはユーザー入力を待って終了します。

`

## trap ctrl-c and call ctrl_c()

trap ctrl_c INT

function ctrl_c() {

echo "** Trapped CTRL-C"

exit
}

read -p "Press any key to continue... " -n1 -s 

今実行してclt + cを押すと

gnome-terminal -e "bash -c './userInput.sh; bash;'"

userInput.sh は終了しますが、 bash プロンプトはそのまま残ります。

今、あなたの場合は、ユーザー入力を待たずに次のようにnode server.jsを実行していると思います。

## trap ctrl-c and call ctrl_c()

trap ctrl_c INT

function ctrl_c() {

echo "** Trapped CTRL-C"

exit
}

node server.js

スクリプト名を「runNodeJs.sh」と仮定すると、コマンドは次のようになります。

gnome-terminal -e "bash -c './runNodeJs.sh; bash;'"

おすすめ記事