Linux學習日記--基礎命令(8)--算數運算,條件測試

bash中的算術運算
        +, -, *, /, %, **

        實現算術運算:
            (1) let var=算術表達式
            (2) var=$[算術表達式]
            (3) var=$((算術表達式))
            (4) var=$(expr arg1 arg2 arg3 ...)

            乘法符號有些場景中需要轉義;

            bash有內建的隨機數生成器:$RANDOM

        增強型賦值:

            +=, -=, *=, /=, %=,++,--


條件測試:
        判斷某需求是否滿足,需要由測試機制來實現;

        Note: 專用的測試表達式需要由測試命令輔助完成測試過程;

        測試命令:
            test EXPRESSION
            [ EXPRESSION ]
            ` EXPRESSION `

            Note: EXPRESSION前後必須有空白字符;

        bash的測試類型:
         數值測試:

                -gt: 是否大於;
                -ge: 是否大於等於;
                -eq: 是否等於;
                -ne: 是否不等於;
                -lt: 是否小於;
                -le: 是否小於等於;
         字符串測試:
                ==:是否等於;
                >: 是否大於;
                <: 是否小於;
                !=: 是否不等於;
                =~: 左側字符串是否能夠被右側的PATTERN所匹配;
                    Note: 此表達式一般用於[[  ]]中;
                -z "STRING":測試字符串是否爲空,空則爲真,不空則爲假;
                -n "STRING":測試字符串是否不空,不空則爲真,空則爲假;

                Note:用於字符串比較時的用到的操作數都應該使用引號;

      文件測試:
            存在性測試
                -a FILE
                -e FILE: 文件存在性測試,存在爲真,否則爲假;
            存在性及類別測試
                -b FILE:是否存在且爲塊設備文件;
                -c FILE:是否存在且爲字符設備文件;
                -d FILE:是否存在且爲目錄文件;
                -f FILE:是否存在且爲普通文件;
                -h FILE 或 -L FILE:存在且爲符號鏈接文件;
                -p FILE:是否存在且爲命名管道文件;
                -S FILE:是否存在且爲套接字文件;
            文件權限測試:
                -r FILE:是否存在且可讀
                -w FILE: 是否存在且可寫
                -x FILE: 是否存在且可執行
            文件特殊權限測試:
                -g FILE:是否存在且擁有sgid權限;
                -u FILE:是否存在且擁有suid權限;
                -k FILE:是否存在且擁有sticky權限;
            文件大小測試
                -s FILE: 是否存且非空;
            文件是否打開:
                -t fd: fd表示文件描述符是否已經打開且與某終端相關


                -N FILE:文件自動上一次被讀取之後是否被修改過;
                -O FILE:當前有效用戶是否爲文件屬主;
                -G FILE:當前有效用戶是否爲文件屬組;

            雙目測試:
                FILE1 -ef FILE2: FILE1與FILE2是否指向同一個設備上的相同inode

                FILE1 -nt FILE2: FILE1是否新於FILE2;
                FILE1 -ot FILE2: FILE1是否舊於FILE2;

    bash自定義退出狀態碼
        exit [n]:自定義退出狀態碼;
            注意:腳本中一旦遇到exit命令,腳本會立即終止;終止退出狀態取決於exit命令後面的數字;

        注意:如果未給腳本指定退出狀態碼,整個腳本的退出狀態碼取決於腳本中執行的最後一條命令的狀態碼;


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章