欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

[转]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) | 管道符,当用此连接符连接多个命令时,前面命令执行的正确输出,会交给后面的命令继续处理。若前面的命令执行失败,则会报错,若后面的命令无法处理前面命令的输出,也会报错。