1. 程式人生 > >shell腳本學習筆記

shell腳本學習筆記

要求 /var/ roo mes ack 字符 then message 執行

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腳本學習筆記