/dev/null的用途__shell
來源:互聯網
上載者:User
/dev/null ,從名稱上可以很顯然看出是一個空檔案(寫入到/dev/null時全部丟失,讀取/dev/null時自己返回EOF),那麼你會很疑惑,他到底有什麼用途呢,請看下文聽我講解,可能你在很多指令碼裡看過 /dev/null,具體總結下幾種常見用途.
一、禁止標準輸出.
eg:
cat $filename >/dev/null
# 檔案內容丟失,不會輸出到標準輸出,.
二、禁止標準錯誤
eg:
rm $badname 2>/dev/null
#刪除檔案錯誤時,不會再有提示到終端,都丟到/dev/null裡去了
三、禁止標準輸出和標準錯誤的輸出.
eg1:
cat $filename 2>/dev/null >/dev/null
# 如果"$filename"不存在,將不會有任何錯誤資訊提示.
# 如果"$filename"存在, 檔案的內容不會列印到標準輸出.
# 因此, 上面的代碼根本不會輸出任何資訊.
# 當只想測試命令的退出碼而不想有任何輸出時非常有用。
eg2:
#-----------測試命令的退出 begin ----------------------#
ls dddd 2>/dev/null 8
echo $? //輸出命令結束代碼:0為命令正常執行,1-255為有出錯。
#-----------測試命令的退出 end-----------#
cat $filename &>/dev/null
四、清除記錄檔內容
eg:
cat /dev/null > /var/log/messages
# : > /var/log/messages 有同樣的效果, 但不會產生新的進程.(因為:是內建的)
cat /dev/null > /var/log/wtmp
五、 隱藏cookie而不再使用
eg:
if [ -f ~/.netscape/cookies ] # 如果存在則刪除.
then
rm -f ~/.netscape/cookies
fi
ln -s /dev/null ~/.netscape/cookies
# 現在所有的cookies都會丟棄而不會儲存在磁碟上了.