Bash讀取檔

在Bash Shell腳本中,可以使用多種方法來讀取檔。下麵給出了一些重要的方法(假設讀取的檔案名為:read_file.txt)。

假設檔:read_file.txt的內容如下:

Welcome
Visit
Our
Site
-
xuhuhu.com

方法1. 使用 cat fileName 讀取檔

可以使用以下語法將檔內容列印到終端。語法:

value=`cat file_name`

示例代碼:

#!/bin/bash

value=`cat read_file.txt`
echo "$value"

執行上面示例代碼,得到以下結果:

方法2. 使用 $(fileName) 讀取檔

以下是使用$讀取檔內容的語法:

value=$(file_name)

示例代碼:

#!/bin/bash

value=$(<read_file.txt)
echo "$value"

執行上面示例代碼,得到以下結果:

maxsu@zaixian:~/bashcode$ cat /dev/null > readfile.sh
maxsu@zaixian:~/bashcode$ vi readfile.sh
maxsu@zaixian:~/bashcode$ ./readfile.sh
Welcome
Visist
Our
Site
-
xuhuhu.com

方法3. 從命令行讀取檔內容

如果想從命令行逐行讀取檔而不使用cat命令,則可以運行以下命令來執行任務:

命令

while read line; do Command; done < input.file

示例代碼:

while read line; do echo $line; done < read_file.txt

執行上面示例代碼,得到以下結果:

在這裏,while迴圈將到達檔的每一行,並將該行的內容存儲在$line變數中,變數將在以後列印。

方法4. 使用腳本讀取檔內容

要使用腳本讀取檔內容,需要創建一個bash檔並添加以下代碼:

Bash腳本

#!/bin/bash

file='read_file.txt'

i=1
while read line; do

#Reading each line
echo "Line No. $i : $line"
i=$((i+1))
done < $file

在這裏,檔案名存儲在$file變數中,而$i變數用於保留行號的值。

執行上面示例代碼,得到以下結果:
使用腳本讀取檔內容

方法5. 從命令行傳遞檔案名並讀取檔

創建一個bash並添加以下腳本,該腳本將從命令行傳遞檔案名並逐行讀取檔。第一個參數值由變數$1讀取,該變數將包含要讀取的檔案名。如果檔在指定位置可用,則while迴圈將逐行讀取檔並列印檔內容。

Bash腳本

#!/bin/bash

file=$1
while read line; do

#Readind each line in sequence
echo $line
done <read_file.txt

執行上面示例代碼,得到以下結果:

maxsu@zaixian:~/bashcode$ cat /dev/null > readfile.sh
maxsu@zaixian:~/bashcode$ vi readfile.sh
maxsu@zaixian:~/bashcode$ ./readfile.sh
Welcome
Visit
Our
Site
-
xuhuhu.com

在此,檔案名用作參數值。輸出是檔:read_file.txt中的內容,單詞之間沒有多餘的空格。

方法6. 通過省略反斜杠轉義來讀取檔

如果想通過省略反斜杠轉義來逐行讀取檔的每一行,那麼需要在while迴圈中使用-r選項和read命令,參考以下代碼:

#!/bin/bash

while read -r line; do

#Reading each line by omitting backslash escape
echo $line
done < read_file.txt

執行上面示例代碼,得到以下結果:

maxsu@zaixian:~/bashcode$ cat /dev/null > readfile.sh
maxsu@zaixian:~/bashcode$ vi readfile.sh
maxsu@zaixian:~/bashcode$ ./readfile.sh
Welcome
Visit
Our
Site
-
xuhuhu.com

可能出於多種編程目的需要讀取檔。例如,逐行搜索匹配檔中的任何特定內容。因此,對於任何編程語言而言,這都是一項非常常見而又十分有用的任務。


上一篇: Bash數組 下一篇: Bash寫入檔