shell腳本學習筆記
1./dev/null /dev/zero
①/dev/null : /dev/null,稱空設備,是一個特殊的設備文件,它丟棄一切寫入其中的數據(但報告寫入操作成功),讀取它則會立即得到一個EOF。Unix行話中,/dev/null 被稱為位桶(bit bucket)或者黑洞(black hole)。空設備通常被用於丟棄不需要的輸出流,或作為用於輸入流的空文件。這些操作通常由重定向完成。
# cat /dev/null > /var/log/messages 清除文件的內容而不刪除文件本身
# : > /var/log/messages 有同樣的效果,但不會產生新的進程。(內建的)
# ln -s /dev/null test.c 往test.c中寫任何內容都不會得到保存
②/dev/zero : /dev/zero 是一個特殊的文件,當你讀它的時候,它會提供無限的空字符(NULL, ASCII NUL, 0x00)。其中的一個典型用法是用它提供的字符流來覆蓋信息,另一個常見用法是產生一個特定大小的空白文件。
2.使用 echo $? 查看上條命令的退出碼:0為命令正常執行,1-255為有出錯。
# dd if=/dev/zero of=/dev/sdb bs=4M 來給整個U盤清零。
3.echo $$ 打印運行當前腳本的進程的PID
4.要求以root身份來運行
ROOT_UID=0 # Root 用戶的 $UID 是 0.
E_WRONG_USER=65 # 不是 root?
if [ "$UID" -ne "$ROOT_UID" ]
then
echo; echo "You must be root to run this script."; echo
exit $E_WRONG_USER
fi
或者:
E_NON_ROOT_USER=70 # 必須用root來運行.
ROOTUSER_NAME=root
username=`id -nu`
if [ "$username" != "$ROOTUSER_NAME" ]
then
echo "Must be root to run ""`basename $0`""."
exit $E_NON_ROOT_USER
fi
shell腳本學習筆記