Shell 行遍歷命令行的輸出結果


  對於命令行輸出的結果,如果要遍歷,一般都是用for循環遍歷,具體語法為:

for line in `ls` do
dosomething
done

  此時對於ls這類語句的輸出結果,在遍歷的時候會調用系統默認的分隔符(IFS=” “),對於ls這類命令結果確實是在一行,只需要按照空格進行分割的話,如上語法就OK了。
但是往往,有時候是需要對命令行輸出結果按行遍歷的,如:

for line in `ls -lrt` do
dosomething
done

  按照ls -lrt遍歷文件的屬性,此時直接這樣就會發現分隔符還是用空格就不行了,這個時候,應該用如下方式:

oldifs="$IFS"
IFS=$'\n'

for line in `ls -lrt` do
dosomething
done

IFS="$oldifs"

  如上意思是先把老的分隔符給保留到中間變量中,然后替換默認分隔符為換行符,再執行遍歷,此時for遍歷的時候就會按行遍歷,最后執行完畢后再把系統分隔符給還原。
---------------------
作者:KLordy
來源:CSDN
原文:https://blog.csdn.net/klordy_123/article/details/81430721
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM