そのため、このアイデアはしばらく私の頭の中にあり、コマンドを開始してから進行中のコマンドが完了した後に別のコマンドを開始したいことがよくあります。問題は、次のコマンドを開始するために進行中のコマンドを監視する必要があることです。音楽プレーヤーのようにコマンドを順番に実行する「次の」リストがあるかもしれません。存在しないようですが、確認したいです。誰もが興味があれば、私はこのようなものを非常によく開発することができます。
答え1
必要なコマンドチェーンをシェルスクリプトに書き込むか、セミコロンで区切られた単一行で実行できます。これは順番に実行され、前のコマンドが終了した後に次のコマンドが開始されます。
command1; command2; command3
次回実行するコマンドが事前にわからない場合は、実行中のプロセスを一時停止してCTRL+Z
バックグラウンドで処理するようにしてbg
から、次のコマンドを開始できますwait %jobid; command2
。ジョブIDはコマンドで確認できますjobs
。ジョブIDは[]括弧内にあり、括弧の後のプラス記号は最近の前景で実行されているプロセスを示します。
答え2
Hiradurが言ったのと似ていますが、最初のコマンドが出力を生成する場合はより適切です(バックグラウンドプロセスがコンテンツを印刷すると入力が迷惑になる可能性があります)。
- 通常どおり最初のコマンドを開始します。
- 次回実行する方法を知っている場合は、CtrlZPause Jobを押してください。
- 実行は、
fg; next_command
現在のコマンドをフォアグラウンドで継続してnext_command
実行します。