命令行中的&&和||

Shell

Bash shell 在执行某个命令的时候,会返回一个返回值,该返回值保存在 shell 变量 $? 中。当 $? == 0 时,表示执行成功;当 $? != 1 时,表示执行失败。有时候,我们需要下一条命令依赖前一条命令执行成功与否的状态。

如:只有在成功地执行一条命令之后再执行另一条命令,或者只有在前一条命令执行失败后,再执行下一条命令等。Bash shell 提供了 && 和 || 来实现命令执行控制的功能,shell 将根据 && 或 || 前面命令的返回值来控制其后面命令的执行。

&&

只有在前一条命令执行成功后,才会执行后面的命令

||

只有前一条命令是否执行失败,才会执行后面的命令

举个例子:

xinlin@ubuntuserver:~/acme-tiny$ cat tt
cat: tt: No such file or directory

xinlin@ubuntuserver:~/acme-tiny$ echo $?
1

xinlin@ubuntuserver:~/acme-tiny$ cat tt && echo 'abcde'
cat: tt: No such file or directory

xinlin@ubuntuserver:~/acme-tiny$ cat tt || echo 'abcde'
cat: tt: No such file or directory
abcde

cat tt时会执行失败的命令,因为没有tt这个文件,
使用&&连接echo命令,echo命令就不会执行;
使用||连接echo命令,cat tt执行失败后echo才会执行。

如果想让多条命令无论如何都执行呢?

使用逗号 ;

xinlin@ubuntuserver:~/acme-tiny$ cat ttt ; echo 'abcde'
cat: ttt: No such file or directory
abcde

总结一下:

&表示任务在后台执行

&&表示前一条命令执行成功时,才执行后一条命令

|表示管道,上一条命令的输出,作为下一条命令参数

||表示上一条命令执行失败后,才执行下一条命令

;表示不管前面的命令如何,后面的都会执行

你可能感兴趣的:(后端其它)