我试图合并多个linux命令在一行执行部署操作。 例如

cd /my_folder
rm *.jar
svn co path to repo
mvn compile package install

当前回答

如果你只想在前一个命令成功的情况下执行每一个命令,那么使用&&操作符将它们组合起来:

cd /my_folder && rm *.jar && svn co path to repo && mvn compile package install

如果其中一个命令失败,那么它后面的所有其他命令都不会执行。

如果要执行所有命令,而不管前面的命令是否失败,用分号分隔:

cd /my_folder; rm *.jar; svn co path to repo; mvn compile package install

在您的示例中,我认为您希望采用第一种情况,即下一个命令的执行取决于前一个命令的成功。

你也可以把所有的命令放在一个脚本中,然后执行:

#! /bin/sh

cd /my_folder \
&& rm *.jar \
&& svn co path to repo \
&& mvn compile package install

行尾的反斜杠是为了防止shell认为下一行是一个新命令;如果省略反斜杠,则需要将整个命令写在一行中。

与到处使用反斜杠和&&相比,更方便的方法是指示shell在任何命令失败时退出脚本。你可以使用带有-e参数的set内置函数来实现。这样,你就可以用更自然的方式编写脚本:

#! /bin/sh
set -e

cd /my_folder
rm *.jar
svn co path to repo
mvn compile package install

保存到一个文件,例如myscript,并使其可执行:

chmod +x myscript

现在可以像执行机器上的其他程序一样执行该脚本。但是如果您没有将它放在PATH环境变量中列出的目录中(例如/usr/local/bin,或者在某些Linux发行版上~/bin),那么您将需要指定该脚本的路径。如果它在当前目录中,你用:

./myscript

脚本中的命令与第一个示例中的命令工作方式相同;下一个命令只在前一个命令成功时执行。对于所有命令的无条件执行,不要调用set -e:

#! /bin/sh

cd /my_folder
rm *.jar
svn co path to repo
mvn compile package install

其他回答

您可以使用如下代码;

cd /my_folder && \
rm *.jar && \
svn co path to repo && \
mvn compile package install

它的工作原理……

你可以用分号分隔命令:

cd /my_folder;rm *.jar;svn co path to repo;mvn compile package install

你是这个意思吗?

cd /my_folder && rm *.jar && svn co path to repo && mvn compile package install

如果你只想在前一个命令成功的情况下执行每一个命令,那么使用&&操作符将它们组合起来:

cd /my_folder && rm *.jar && svn co path to repo && mvn compile package install

如果其中一个命令失败,那么它后面的所有其他命令都不会执行。

如果要执行所有命令,而不管前面的命令是否失败,用分号分隔:

cd /my_folder; rm *.jar; svn co path to repo; mvn compile package install

在您的示例中,我认为您希望采用第一种情况,即下一个命令的执行取决于前一个命令的成功。

你也可以把所有的命令放在一个脚本中,然后执行:

#! /bin/sh

cd /my_folder \
&& rm *.jar \
&& svn co path to repo \
&& mvn compile package install

行尾的反斜杠是为了防止shell认为下一行是一个新命令;如果省略反斜杠,则需要将整个命令写在一行中。

与到处使用反斜杠和&&相比,更方便的方法是指示shell在任何命令失败时退出脚本。你可以使用带有-e参数的set内置函数来实现。这样,你就可以用更自然的方式编写脚本:

#! /bin/sh
set -e

cd /my_folder
rm *.jar
svn co path to repo
mvn compile package install

保存到一个文件,例如myscript,并使其可执行:

chmod +x myscript

现在可以像执行机器上的其他程序一样执行该脚本。但是如果您没有将它放在PATH环境变量中列出的目录中(例如/usr/local/bin,或者在某些Linux发行版上~/bin),那么您将需要指定该脚本的路径。如果它在当前目录中,你用:

./myscript

脚本中的命令与第一个示例中的命令工作方式相同;下一个命令只在前一个命令成功时执行。对于所有命令的无条件执行,不要调用set -e:

#! /bin/sh

cd /my_folder
rm *.jar
svn co path to repo
mvn compile package install

要一次性运行它们,你可以使用管道键“|”,如下所示:

$ cd /my_folder | rm *.jar | svn co path to repo | mvn compile package install