当前位置: 首页 > 面试题库 >

一行执行多个Linux命令

赵雅懿
2023-03-14
问题内容

我试图在一行中合并多个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

(在行的末尾使用反斜杠可以防止外壳程序认为下一行是新命令;如果省略了反斜杠,则需要将整个命令写在一行中。)

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

chmod +x myscript

现在,您可以像计算机上的其他程序一样执行该脚本。但是,如果您不将其放置在PATH环境变量中列出的目录中(例如/usr/local/bin,或在某些Linux发行版中~/bin),则需要指定该脚本的路径。如果它在当前目录中,则使用以下命令执行它:

./myscript

脚本中的命令的工作方式与第一个示例中的命令相同。下一条命令仅在上一条成功的情况下执行。为了无条件地执行所有命令,只需在每个命令的行中列出每个命令:

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


 类似资料:
  • 我正在从事一个项目,其中我打算制作一个JavaGUI应用程序,该应用程序连接到ssh服务器并在服务器上执行远程命令。我愿意使用JSch库。我的目标是制作按钮和文本字段,让用户能够轻松发送命令和获得回复。我的意思是,用户不会打开xShell并提示“grep”hi“/usr/file.txt”,而是从列表中选择路径,在文本字段中输入“hi”,然后按下grep按钮。 问题是,我找不到一个在一个会话中执行

  • 问题内容: 如何在远程Linux机器上执行命令/脚本?说我想从框a的框b开始服务tomcat。 问题答案: 我想这是最好的安全方式,例如: 必须根据您的特定需求(例如,仅绑定到ipv4)部署OPTIONS的地方,并且您的远程命令可能正在启动您的tomcat守护程序。 注意 : 如果不想在每次运行ssh时都提示您,也请查看ssh- agent,以及系统允许的情况。关键是…了解ssh密钥交换过程。请仔

  • 我正在寻找一种解决方案,来解决需要按顺序一个接一个地执行的命令集。同样,只有在前一个命令完成执行后,才能执行一个命令。 我试着用“;”执行命令对于每个命令,但所有命令都在一次尝试中执行。所以,它不起作用。在同一个shell/exec中运行每个命令的可能方法是什么。

  • 我想做这样的事情,我可以在以下代码中运行多个命令: 我如何执行多个命令? 谢了。

  • 我希望在中运行多个命令,如下所示: 那么如何保存上一个命令的状态并将其用于下一个命令??