如何在Linux终端中一次运行多个命令
在一行中运行两个或多个命令可以节省大量时间,并帮助在Linux中变得更加简单和高效。
在Linux中,可以通过三种方式在一行中运行多个命令:
; | 命令1 ; 命令2 | 首先运行命令1,然后运行命令2 |
&& | 命令1 && 命令2 | 仅在命令1成功结束时才运行命令2 |
// | 命令1 // 命令2 | 仅当命令1失败时才运行命令2 |
注:上表由于md写法缘故,用 //
代替 ||
下面详细展示如何在Linux中使用多个命令。
使用 ; 运行多个Linux命令
其中最简单的就是分号 ;
,只需组合要使用的几个命令即可:
cmd1; cmd2; cmd3
在这里,cmd1将首先运行。无论cmd1运行成功还是出错,cmd2都将在其之后运行。当cmd2命令完成时,cmd3将运行。
下面是例子:
1 | rootnew_dir; cd new_dir; pwd :mkdir |
在上面的命令中,首先使用mkdir命令创建一个名为new_dir的新目录。然后,使用cd命令切换到该新创建的目录。最后,使用pwd命令打印当前位置。
分号 ;
后的空格是可选的,但它使命令易于阅读。
使用 && 运行多个Linux命令
有时要确保Linux命令的下一条命令仅在上一条命令成功结束时才运行。这里就要用到逻辑AND运算符&&
了:
cmd1 && cmd2 && cmd3
如果使用基于Ubuntu或Debian的发行版,有时会用到以下命令:
sudo apt update && sudo apt upgrade
在这里,第一个命令刷新软件包数据库缓存。如果没有错误,它将升级所有具有较新版本的软件包。
以前面的示例为例。因为new_dir已经存在,则mkdir命令将返回错误。并详细输出错误log:
1 | rootnew_dir && cd new_dir && pwd :mkdir |
使用 || 运行多个Linux命令
可以使用逻辑OR运算符 ||
来运行多个命令,但是仅当前一个命令错误结束时才运行下一个命令,这与在&&
中看到的相反。
cmd1 || cmd2 || cmd3
如果cmd1失败,则cmd2运行。如果cmd2成功运行,则cmd3将不会运行。
Linux命令示例:
1 | root@pc:mkdir new_dir || cd new_dir || pwd |
上面可以看出,mkdir new_dir命令失败,因为new_dir已经存在。由于此命令失败,因此下一个命令cd new_dir将成功执行。由于此命令已成功运行,下一个命令pwd将不再运行。
结合 && 和 || 使用
可以组合运算符来运行两个或多个Linux命令。
如果将三个命令与 && 和 || 组合在一起,它将在C / C++ 中充当三元运算符。
cmd1 && cmd2 || cmd3
例如,可以检查bash中是否存在文件,并相应地打印消息。
[ -f file.txt ] && echo "File exists" || echo "File doesn't exist"
在创建file.txt文件之前和之后运行上述命令,以查看区别:
1 | root@pc:[ -f file.txt ] && echo "File exists" || echo "File doesn't exist" |
Linux终端中一次运行多个命令是节省时间的许多Linux命令行技巧之一。尽管简单,但这是任何Linux终端用户都应该知道的基本概念。
参考: