シェルスクリプトを一時停止するには任意のキーを押し、再起動するにはもう一度押します。

シェルスクリプトを一時停止するには任意のキーを押し、再起動するにはもう一度押します。

私はファイルをコピーし、各ファイルの後に進行状況をエコーするAPIをテストするためのシェルスクリプトを書いています。

各コピーの間に2秒の待ち時間があるので、より深いテストのために任意のキーを押してスクリプトを一時停止する機能を追加したいと思いました。その後、任意のキーを押して復元します。

できるだけ少ない行にどのように追加できますか?

ベストアンサー1

スクリプトに何も追加する必要はありません。シェルはこれらの機能を可能にします。

  • 端末でスクリプトを起動します。
  • 実行中に端末の使用をブロックするctrl- z。端末が再び解放され、プロセスが停止したことを示すメッセージが表示されます。 (現在進行中の状態T、中止)
  • 今あなたが望むようにしてください。ctrl- を使用して他のプロセス/スクリプトを開始および停止することもできますz
  • jobs端末に入力するか停止したすべてのジョブを一覧表示します。
  • スクリプトを続行するにはfg(foreground)と入力します。ジョブをフォアグラウンド・プロセス・グループに復元し、ジョブは引き続き実行されます。

例を見てください。

root@host:~$ sleep 10 # sleep for 10 seconds
^Z
[1]+  Stopped                 sleep 10
root@host:~$ jobs # list all stopped jobs
[1]+  Stopped                 sleep 10
root@host:~$ fg # continue the job
sleep 10
root@host:~$ # job has finished

おすすめ記事