例えば、
#!/bin/bash
while :
do
sl
done
このbashスクリプトを終了するには?
ベストアンサー1
Ctrl-Z
一時停止スクリプトを押すkill %%
プロセスIDではなく、現在のシェルで最後に一時停止したバックグラウンドジョブにシグナル(デフォルトではSIGTERM)を送信したいと%%
Bashの組み込み機能に通知します。kill
番号または名前でアクションを指定することもできます。たとえば、^Zでジョブを一時停止すると、bashは次のようにジョブ番号を通知します。[n]+ Stopped
ここで、n
ジョブ番号は角かっこ内にあります。
ジョブ制御とジョブ終了の詳細については、bashまたはbashのマニュアルページで、、、および(help jobs
すべて大文字)を検索してください。help fg
help bg
help kill
JOB CONTROL
jobspec
例えば
$./killme.sh ./killme.sh: 行 4: sl: コマンドが見つかりません ./killme.sh: 行 4: sl: コマンドが見つかりません ./killme.sh: 行 4: sl: コマンドが見つかりません ./killme.sh: 行 4: sl: コマンドが見つかりません ./killme.sh: 行 4: sl: コマンドが見つかりません ... ... ... ./killme.sh: 行 4: sl: コマンドが見つかりません ^Z [1]+停止しました。/killme.sh $kill%% $ [1]+ ./killme.sh 終了
この例では、ジョブ番号は1なので、次kill %1
のように機能します。kill %%
(注:インストールしていないsl
ので、出力は単に「コマンドが見つかりません」です。あなたの場合、slが生成するすべての出力を取得します。問題ありません。中断しても同じように^Z
機能kill %%
します。)