[转]linux多命令的顺序执行
程序员文章站
2023-11-09 17:57:16
cd /tmp/abc/ab mv a.txt a.txt.bak mv a.txt.new a.txt chmod 777 a.txt 等价于 cd /tmp/abc/ab && mv a.txt a.txt.bak && mv a.txt.new a.txt && chmod 777 a.txt ......
cd /tmp/abc/ab
mv a.txt a.txt.bak
mv a.txt.new a.txt
chmod 777 a.txt
等价于
cd /tmp/abc/ab && mv a.txt a.txt.bak && mv a.txt.new a.txt && chmod 777 a.txt
详细说明如下:
当我们需要一次执行多个命令的时候,命令之间需要用连接符连接,不同的连接符有不同的效果。
(1) ; 分号,没有任何逻辑关系的连接符。当多个命令用分号连接时,各命令之间的执行成功与否彼此没有任何影响,都会一条一条执行下去。
(2) || 逻辑或,当用此连接符连接多个命令时,前面的命令执行成功,则后面的命令不会执行。前面的命令执行失败,后面的命令才会执行。
(3) && 逻辑与,当用此连接符连接多个命令时,前面的命令执行成功,才会执行后面的命令,前面的命令执行失败,后面的命令不会执行,与 || 正好相反。
(4) | 管道符,当用此连接符连接多个命令时,前面命令执行的正确输出,会交给后面的命令继续处理。若前面的命令执行失败,则会报错,若后面的命令无法处理前面命令的输出,也会报错。