[转]linux多命令的顺序执行

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

你可能感兴趣的:([转]linux多命令的顺序执行)