IFS簡單說明,

來源:互聯網
上載者:User

IFS簡單說明,

bash下的很多命令都會分割單詞,絕大多數時候預設是採用空格作為分隔字元,有些時候遇到定位字元、分行符號也會進行分隔。最典型的是"for i in a b c",它會分割變數列表"a b c"使其成為三個變數。這種分隔字元是由IFS變數指定的。

IFS是bash內部欄位分隔符號的環境變數。

[root@xuexi ~]# set | grep IFSIFS=$' \t\n'

預設的IFS在碰到空格、定位字元\t和分行符\n就會自動分隔進入下一步。但是對空格處理有點不一樣,對行首和行尾兩邊的空格不處理,並且多個連續的空格預設當作一個空格。

有些時候在編寫指令碼或執行迴圈的時候,修改IFS可以起很大作用。如果要修改IFS,最好記得先備份系統IFS,再需要的地方再還原IFS。

例如:

[root@xuexi ~]# data="name,sex,rollno,location"[root@xuexi ~]# oldIFS=$IFS  # 備份IFS到變數oldIFS[root@xuexi ~]# IFS=","   # 將IFS設定為逗號,便於做data的分隔字元[root@xuexi ~]# for item in $data;do echo Item:$item;doneItem:nameItem:sexItem:rollnoItem:location
[root@xuexi ~]# IFS=$oldIFS  # 最後將IFS還原

可以看到,上面的樣本將預設分隔符號設定為了逗號後,不用處理data變數就可以輕鬆劃分欄位了。

大多數時候,有需要劃分的地方都會採用IFS的第一個字元作為分隔字元,但並不總是如此,具體有哪些命令會使用IFS劃分,以及使用IFS的哪部分劃分,可以尋找man bash。

 

回到系列文章大綱:http://www.cnblogs.com/f-ck-need-u/p/7048359.html

轉載請註明出處:http://www.cnblogs.com/f-ck-need-u/p/7402137.html註:若您覺得這篇文章還不錯請點擊下右下角的推薦,有了您的支援才能激發作者更大的寫作熱情,非常感謝!

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.