jasmine214--love

          只有當你的內心總是充滿快樂、美好的愿望和寧靜時,你才能擁有強壯的體魄和明朗、快樂或者寧靜的面容。
          posts - 731, comments - 60, trackbacks - 0, articles - 0

          導航

          公告

          這里是我記錄學習與成長的地方,文章大多摘自網絡,如有不妥,作者可以跟我聯系,我會盡快刪除。
          <2013年3月>
          242526272812
          3456789
          10111213141516
          17181920212223
          24252627282930
          31123456

          常用鏈接

          留言簿(10)

          隨筆分類(920)

          隨筆檔案(724)

          收藏夾(15)

          Ajax

          JS

          VC++

          WLAN

          版本管理

          網管軟件

          項目管理

          高手成長

          最新隨筆

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          shell里的IFS內置環境變量

          Posted on 2013-03-12 18:19 幻海藍夢 閱讀(2828) 評論(0)  編輯  收藏 所屬分類: Shell
          IFS 的全稱是 Interal Field Separator ,即“內部區域分隔符”,它也是一個內置環境變量,存儲著默認的文本分隔符,默認下這分隔符是空格符(space character),制表符(tab) 以及新行(newline) 。先看下面一個簡單示例:
          1
          2
          3
          4
          5
          6
          7
          8
          #!/bin/sh
           
          msg="welcome to www groad net"
           
          for item in $msg
          do
              echo "Item: $item"
          done

          運行輸出:
          # sh temp.sh
          Item: welcome
          Item: to
          Item: www
          Item: groad
          Item: net

          上 面用一個 for 循環遍歷了變量 msg 里的所有項。 msg 變量里存儲的各個單詞都是用空格分開的,而 for 能依次取出這些單詞,正是依靠 IFS 這個變量作為分隔符。如果將 msg 變量改為 CSV (comma separaed values 逗號分隔值)格式,那么按照默認的 IFS 值就無法解析出各個單詞,如:
          sh temp.sh
          Item: welcome,to,www,groad,net

          這樣,整個字符串就當成一個 item 被獲取了。

          此時如果仍然希望逐個獲得各個單詞,那么需要修改 IFS 變量的值,如:
          1
          2
          3
          4
          5
          6
          7
          8
          9
          10
          11
          12
          13
          14
          #!/bin/sh
           
          data="welcome,to,www,groad,net"
           
          IFSBAK=$IFS     #備份原來的值
           
          IFS=,
           
          for item in $data
          do
              echo Item: $item
          done
           
          IFS=$IFSBAK     #還原

          運行輸出:
          # sh tmp.sh
          Item: welcome
          Item: to
          Item: www
          Item: groad
          Item: net
          主站蜘蛛池模板: 邻水| 常山县| 聊城市| 会理县| 万盛区| 北辰区| 宜阳县| 筠连县| 太原市| 交口县| 镇赉县| 崇义县| 三门峡市| 甘泉县| 道真| 出国| 阿坝| 新邵县| 龙南县| 固安县| 奎屯市| 保山市| 溆浦县| 东乡| 盐边县| 虹口区| 旺苍县| 肃南| 砀山县| 当雄县| 新巴尔虎左旗| 虎林市| 正阳县| 桑日县| 翼城县| 宿松县| 望城县| 中山市| 天峨县| 什邡市| 莱阳市|