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 ~]# useradd ex2;useradd ex3
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 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章