我想在bash脚本中运行命令mvn clean.但我想把它放在if语句中.如果clean运行不正常,我想用echo语句退出bash脚本.
以下是导致问题的代码:
如果[mvn clean];然后
以下是导致问题的代码:
如果[mvn clean];然后
我尝试将$(mvn clean)放在if语句中,但是有太多的参数说终端.有谁知道这是否可能?谢谢!
这是你想要的:
mvn clean if [ "$?" -ne 0 ]; then echo "Maven Clean Unsuccessful!" exit 1 fi
说明:
> $?是一个special shell variable,它包含最近最近执行的命令的退出代码(无论是否成功终止).
> -ne是测试builtin的选项[.它代表“不平等”.所以我们在这里测试mvn clean的退出代码是否不等于零.
>回应“Maven Clean Unsucccessful!” – 如果是这种情况,那么我们输出一些指示性消息,并使用错误的退出代码退出脚本本身.
当你执行$(mvn clean)时,它会生成一个新的子shell以运行mvn clean,然后简单地将输出到该子shell中的stdout的所有内容从运行mvn clean转储到父shell中使用$(…)的位置.
或者,你可以这样做:
mvn clean || { echo "Maven Clean Unsuccessful"; exit 1; }
这只是做同样事情的简写语法糖.