• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            colorful

            zc qq:1337220912

             

            shell中if做比較

            shell中if做比較

            比較兩個(gè)字符串是否相等的辦法是:

                if [ "$test"x = "test"x ]; then

                這里的關(guān)鍵有幾點(diǎn):

                1 使用單個(gè)等號(hào)

                2 注意到等號(hào)兩邊各有一個(gè)空格:這是unix shell的要求

                3 注意到"$test"x最后的x,這是特意安排的,因?yàn)楫?dāng)$test為空的時(shí)候,上面的表達(dá)式就變成了x = testx,顯然是不相等的。而如果沒有這個(gè)x,表達(dá)式就會(huì)報(bào)錯(cuò):[: =: unary operator expected

                

                二元比較操作符,比較變量或者比較數(shù)字.注意數(shù)字與字符串的區(qū)別.

                整數(shù)比較

                -eq 等于,如:if [ "$a" -eq "$b" ]

                -ne 不等于,如:if [ "$a" -ne "$b" ]

                -gt 大于,如:if [ "$a" -gt "$b" ]

                -ge 大于等于,如:if [ "$a" -ge "$b" ]

                -lt 小于,如:if [ "$a" -lt "$b" ]

                -le 小于等于,如:if [ "$a" -le "$b" ]

                 大于(需要雙括號(hào)),如:(("$a" > "$b"))

                >= 大于等于(需要雙括號(hào)),如:(("$a" >= "$b"))

                小數(shù)據(jù)比較可使用AWK

                字符串比較

                = 等于,如:if [ "$a" = "$b" ]

                == 等于,如:if [ "$a" == "$b" ],與=等價(jià)

                 注意:==的功能在[[]]和[]中的行為是不同的,如下:

                 1 [[ $a == z* ]] # 如果$a以"z"開頭(模式匹配)那么將為true

                 2 [[ $a == "z*" ]] # 如果$a等于z*(字符匹配),那么結(jié)果為true

                 3

                 4 [ $a == z* ] # File globbing 和word splitting將會(huì)發(fā)生

                 5 [ "$a" == "z*" ] # 如果$a等于z*(字符匹配),那么結(jié)果為true

                 一點(diǎn)解釋,關(guān)于File globbing是一種關(guān)于文件的速記法,比如"*.c"就是,再如~也是.

                 但是file globbing并不是嚴(yán)格的正則表達(dá)式,雖然絕大多數(shù)情況下結(jié)構(gòu)比較像.

                != 不等于,如:if [ "$a" != "$b" ]

                 這個(gè)操作符將在[[]]結(jié)構(gòu)中使用模式匹配.

                 大于,在ASCII字母順序下.如:

                 if [[ "$a" > "$b" ]]

                 if [ "$a" \> "$b" ]

                 注意:在[]結(jié)構(gòu)中">"需要被轉(zhuǎn)義.

                 具體參考Example 26-11來查看這個(gè)操作符應(yīng)用的例子.

                -z 字符串為"null".就是長度為0.

                -n 字符串不為"null"

                 注意:

                 使用-n在[]結(jié)構(gòu)中測(cè)試必須要用""把變量引起來.使用一個(gè)未被""的字符串來使用! -z

                 或者就是未用""引用的字符串本身,放到[]結(jié)構(gòu)中。雖然一般情況下可

                 以工作,但這是不安全的.習(xí)慣于使用""來測(cè)試字符串是一種好習(xí)慣.

            if判斷式
            if [ 條件判斷一 ] && (||) [ 條件判斷二 ]; then
            elif [ 條件判斷三 ] && (||) [ 條件判斷四 ]; then
            else
               執(zhí)行第三段內(nèi)容程式
            fi

            例如:

             

            root@Bizbox:~# a=0 root@Bizbox:~# b=0 root@Bizbox:~# c=5          root@Bizbox:~# if [ $a = 0 -a $b = 0 ]&&[ $c != 0 ]; then > echo success > fi success

            if 使用的表達(dá)式

            Primary 意義
            [ -a 文件 ] 如果文件存在為真。
            [ -b 文件 ] 如果 文件 存在 而且 是一個(gè) 塊-特殊 文件為真。
            [ -c 文件 ] 為真 如果 文件 存在 而且 是一個(gè) 字-特殊 文件。

             

            [ -d 文件 ] 為真 如果 文件 存在 而且 是一個(gè) 目錄。
            [ -e 文件 ] 為真 如果 文件 存在。
            [ -f 文件 ] 為真 如果 文件 存在 而且 是一個(gè) 普通 文件。
            [ -g 文件 ] 為真 如果 文件 存在 而且 已經(jīng)設(shè)置了他的 SGID 位。
            [ -h 文件 ] 為真 如果 文件 存在 而且 是一個(gè) 符號(hào)連接。
            [ -k 文件 ] 為真 如果 文件 存在 而且 他的粘住位已經(jīng)設(shè)置。
            [ -p 文件 ] 為真 如果 文件 存在 而且 是一個(gè) 已經(jīng)命名的管道 (F 如果O)。
            [ -r 文件 ] 為真 如果 文件 存在 而且 是可讀的。
            [ -s 文件 ] 為真 如果 文件 存在 而且 比零字節(jié)大。
            [ -t FD ] 為真 如果 文件 文件描述符已經(jīng)打開 而且 指向一個(gè)終端。
            [ -u 文件 ] 為真 如果 文件 存在 而且 已經(jīng)設(shè)置了他的 SUID (set user ID)位。
            [ -w 文件 ] 為真 如果 文件 為真 如果 文件 存在 而且 是可寫的。
            [ -x 文件 ] 為真 如果 文件 存在 而且 是可執(zhí)行的。
            [ -O 文件 ] 為真 如果 文件 存在 而且 屬于有效用戶ID。
            [ -G 文件 ] 為真 如果 文件 存在 而且 屬于有效組ID。
            [ -L 文件 ] 為真 如果 文件 存在 而且 是一個(gè) 符號(hào)連接。
            [ -N 文件 ] 為真 如果 文件 存在 而且 has been mod 如果ied since it was last read。
            [ -S 文件 ] 為真 如果 文件 存在 而且 是一個(gè) socket。
            [ 文件1 -nt 文件2 ] 為真 如果 文件1 has been changed more recently than 文件2, or 如果
            文件1 存在 而且
            文件2 does not。
            [ 文件1 -ot 文件2 ] 為真 如果 文件1 比 文件2 舊, 或者 文件2 存在而且 文件1 不存在。
            [ 文件1 -ef 文件2 ] 為真 如果 文件1 而且 文件2 refer to the same device 而且 inode
            numbers。
            [ -o 選項(xiàng)名 ] 為真 如果 shell 選項(xiàng) "選項(xiàng)名" 開啟。
            [ -z STRING ] 為真 如果 "STRING"的長度是零。
            [ -n STRING ] 或者 [ STRING ] 為真 "STRING"的長度是非零值。
            [ STRING1 == STRING2 ] 如果兩個(gè)字符串相等為真。 "=" may be used instead of "==" for
            strict POSIX compliance。
            [ STRING1 != STRING2 ] 為真 如果 兩兩個(gè)字符串不相等。
            [ STRING1 < STRING2 ] 為真 如果 "STRING1" sorts before "STRING2" lexicographically in the
            current locale。
            [ STRING1 > STRING2 ] 為真 如果 "STRING1" sorts after "STRING2" lexicographically in the
            current locale。
            [ ARG1 OP ARG2 ]
            "OP" 是 -eq, -ne, -lt, -le, -gt or -ge 其中一個(gè)。 These arithmetic binary operators
            return 為真 如果 "ARG1" is equal to, not equal to, less than, less than or equal to, greater
            than, or greater than or equal to "ARG2", respectively。 "ARG1" 而且 "ARG2" are
            integers。
            表達(dá)式可以借以下操作符組合起來, listed in decreasing order of precedence:
            操作符效果
            [ ! EXPR ] 如果EXPR 為假則為真。
            [ ( EXPR ) ] 返回EXPR 的值。 這樣可以用來忽略正常的操作符優(yōu)先級(jí)。

            posted on 2013-07-06 16:28 多彩人生 閱讀(301) 評(píng)論(0)  編輯 收藏 引用 所屬分類: linux program

            導(dǎo)航

            統(tǒng)計(jì)

            常用鏈接

            留言簿(3)

            隨筆分類

            隨筆檔案

            搜索

            最新評(píng)論

            閱讀排行榜

            評(píng)論排行榜

            欧美国产成人久久精品| 国产精品九九久久免费视频| 久久精品国产亚洲AV高清热| 三级三级久久三级久久| 日韩美女18网站久久精品| 久久99国产精一区二区三区| 国产精品久久久久jk制服| 久久午夜无码鲁丝片| 亚洲va久久久噜噜噜久久狠狠| 日韩久久无码免费毛片软件| 亚洲国产精品综合久久网络| 亚洲国产天堂久久久久久| 综合久久给合久久狠狠狠97色| 日韩亚洲国产综合久久久| 日韩欧美亚洲综合久久| 一本久久知道综合久久| 久久精品国产清自在天天线 | 久久精品国产只有精品66| 国产成人精品久久亚洲高清不卡 | 精品人妻伦九区久久AAA片69| 亚洲国产视频久久| 久久久久高潮毛片免费全部播放| 久久精品国产网红主播| 精品一区二区久久久久久久网站| Xx性欧美肥妇精品久久久久久| 久久99精品久久久久久水蜜桃| 国产综合成人久久大片91| 亚洲精品无码久久久久AV麻豆| 久久精品卫校国产小美女| 无码人妻精品一区二区三区久久久| 国内精品人妻无码久久久影院 | 久久久精品视频免费观看| 日本WV一本一道久久香蕉| 99re久久精品国产首页2020| 精品熟女少妇aⅴ免费久久| 亚洲日本va中文字幕久久| 亚洲狠狠久久综合一区77777| 亚洲国产天堂久久综合| 久久96国产精品久久久| 久久乐国产精品亚洲综合| www性久久久com|