特定のコマンドを呼び出した後にbashスクリプトの実行が停止するのを防ぐ方法は?

特定のコマンドを呼び出した後にbashスクリプトの実行が停止するのを防ぐ方法は?

アプリケーションをデプロイするためにbashスクリプトを生成しようとしています。デプロイする前に、Mavenを使用してアプリケーションをビルドする必要があります。問題は、Mavenのビルドが完了すると、次のコマンドが呼び出されないことです。 Mavenが追加の実行を終了するためにシグナルを送信しているようです。

たとえば、次のスクリプトではHello world標準出力は作成されません。

#!/bin/sh

exec mvn -DskipTests -Darguments=-DskipTests clean install

echo "Hello world"

この制限を回避する方法はありますか?

答え1

execMavenを呼び出すコマンドラインから削除するだけです。

このexecコマンドはシェルを実行中のコマンドに置き換えるため、シェルは存在しなくなり、その行以降には何も実行されません(コマンドの開始が失敗しない限り)。

シェルが必要な場合は、exec外部コマンドを生成するために使用しないでください。

関連情報