Linux 具有多个命令的Shell脚本文件

Linux 具有多个命令的Shell脚本文件,linux,bash,shell,maven,batch-file,Linux,Bash,Shell,Maven,Batch File,我想在windows和linux中使用多个命令生成shell脚本文件 例如,使用以下命令run.sh和run.bat run.bat或run.sh mvn clean mvn install mvn exec:java 当我运行我的run.bat文件时,它只执行第一个命令mvn clean,但不执行其他命令 如何使用多个命令生成shell脚本文件,以便在我执行它时,它执行其中的所有命令。 谢谢。mvn是bat文件,但不是二进制文件 试一试 call mvn clean call mvn ins

我想在windows和linux中使用多个命令生成shell脚本文件

例如,使用以下命令run.sh和run.bat run.bat
run.sh

mvn clean
mvn install
mvn exec:java
当我运行我的
run.bat
文件时,它只执行第一个命令
mvn clean
,但不执行其他命令

如何使用多个命令生成shell脚本文件,以便在我执行它时,它执行其中的所有命令。


谢谢。

mvn是bat文件,但不是二进制文件

试一试

call mvn clean
call mvn install
call mvn exec:java

检查您的输出(我知道maven很冗长,没有帮助),您肯定在.bat文件的某个地方出现了错误。它应该按顺序执行这3个命令。正如Aaron所建议的,第一个命令可能会引发某种错误,但是由于您的脚本不是错误检查,所以这不重要。这里省略了一些内容,因为如果在Windows cmd提示符下运行.bat文件,它将运行所有命令。但是,顺便说一句,这不是你需要的情况;您可以在单个
mvn
命令中列出多个目标line@MarkAdelsberger我在考虑一个.bat语法错误。现在我想了一下,如果缺少
\r
换行符会使
cmd
将整个
.bat
理解为一行,我不会感到惊讶,所以我也会检查它,除非你还在运行XP,您可以选择powershell的
.ps
脚本作为
.bat
脚本的替代方案;它们的语法更接近
.sh
文件(尽管它们仍然是两个截然不同的环境)。我觉得它们在业界还没有被大量使用,但如果你需要某种保证,RedHat开始在JBoss EAP 7.0版本中包含
.ps
脚本(尽管它们仍然包含等效的
.bat
)@PrakashPandey你查过Npcmaka的答案了吗?这很可能是你问题的解决办法。如果是,我仍然建议您考虑使用<代码> PuthSu壳而不是<代码> CMD,我认为问题不会发生。我完全忘记了这一点。默认情况下,.bat脚本不会返回到其他.bat脚本。神圣80年代的蝙蝠侠。捕捉得很好。@PrakashPandey-对于
.sh
文件,您不应该有相同的问题是的,它也起作用了。执行
chmod 777
有效。Big Thanks如果这是一个Windoze批处理脚本,那么为什么这篇文章会贴上bash和linux的标签?哎呀!你真的想写一个同时作为bash程序和Windows批处理程序有效的程序吗???这很奇怪。它只在最简单的情况下起作用。即使是您已经接受的npocmaka的解决方案,如果您定义一个名为call的单独程序,也只能作为bash脚本使用。一旦添加了一些额外的逻辑(条件、状态代码求值等),它将成为一场噩梦。我建议坚持使用单一语言,Linux和Windows都可以使用。如果你想运行bash,你也可以在Windows上运行。