引入
- 我们可以使用;、&&、||三种符号连接命令的执行
- ?变量:echo ${?}可以查看命令执行的返回值,?是系统变量
- &&、||这两种符号依据?变量的返回值判断命令是否继续执行,跟C语言等逻辑运算符短路原理是相同的。但是;不会
一、;
1.功能
- 连接多个命令执行
2.格式
- cmd1;cmd2;cmd3....
- 不论cmd(命令)的对错,后面的cmd都会执行
二、&&
1.功能
- 连接多个命令执行
2.格式
- cmd1 && cmd2
- 若cmd1正确(?变量返回0),cmd2执行
- 若cmd1错误(?变量返回非0),cmd2不执行
三、||
1.功能
- 连接多个命令执行
2.格式
- cmd1 || cmd2
- 若cmd1正确(?变量返回0),cmd2不执行
- 若cmd1错误(?变量返回非0),cmd2执行
四、案例
- 在/tmp/abc目录下建立文件text,但是不知道/tmp/abc目录是否存在,可以使用下列命令(逻辑运算符短路原理)
ls /tmp/abc || mkdir /tmp/abc && /tmp/abc/text