2つのコマンドを実行し、1つのコマンドが完了した後に両方のコマンドを終了するように構成できるユーティリティ

2つのコマンドを実行し、1つのコマンドが完了した後に両方のコマンドを終了するように構成できるユーティリティ

serve ./publicサーバーを実行し、いくつかのテストを実行し、テストが./run-chrome-tests.sh完了したら終了できる汎用ユーティリティ(Ubuntu、おそらくOSX)はありますかserve ./public

これはbashで行うことができますが、可能であればコードを書くよりも構成を生成する方が良いでしょう。

ベストアンサー1

私が知る限り、そのようなユーティリティはありませんが、シェルスクリプトで簡単に実装されます。

説明するタスクを実行する短いシェルスクリプト:

#!/bin/sh

serve ./public & serve_pid=$!
./run-chrome-tests.sh

kill "$serve_pid"

sleep 3テストスクリプトを実行する前にバックグラウンドが正しく初期化されるようにするには、バックグラウンドの起動後に呼び出し(または同様)を挿入できます。serve

$!最後に開始されたバックグラウンドジョブ(プロセス)serveのPIDになります。run-chrome-tests.sh上記のスクリプトは、スクリプトが完了するとserveシグナル送信を使用してプロセスを明示的に終了しますkill

おすすめ記事