
























如果你每天使用 Linux,就会发现 Shell 命令是你处理文件、安装和配置系统软件时最强大的工具。如果能在一条命令中执行多个命令,那么将节省大量时间,变得更加高效。
在本篇文章中,我们将看到如何在一条命令中通过高效组合使多个命令一起执行。
| 分隔符 | 命令示例 | 执行逻辑 |
|---|---|---|
| ; | cmd1 ; cmd2 | 不管前面的命令是否执行成功,都会执行后面的命令。 |
| && | cmd1 && cmd2 | 只有在前面的命令执行成功后,才会接着执行后面的命令。 |
| || | cmd1 || cmd2 | 只有在前面的命令执行失败后,才会接着执行后面的命令。 |
下面我将更详细地解释上面三种分隔符,如何在 Linux 中一次性执行多个命令。
分号(;)是一个命令的结束符,可以连续执行一个或多个命令,而不管前面的命令是否执行成功。而且,每一个命令都会作为当前 shell 的子进程来被执行,也就是所当前一个命令执行之后,无论成功还是失败,才会执行下一个命令。
例如,在下图中,我运行了三个命令,whoami 表示当前登录的用户,cat atpx.txt 表示输出 atpx.txt 文本中的内容,date -R 表示输出系统当前时区。
在某些情况下,如果需要确保仅在第一条命令执行成功后才执行第二条命令。&&相当于逻辑与,比如下图中,我第一次运行的命令中,因为第一个命令中的文件名 atpx.tx 最后少打了一个 “t”,所以会执行失败,同时第二个命令也不再执行,而第二次运行了正确的命令,此时便相当于上面的 “;” 分隔符的效果了。
我强烈建议在大多数情况下使用 && 而不是 ; 分隔符,这可以确保发生意料不到的错误,例如执行下面的命令:
cd /directory ; rm -rf *
如果第一个目录名输入错误或者不存在,也会执行 rm -rf * 命令,可能会破坏你的系统。
按照顺序,在第一个命令执行成功时,第二个命令就不会执行;或者在第一个命令返回错误时,将执行第二个命令。例如,你需要创建一个名为 atpx.com 文件,但不知道这个文件存不存在,就可以使用 || 分隔符,先验证 atpx.com 文件是否存在,如果不存在则创建它。
touch atpx.com || touch atpx.com
在上面的示例中,atpx.com 文件不存在,因此执行第二个命令创建了这个文件。
以上就是在 Linux 中一次执行多个命令的 3 种方式了,大家可以根据自己的需要进行组合使用。
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。