bashスクリプトでitterminalを終了する方法は?

bashスクリプトでitterminalを終了する方法は?

端末でbashスクリプトを使用してプロキシチェーンでemacsを起動し、端末を終了したいと思います。しかし、コードは

(proxychains emacs &)
exit 0

ターミナルから出ないでください。解決策は何ですか?

答え1

このテストスクリプトを試してください。

t.sh

#!/bin/bash
sleep 5
echo bye bye
sleep 5
pid=$( ps -f | grep "bash" | grep -v grep )
kill -HUP $pid

[OK]、新しいコマンドラインターミナルウィンドウを開きます。このウィンドウで、作成したばかりのbashスクリプトを実行します(上記のように名前を「t.sh」と仮定します)。

bash t.sh

シェルスクリプトが起動したbashプロセスを終了して自殺するため、10秒後にコマンドラインウィンドウが消えることがわかります。

もっと簡単な方法があるようですが、それが何であるか覚えていません。

とにかく、あなたの説明によれば、これがあなたが達成したいものだと思います。

編集する:

私は実際に上記の解決策が好きではありません。私が見ることであなたが本当にしたいのは、おそらくバックグラウンドでbashスクリプトを実行してログアウトできるように "nohup"を使用しているようです。

これにより、プロセスが完了して消えるまで実行を続けます。これは基本的にあなたが要求するものです。

次のことができます。

t1.sh

#!/bin/bash
echo "I am doing my thing then leaving" > /tmp/t1.log
sleep 10
exit 0

次に、コマンドラインで次の操作を行います。

nohup bash t1.sh &

その後、ログアウトしてください。

15秒後に戻ると、出力を含む「/tmp/t1.log」ファイルが必要です。

関連情報