道常無名

          玄之又玄,眾眇之門

            BlogJava :: 首頁 :: 聯(lián)系 :: 聚合  :: 管理
            16 Posts :: 0 Stories :: 1 Comments :: 0 Trackbacks
          shell編程的標(biāo)準(zhǔn)條件語句
          是這樣的:
          if test "$1" = pogge
          then
             echo 
          "Do you Like Sacred?"
          fi
           很簡單,但是你了解其中的機(jī)制嗎?

          1.在shell中每運(yùn)行完一條命令,都會返回一個exit status值(有0和非0兩種)
          一般而言0表示運(yùn)行成功,非0表示未成功運(yùn)行
          這個值存放在$?這個變量中;
          你可以運(yùn)行下面的命令試試:
          ls
          echo $?
          ls 
          0000
          echo $?
          echo $?
          2.if是一個命令
          當(dāng)它后面的一條命令執(zhí)行完畢后
          它會查看$?的值(也就是剛執(zhí)行完的命令的exit status值);
          如果是0,則執(zhí)行then語句段
          否則跳過

          3.test是一個命令
          多數(shù)情況下它接收三個參數(shù),上面的"$user", =, pogge分別是它的三個參數(shù),
          這正是"user", =, pogge 之間必須要用空格分開的原因
          test會把這三個參數(shù)組成表達(dá)式,然后如果表達(dá)式返回值是真,
          那么test命令的exit status為0
          否則test命令的exit status為非0
          你可以運(yùn)行下面的命令試試:

          test pogge = pogge
          echo $?
          test pogge 
          = dynos
          echo $?
          綜上,你完全可以寫出并理解下面語句的含義:

          if who | grep "pogge" > /dev/null
          then
            echo 
          "pogge logged"
          fi
          posted on 2011-09-14 12:53 Linuxmouse 閱讀(323) 評論(0)  編輯  收藏 所屬分類: UNIX/Linux
          主站蜘蛛池模板: 新营市| 河北省| 台湾省| 驻马店市| 玉溪市| 泰安市| 鄂托克前旗| 娱乐| 安远县| 乳源| 义乌市| 泰来县| 宜昌市| 钦州市| 额敏县| 尉氏县| 五大连池市| 手游| 泉州市| 阜宁县| 迁西县| 浦县| 增城市| 六安市| 三河市| 保山市| 洛阳市| 陇西县| 安多县| 和龙市| 朝阳区| 福建省| 江津市| 香港 | 洪泽县| 平和县| 江川县| 阿坝| 浮梁县| 晋宁县| 长岭县|