在Bash Shell腳本中,可以使用多種方法來對文件進行操作,包括讀取文件或寫入文件。
1. 寫入文件
bash shell可以利用"重定向",將一些打印到終端的消息寫入到文件中,方便在需要時可以對此文件文件查看。
1.1 僅將輸出寫入文件
要將Bash命令的輸出寫入文件,可以使用右尖括號符號(>)或雙右尖符號(>>),兩個運算符都將stdout(標準輸出)重定向到文件,區別在于:
- 右尖括號號(>)用于將bash命令的輸出寫入磁盤文件。如果沒有指定名稱的文件,則它將創建一個具有相同名稱的新文件。如果該文件名稱已經存在,則會覆蓋原文件內容。
- 它用于將bash命令的輸出寫入文件,并將輸出附加到文件中。如果文件不存在,它將使用指定的名稱創建一個新文件。
當第一次寫入文件并且不希望以前的數據內容保留在文件中時,則應該使用右尖括號(>)。也就是說,如果文件中已經存在內容,它會清空原有數據內容,然后寫入新數據。使用雙右尖括號(>>)則是直接將數據附加到文件中,寫入后的內容是原文件中的內容加上新寫入的內容。
例子如下:
# The script is:
o_file=o_file.log
echo "new line1" > $o_file
# The result is:
the current directory will contain o_file.log file
1.2 打印輸出并寫入文件
可以通過使用tee命令將接收到的輸入打印到屏幕上,同時將輸出保存到文件中。
# The script is:
o_file=o_file.log
echo "new line1" | tee $o_file
# The result is:
1. terminal ouptut: new line1
2. And the current directory will contain o_file.log file
如果除了打印到屏幕,也要實現追加到文件末尾的功能的話,那么可以用tee -a的方式,例子如下:
# The script is:
o_file=o_file.log
echo "new line1" | tee -a $o_file
echo "new line2" | tee -a $o_file
# The result is:
1.
new line1
new line2
2.
And the current directory will contain o_file.log file
對比上述用法,除了tee會多將信息打印到終端上,其實>和tee功能類似,>>和tee -a功能類似。
2. 讀取文件
讀取文件的最簡單方式就通過cat或$來進行。格式如下:
# o_file.log content:
# new line1
# new line2
# The format is:
data0=`cat o_file.log`
echo $data0
data1=$(< o_file.log)
echo $data1
# The result is:
new line1 new line2
new line1 new line2
如果想要逐行讀取文件的內容,那么可以采用以下方法:
# The script is:
while read line1;
do
echo $line1;
done < o_file.log
# The result is:
new line1
new line2
while循環將到達文件的每一行,并將該行的內容存儲在$line1變量中。
-
存儲器
+關注
關注
38文章
7484瀏覽量
163765 -
Shell
+關注
關注
1文章
365瀏覽量
23357 -
bash終端
+關注
關注
0文章
7瀏覽量
1992
發布評論請先 登錄
相關推薦
評論