我想在bash脚本中运行命令mvn clean。但我想将其放在if语句中。如果清理无法正常运行,我希望使用echo语句退出bash脚本。
这是导致问题的代码:
如果[mvn clean];然后

我尝试将$(mvn clean)放在if语句中,但是终端说的参数太多。有人知道这是否可能吗?谢谢!

最佳答案

这就是您想要的:

mvn clean
if [ "$?" -ne 0 ]; then
    echo "Maven Clean Unsuccessful!"
    exit 1
fi

说明:
  • $?special shell variable,其中包含最近执行的最近命令的退出代码(是否成功终止)。
  • -netest的选项builtin [。它代表“不平等”。因此,这里我们正在测试mvn clean的退出代码是否不等于零。
  • echo "Maven Clean Unsucccessful!"-如果是这种情况,那么我们输出一些指示性消息,并使用错误的退出代码退出脚本本身。

  • 当您执行$(mvn clean)时,它会生成一个新的子 shell 程序来运行mvn clean,然后将运行子程序stdout中输出到mvn clean的所有内容从运行的$(...)转储到父 shell 程序中使用ojit_code的位置。



    或者,,您可以执行以下操作:
    mvn clean || { echo "Maven Clean Unsuccessful"; exit 1; }
    

    这只是做同一件事的简写语法糖。

    关于bash - bash脚本中的mvn if语句,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13651723/

    10-09 06:53
    查看更多