Linux shell 讀取一行

來源:互聯網
上載者:User

標籤:style   http   color   使用   os   io   strong   檔案   

 

Linux shell 讀取一行

方法一

通過指定IFS--Internal Field SeparatorIFS預設情況下是<space><tab><newline>,可以下指令碼中設定IFS

DEMO 1

$cat t1.txt abcfd   $cat test_IFS.sh #! /bin/shIFS="c"for LINE in `cat t1.txt`do     echo $LINEdone$sh test_IFS.sh abfd

這裡需要讀取一行只需將IFS="\n"設定為分行符號即可。

DEMO2

$cat t1.txt a bc d

不設定IFS

$ cat test_IFS.sh #! /bin/sh#IFS="\n"for LINE in `cat t1.txt`do    echo $LINEdone$sh test_IFS.sh abcd

設定IFS="\n"

$ cat test_IFS.sh #! /bin/shIFS="\n"for LINE in `cat t1.txt`do    echo $LINEdone$sh test_IFS.sh a bc d

這樣就可以達到讀取一行的目的了

方法2

利用read命令,從標準輸入讀取一行,根據IFS進行切分並相應的變數賦值,這裡為了我們故意將IFS設定為&,來進行示範

DEMO3

$cat test_read.sh #! /bin/shIFS="&"printf "Enter your name, rank, serial num:"read name rank sernoprintf "name=%s\nrank=%s\nserial num=%s" $name $rank $serno $sh test_read.sh Enter your name, rank, serial num:zk&1&123name=zkrank=1serial num=123

所以我們知道read每次是讀一行,因此使用read命令就好了

DEMO4

$cat readline_1.sh #! /bin/shcat t1.txt | while read LINEdo    echo $LINEdone$sh readline_1.sh a bc d

這裡是通過檔案重新導向給read處理

方法3

read去讀取檔案重新導向

DEMO5

$cat readline_2.sh #! /bin/shwhile read LINEdo    echo $LINEdone < t1.txt$sh readline_2.sh a bc d

推薦使用方法3

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.