bash中多命令的执行关系

前端之家收集整理的这篇文章主要介绍了bash中多命令的执行关系前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

bash的多命令执行的逻辑关系;
1.命令替换
COMMAND1 $(COMMAND2)

[root@localhost~]#cp-a/etc/tmp/etc-$(date+'%F-%T')
[root@localhost~]#ls/tmp
etc-2017-11-17-17:13:35

2.管道
COMMAND1 | COMMAND2 |COMMAND3..

[root@localhost~]#ll/tmp|wc-l
13

3.顺序执行结构
COMMAND1 ; COMMAND2 ; COMMAND3

[root@localhost~]#useraddex2;useraddex3

4.选择执行结构;
如果。。。那么。。。
要么。。。要么。。。

逻辑运算结构:
与:逻辑乘法,1--真,0--假 && 双目操作符
1 && 0 = 0
0 && 1 = 0
0 && 0 = 0
1 && 1 = 1
"与"运算的短路元算法则:只要第一个操作数为false,则其逻辑运算结果一定为false;

或:逻辑加法,1--真,0--假 || 双目操作符
1 || 1 = 1
1 || 0 = 1
0 || 1 = 1
0 || 0 = 0
"或"运算的短路运算法则:只要第一个操作数为true,则其逻辑运算结果一定为true;

非:逻辑取反,1--真,0--假,!,弹幕操作符
!0 = 1
!1 = 0

命令的执行状态返回值:就是echo $?
SUCCESS: 0--TRUE(true)
FAILURE: 1-255--FALSE(false)

COMMAND1 && COMMAND2
表示:
1.如果COMMAND1能够成功执行,那么将会执行COMMAND2;
2.如果COMMAND1执行失败,那么COMMAND2将不会执行;

COMMAND1 || COMMAND2
表示:
1.只有COMMAND1执行失败,COMMAND2才会被执行;
2.如果COMMAND1执行成功,那么COMMAND2将不会被执行;

!COMMAND1 && COMMAND2 相当于 COMMAND1 || COMMAND2
!COMMAND1 || COMMAND2 相当于 COMMAND1 && COMMAND2

德・摩根定律
!(COMMAND1 && COMMAND2) || COMMAND3 1和2都执行成功,才会执行3
!(COMMAND1 || COMMAND2) && COMMAND3 1和2都执行失败,才会执行3

!(A && B) = !A || !B
!(A || B) = !A && !B

三种逻辑运算的优先级:
! > && > ||

示例:
如果用户user4存在并且其家目录也存在,那么就执行userdel -r user4;

id user4 && ls -d /home/user4 && userdel -r user4

猜你在找的Bash相关文章