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

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

当前回答

通知你, 如果在If -else中需要在一行中同时执行多条命令,可以使用圆括号将命令组合在一起。详情请参阅本页。

您可以根据需要将分号(;)替换为&&或||。请注意,括号创建了一个子shell来执行命令。

如果存在一个名为file_name的文件,以下命令将执行cmd1、cmd2和cmd3命令;否则为cmd4、cmd5、cmd6。

[ -f file_name ] && (cmd1; cmd2; cmd3) || (cmd4; cmd5; cmd6)

其他回答

如果需要同时执行所有命令,可以用“;”分隔,不管上一条命令是否执行。

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

你是这个意思吗?

通知你, 如果在If -else中需要在一行中同时执行多条命令,可以使用圆括号将命令组合在一起。详情请参阅本页。

您可以根据需要将分号(;)替换为&&或||。请注意,括号创建了一个子shell来执行命令。

如果存在一个名为file_name的文件,以下命令将执行cmd1、cmd2和cmd3命令;否则为cmd4、cmd5、cmd6。

[ -f file_name ] && (cmd1; cmd2; cmd3) || (cmd4; cmd5; cmd6)

您可以使用如下代码;

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

它的工作原理……

只有一个&号有什么用? 今天早上,我在XFCE面板(Manjaro+XFCE)中创建了一个启动器,以同时启动2个密码管理器:

sh -c "keepassx && password-gorilla"
or
sh -c "keepassx; password-gorilla"

但它不像我想的那样工作。也就是说,第一个应用程序启动,但第二个应用程序只有在前一个应用程序关闭时才启动

然而,我发现(只有一个&号):

sh -c "keepassx & password-gorilla"

现在它就像我想要的那样…