日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

國內(nèi)最全I(xiàn)T社區(qū)平臺 聯(lián)系我們 | 收藏本站
阿里云優(yōu)惠2
您當(dāng)前位置:首頁 > 服務(wù)器 > shell學(xué)習(xí)筆記之六(測試和判斷)

shell學(xué)習(xí)筆記之六(測試和判斷)

來源:程序員人生   發(fā)布時間:2015-05-15 08:31:04 閱讀次數(shù):3232次
測試和判斷
    測試
        利用命令履行后的$?來判斷命令是不是履行正常。$?==0 ? 正常:毛病
        測試結(jié)構(gòu):
            1、test  expression
            2、[ expression ]    #注意表達(dá)式兩側(cè)的空格
            方式2增加了代碼的可讀性,且更容易與if,case,while這些條件判斷的關(guān)鍵字聯(lián)用。
        文件測試:
            1、test file_operator FILE
            2、[ file_operator FILE ]
            例:
                test -e /var/log/message    
                echo $?                #文件存在返回0,不存在返回非0值
                [ -e /var/log/message ]
                echo $?
             文件比較符
                -b  文件存在且是塊文件
                -c  文件存在且是字符裝備
                -e  文件或目錄是不是存在
                -d  文件存在且是目錄
                -f  文件存在且是普通文件
                -x  文件存在且是可履行文件
                -w  文件存在且為可寫文件
                -r  文件存在且為可讀文件
                -l  文件存在且為連接文件
                -p  ...管道文件
                -S  ...socket文件
                -s  大小不為0
                FILE1 nt FILE2  FILE1比FILE2新返回真
                FILE1 ot FILE2  FILE1比FILE2舊返回真
                例:測試文件的讀,寫,履行屬性
                #!/bin/bash
                read -p "input a filename which you want to test:" filename
                if [ ! -e "$filename" ];then
                    echo "The file doesn't exist."
                    exit 1
                fi
                if [ -w "$filename" ];then
                    echo "The file is writeable."
                fi
                if [ -r "$filename" ];then
                    echo "The file is readable."
                fi
                if [ -x "$filename" ];then
                    echo "The file is executable"
                fi
                注意:
                    if [ expression ] 中if和[]之間要有空格
        字符串測試:
            字符串比較(字典序)主要有大于,小于,等于,不等于,空,不空      
                         >     <     =     !=    -z   -n  
            例:
                str=""
                test -z "$str"
                echo $?        #0

                test -n "$str"
                echo $?        #1

                test -n $str   
                echo $?        #0,最好加上雙引號("")

                str="hello"
                [ -z "$str" ] 
                echo $?        #1

                [ -n "$str" ]
                echo $?        #0

                str1="123"
                str2="234"
                [ "$str1" = "$str2"]  #test $str1 = $str2,注意空格,否則1直返回0
                echo $?        #1

                [ "$str1" != "$str2" ]
                echo $?

                [ "$str1" > "$str2" ]
                echo $?

                [ "$str1" < "$str2" ]
                echo $?

                [[ "$str1" > "$str2" ]]   #不使用轉(zhuǎn)義字符
                echo $?
        整數(shù)比較
            -eq =
            -lt <
            -gt >
            -le <=
            -ge >=
            -ne !=
            1、test num1 num_operator num2
            2、[ num1 num_operator num2 ]
            例:
                num1=10
                num2=10
                num3=9
                num4=11
                #測試相等
                [ $num1 -eq $num2]
                echo $?
                test $num3 -eq $num2
                echo $?
            注意:1定要注意空格,否則得到的有可能毛病
        邏輯測試符和邏輯運(yùn)算符
            邏輯與,邏輯或,邏輯非
              -a     -o     !
              非:!expression
              與:expression1 -a expression2
              或:expression1 -o expression2
              &&     ||     !
               [ -e /var/log/message ] && [ -e /var/log/message01 ]
              =[ -e /var/log/message -a -e /var/log/message01 ]

               [ -e /var/log/message ] || [ -e /var/log/message01 ]
              =[ -e /var/log/message -o -e /var/log/message01 ] 
              注意兩種不同的寫法
    判斷
        if語句
            if expression;then
                command1
                command2
                ...
            fi
            例:判斷學(xué)生成績
                #!/bin/bash
                echo -n "input a score of a student:"   #-n的意思是不換行
                read score
                if [ $score -lt 60 ];then
                        echo "D" 
                fi
                if [ $score -lt 80 -a $score -ge 60 ];then
                    echo "C"
                fi
                if [ $score -lt 90 -a $score -ge 80 ];then
                    echo "B"
                fi
                if [ $score -le 100 -a $score -ge 90 ];then
                    echo "A"
                fi
                if [ $score -gt 100 ];then
                    echo "the number is invalid"
                fi
                學(xué)太高級語言以后,其實就是學(xué)習(xí)shell的語法和編程特點,高級語言重視于大型項目,而shell重視于工作的便利,讓工作自動化
        if/else語句
            if expression ;then
                command
            else
                command
            fi
            例:判斷1個文件是不是存在
                #!/bin/bash
                echo -n "input a filename:"
                read filename
                if [ -e $filename ];then
                    echo "file exists."
                else
                    echo "file doesn't exists."
                fi
        if/elif/else
            多重的if/else語句
            例:修改學(xué)生成績腳本
                #!/bin/bash
                echo -n "input a score of a student:"
                read score
                if [ $score -lt 60 ];then
                    echo "D" 
                elif [ $score -lt 80 ];then
                    echo "C"
                elif [ $score -lt 90 ];then
                    echo "B"
                elif [ $score -le 100 ];then
                    echo "A"
                elif [ $score -gt 100 ];then
                    echo "the number is invalid"
                fi
        case
            相當(dāng)于switch...case
            結(jié)構(gòu):
                case VAR in
                    var1) command ;;
                    var2) command ;;
                    var3) command ;;
                    ...
                    *)    command ;;
            注意:case的var1、var2、var3等這些值只能是常量或正則表達(dá)式,還能是正則啊,不錯
            例:檢測當(dāng)前系統(tǒng)的類型
                #!/bin/bash
                type=`uname -s` #print the kernel name
                case $type in
                    L*)
                        echo "Linux" 
                        ;;
                    SunOS)
                        echo "SunOS"
                        ;;
                    Darwin)
                        echo "Darwin"
                        ;;
                    *)
                        echo "other"
                        ;;
                esac
                檢測用戶輸入中是不是含有大寫字母,小寫字母或數(shù)字
                    #!/bin/bash
                echo -n "Input a string: "
                read str
                case $str in
                    *[[:lower:]]*)
                        echo "The string contains lower letters."
                        ;;
                    *[[:upper:]]*)
                        echo "The string contains upper letters."
                        ;;
                    *[[:digit:]]*)
                        echo "The string contains digit."
                        ;;
                    *)
                        echo "other"
                        ;;
                esac
