在一行中运行两个或多个命令可以节省大量时间,使你更有效率的使用Linux。
在 Linux 中,可以通过三种方式在一行中运行多个命令:
; | 命令 1 ; 命令 2 | 先运行命令 1,然后运行命令 2 |
---|
&& | 命令 1 && 命令 2 | 仅当命令 1 成功结束时才运行命令 2 | || | 命令 1 ||命令 2 | 仅当命令 1 失败时才运行命令 2 |
1、使用 ; 在一行中运行多个 Linux 命令
其中最简单的是分号 (; )。您只需组合要使用的几个命令;以下列方式:
cmd1; cmd2; cmd3
在这里,cmd1 将首先运行。不管 cmd1 是成功运行还是出错,cmd2 都会在它之后运行。当 cmd2 命令完成时,cmd3 将运行。
mkdir new_dir; cd new_dir; pwd
在上面的命令中,首先使用 mkdir 命令创建一个名为 new_dir 的新目录。然后使用 cd 命令切换到这个新创建的目录。最后,使用 pwd 命令打印当前位置。
2、使用 && 运行多个 Linux 命令
有时你希望确保在 Linux 命令链中,下一个命令仅在上一个命令成功结束时运行。这就是逻辑 AND 运算符 && 出现的地方:
cmd1 && cmd2 && cmd3
如果你使用基于 Ubuntu 或 Debian 的发行版,你一定遇到过这个使用 && 概念的命令:
sudo apt update && sudo apt upgrade
这里的第一个命令(sudo apt update )首先刷新软件包数据库缓存。如果没有错误,它将升级所有具有较新版本的可用的软件包。
以前面的例子为例。如果 new_dir 已经存在, mkdir 命令将返回错误。命令; 和 && 的差异可以在下面的屏幕截图中看到:
3、使用 || 一次运行多个 Linux 命令
可以使用逻辑 OR 运算符 (|| ) 来运行一系列命令,但下一个命令仅在上一个命令以 error结束时运行。这与在 && 中看到的相反。
cmd1 || cmd2 || cmd3
如果 cmd1 失败,则 cmd2 运行。如果 cmd2 运行成功,cmd3 将不会运行。
在上面的屏幕截图中, mkdir new_dir 命令失败,因为 new_dir 已经存在。由于此命令失败,下一个命令 cd new_dir 执行成功。现在这个命令已经成功运行,下一个命令 pwd 将不会运行。
三个命令对比:
4、结合 && 和 || 操作
可以组合操作符来运行两个或多个 Linux 命令。
如果将三个命令与 && 和 || 结合使用,它将表现为C/C+ + 中的三元运算符 (条件 ? expression_true ; expression_false )。
cmd1 && cmd2 || cmd3
例如,可以检查 bash 中是否存在文件,并相应地打印消息。
[ -f file.txt ] && echo "File exists" || echo "File doesn't exist"
在创建file.txt 文件前后运行上面的命令看看区别:
同样还可以使用 ; 、&& 和 || 在 bash 脚本中运行多个命令。
|