shell命令间的逻辑关系

无逻辑关系

; 间隔的各命令按顺序依次执行

1
COMMAND1;COMMAND2;COMMAND3...

逻辑关系

  • 逻辑与: &&
    • 第一个条件为假时,第二条件不用再判断,最终结果已确定;
    • 第一个条件为真时,第二条件必须得判断
    • && 前面的命令执行成功则执行 && 后面的命令
  • 逻辑或:||
    • 第一个条件为真时,第二条件不用再判断,最终结果已确定;
    • 第一个条件为假时,第二条件必须得判断
    • || 前面的命令执行不成功则执行 || 后面的命令
  • ! 对条件的结果取反

从优先级上讲,; 优先级最低,||&& 具有相同的优先级。在同等优先级上,按从左到右的结合原则执行命令。使用 ( ) 可以组合命令行中的命令,改变执行顺序

1
2
3
4
5
6
7
8
9
! id user6 && useradd user6
id user6 || useradd user6
# 如果用户user6不存在,就添加用户user6
id user1 && echo "user1 exists." || useradd user1
# 如果用户存在,就显示用户已存在;否则,就添加此用户
! id user1 && useradd user1 || echo "user1 exists."
# 如果用户不存在,就添加;否则,显示其已经存在
! id user1 && useradd user1 && echo "user1" | passwd --stdin user1 || echo "user1 exists."
#如果用户不存在,添加并且给密码;否则,显示其已经存在
有钱任性,请我吃包辣条
0%