生活不易,碼農(nóng)辛苦
如果您覺得本網(wǎng)站對您的學(xué)習(xí)有所幫助,可以手機(jī)掃描二維碼進(jìn)行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關(guān)閉
程序員人生
主站蜘蛛池模板: 男人天堂网在线 | pacopacomama在线 | 亚洲天堂成人 | 日韩一区二区三 | 成人福利在线看 | 九一毛片| 国产综合亚洲精品一区二 | 中文亚洲字幕 | 久久久免费 | 精品一区二区三区视频 | 中文字幕日韩欧美一区二区三区 | 国产美女黄色 | 国产精品123区 | 精品天堂 | 国产精品永久 | 久久久久久久91 | 视频一区国产精品 | 中文字幕亚洲视频 | 欧美videosdesexo | 一区二区三区 在线 | 日日干夜夜欢 | 亚洲精品一二三区 | 国产91久久精品一区二区 | 久久久在线免费观看 | 国产精品久久久久久久午夜 | 日韩国产精 | 国产精品久久久久久吹潮 | 日本免费中文字幕 | 日韩欧美国产一区二区三区 | 欧美一区久久 | www.成人在线 | 精品久久久久久久 | 黄色av影院| 亚洲一级免费视频 | 成人av免费 | 4色网| 久久6| av亚洲在线 | 午夜激情视频在线 | 黄色网址大全在线观看 | 91精品国产一区二区三区香蕉 |