shell編程 之 test命令

shell編程裏的測試test命令基本能夠分爲3種數據類型,每種都不同。我的更傾向於理解爲條件語句的寫法規則,就是test加條件加判斷語句。shell

1 數值類型

    基本能夠分爲6個判斷:-eq等於,-ne不等於,-gt大於,-lt小於,-ge大於等於,-le小於等於編程

    實例:a=1;b=2bash

               if test $[a] -eq $[b]    #若是a等於b,那就...,-ne,-gt,,等等均可以,另外提一句,要是否是一個算式的話,能夠不加方括號,$a + $b測試

               thenspa

                   echo "a=b"    #縮進4個4個都行,習慣性縮進4個htm

               else接口

                   echo "a!=b"字符串

    ps:算式有兩種寫法:$[a + b]和`expr $a + $b`it

2 字符串

    有4個判斷:= ,!= , -z (長度爲0)和-n(長度不爲0)io

    實例:astr='hehehehe' ; bstr='hahahaha'

            if test $astr = $bstr

            then

                echo "astr = bstr"

             else

                echo "astr !=bstr"

             fi

3 文件測試

    基本上有9個經常使用的參數,基本格式是test + 參數 +文件名,參數分別是:

        -e:exists,存在這樣的一個文件;

        -r:readable,文件是可讀的;

        -w:writable,文件的可寫的;

        -x:文件是可執行的,

        -s:存在且不爲空

        -d:directory,存在目錄

        -f:file,存在且爲普通文件,

        -c:文件存在並且爲字符型的特殊文件    #這個地方怎麼理解呢,能夠和ls命令中最前面的一個字符相關聯:‘-’表示文件。d則表示目錄,l表示鏈接文件,b表示設備文件裏面的可供存儲的接口設備,c表示設備文件裏面的串行端口設置。https://zhidao.baidu.com/question/1820545103813500748.htm  

          實例:

                cd /etc

                if test -f /etc/passwd        #此處能夠結合與或非邏輯語句:形如 if test -e ./notFile -o -e ./bash 表示存在./notFile 或者./bash

                then 

                     echo "yes"

        else 

           echo "no"

        fi

相關文章
相關標籤/搜索