我正在尝试创建一个 bash 脚本来部署应用程序。在部署之前,必须使用 Maven 构建应用程序。问题是,一旦 Maven 构建完成,下一个命令就永远不会被调用。看起来 Maven 发出了一些信号来终止任何进一步的执行。
例如,在以下脚本中,Hello world
永远不会写入标准输出。
#!/bin/sh
exec mvn -DskipTests -Darguments=-DskipTests clean install
echo "Hello world"
有没有办法绕过这个限制?
答案1
exec
只需从调用 Maven 的命令行中删除 即可。
该exec
命令将 shell 替换为正在执行的命令,因此 shell 不再存在,并且不会执行该行之后的任何内容(好吧,除非启动该命令失败。)
如果您想要 shell,请不要用于exec
生成外部命令。