寫法一:
 代碼如下:
#!/bin/bash
while read line
do
      echo $line     #這里可根據實際用途變化
done < urfile
寫法二:
 代碼如下:
#!/bin/bash
cat urfile | while read line
do
    echo $line
done
注意:以上代碼中urfile 為被讀取的文件
Shell讀取文本文件
方法一:通過命令獲取所需內容,傳遞給變量
 代碼如下:
var1=$(grep -i "^root" /etc/passwd | cut -d: -f 3 2>/dev/null)   <=讀取/etc/passwd文件中root的id
方法二:通過read命令讀取這個文件
 代碼如下:
while read wOne wTwo wThree
do
    [ -z $wOne ] && continue           #測試此行內容是否為空
    xxx=$wOne                                 #提取內容
done < /var/xxx/one.txt
echo "$xxx"                                    #變量獲取了文件中的內容
以下方法無法提取內容;但可以輸出。問題似乎出在bash對管道的處理方法上
(bash可能生成了一個子shell處理管道輸出)。
 代碼如下:
cat /var/xxx/one.txt | while read wOne wTwo wThree
do
    [ -z $wOne ] && continue           #測試此行內容是否為空
    xxx=$wOne                                 #提取內容
done
echo "$xxx"                                    #這里變量內容沒有改變
新聞熱點
疑難解答