如何在调用某些命令后禁止停止执行 bash 脚本?

And*_*ndy 1 bash shell-script maven

我正在尝试创建一个 bash 脚本来部署应用程序。在部署之前,必须使用 maven 构建应用程序。问题是,一旦 maven 构建完成,就永远不会调用下一个命令。似乎 maven 发出一些信号来终止任何进一步的执行。

例如,在以下脚本中,Hello world永远不会写入标准输出。

#!/bin/sh

exec mvn -DskipTests -Darguments=-DskipTests clean install

echo "Hello world"
Run Code Online (Sandbox Code Playgroud)

有没有办法绕过这个限制?

fil*_*den 5

只需exec从调用 Maven 的命令行中删除。

exec命令将 shell 替换为正在执行的命令,因此 shell 不再存在并且不会在该行之后执行任何操作(好吧,除非启动该命令失败。)

如果您想要外壳,请不要exec用于生成外部命令。