行遍歷命令列的輸出結果

2021-08-22 07:12:06 字數 646 閱讀 7544

對於命令列輸出的結果,如果要遍歷,一般都是用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遍歷的時候就會按行遍歷,最後執行完畢後再把系統分隔符給還原。

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

對於命令列輸出的結果,如果要遍歷,一般都是用for迴圈遍歷,具體語法為 for line in ls do dosomething done 此時對於ls這類語句的輸出結果,在遍歷的時候會呼叫系統預設的分隔符 ifs 對於ls這類命令結果確實是在一行,只需要按照空格進行分割的話,如上語法就ok了。但...

Python實現獲取命令列輸出結果的方法

python獲取命令列輸出結果,並對結果進行過濾找到自己需要的!這裡以獲取本機mac位址和ip位址為例!coding gb2312 import os,re execute command,and return the output def execcmd cmd r os.popen cmd te...

linux 執行命令列,獲取結果

char strcmd 256 snprintf strcmd,sizeof strcmd 1,ls l s m logpath file pf popen strcmd,r if null pf char str 1024 int count fread str,1,sizeof str 1,pf...