道常無名

          玄之又玄,眾眇之門

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

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

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

          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
          主站蜘蛛池模板: 高邮市| 沙湾县| 湖北省| 深水埗区| 南阳市| 锡林浩特市| 惠来县| 吴桥县| 沙河市| 盐城市| 进贤县| 闸北区| 莫力| 彭阳县| 楚雄市| 灵川县| 惠安县| 综艺| 洛隆县| 凌云县| 卢湾区| 焉耆| 台中县| 桂平市| 嘉荫县| 保山市| 邢台县| 浮梁县| 凤翔县| 抚宁县| 定南县| 南雄市| 石泉县| 明星| 津南区| 新乐市| 黄骅市| 浑源县| 海伦市| 迁西县| 五家渠市|