目錄 思維導圖 序 寫一個die函數
必須以root帳號執行本指令碼 命令列傳參 殺掉指定進程 局部掃盲 總結 思維導圖
序 把這幾天常用的一些方法積累下來,以便以後使用。這隻是基礎應用,如果你是這方面的高手,望請多指教。 寫一個die函數
#!/bin/bashdie () { echo "ERROR: $1. Aborting " exit 1}mkdir -p `dirname "/etc/zhoubc/test.sh"` || die "Could not create directory"echo "OK"exit 0
看看它的運行情況
必須以root帳號運行本指令碼
#!/bin/bashif [ `whoami` != "root" ] ; then echo "You must run this script as root. Sorry!" exit 1fiexit 0
看看它的運行情況
還有一種寫法(我比較喜歡上面的寫法):
#!/bin/bashif [ "$UID" -ne 0 ] ; then echo "You must run this script as root. Sorry! Your uid:$UID root_uid:0" exit 1fiexit 0
看看它的運行情況
命令列傳參
#!/bin/bashcase $1 in "start" ) echo "You Input The Commond:start" ;; "stop" ) echo "You Input The Commond:stop" ;; "restart" ) echo "You Input The Commond:restart" ;; * ) echo "$0 { start | stop | restart }" ;; esacexit 0
看看它的運行情況
殺掉指定進程
#!/bin/bash#讀出進程要殺進程的ID號pid=`ps aux | grep $1 | grep -v grep | awk '{print $2}'`#開殺if [ "$pid" != "" ] ; then kill -9 $pid &>/dev/nullfiexit 0
看看它的運行情況
還有一種殺進程的方式
pkill -9 -f $1
局部掃盲 特殊檔案/dev/null(位桶):傳送到此檔案的資料都會被系統丟掉。——當你不需要輸出的時候,非常有用 也就是說當程式將資料寫入到此檔案的時,會認為它已成功完成寫入資料的操作,但實際上什麼事都沒做。
#!/bin/bashecho "No output" > /dev/nullecho "Output"exit 0
看看它的運行情況
捕獲退出狀態(用$?捕獲):0為表示“成功”,其他任何退出狀態都為失敗。
#!/bin/bashls -l /dev/nullecho $?ls nofile # ls一個不存在的檔案echo $?exit 0
看看它的運行情況
檔案描述符:Unix以小整數數字表示每個進程的開啟檔案。(注意空格)
檔案描述符 |
代表的意義 |
0 |
標準輸入 |
1 |
標準輸出 |
2 |
標準錯誤輸出 |
我們來看那幾個檔案都輸出了什麼東東?
總結 歸納總結以方便下次使用。——送一句話,不積跬步無以致千裡。 未提及,我必須要學會的幾個命令:awk、test、sort、sed。——這幾個命令在實際應用中非常有用,我還沒學習過這幾個命令。 推薦