![[closed]の場合、スクリプト全体を終了するにはどうすればよいですか?](https://rvso.com/image/1024440/%5Bclosed%5D%E3%81%AE%E5%A0%B4%E5%90%88%E3%80%81%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%97%E3%83%88%E5%85%A8%E4%BD%93%E3%82%92%E7%B5%82%E4%BA%86%E3%81%99%E3%82%8B%E3%81%AB%E3%81%AF%E3%81%A9%E3%81%86%E3%81%99%E3%82%8C%E3%81%B0%E3%82%88%E3%81%84%E3%81%A7%E3%81%99%E3%81%8B%EF%BC%9F.png)
bash test.sh または ./test.sh を使用して実行されたスクリプトを停止するにはどうすればよいですか?
# if the script was run with bash test.sh or ./test.sh, stop
echo "From here the script only works if it has been run with source test.sh or . test.sh"
答え1
バックグラウンドで送信されていない場合は、Ctrl+C を押します。バックグラウンドで実行されている場合は、
ps aux | grep test.shを実行し
、PID 列からプロセス ID を取得して
、kill を使用して停止します。たとえば、PID が 3946 の場合、
kill 3946を実行してから、 ps aux | grep test.sh
を再度実行します 。grep の結果しか得られない場合は、プロセスが停止しています。それ以外の場合は、kill -9 3946を使用して強制的に実行する必要があります 。これは少し強引ですが、最後の手段として使用してください。kill -l を 実行する と、kill コマンドでプロセスに送信できるシグナルのリストが表示されます。