shell指令碼程式的簡單介紹及應用

來源:互聯網
上載者:User

shell指令碼程式需要注意的幾點:
<1>變數使用前不需提前聲明,直接使用即可;
<2>變數不存在任何資料類型的概念,統一預設為字串;
<3>賦值操作等號的任何一邊不能加空格,如有在操作符兩邊加空格的編程習慣時,需要注意這點;
<4>以#號開始的地方被理解為注釋。

例一:如下為一個讀取指定檔案中變數值的簡單程式(有三個變數:HOME PATH SAVE):
FILENAME=pathfile
if [ ! -f $FILENAME ];then
#-f(檢測檔案是否存在並且是普通檔案)
        echo "FILE : $FILENAME does not exit!"
        exit 1
fi
cat $FILENAME | grep -v "#" | while read VAR
#-v(不包含指定字串的行)
#read VAR(把讀入的內容賦給變數VAR)
do
        NAME=`echo $VAR | awk 'BEGIN { FS = "=" } {print $1} '`
#FS(指定分隔字元)
        PATH_IS=`echo $VAR | awk 'BEGIN { FS = "=" } {print $2} '`
        if [ -n $NAME ];then
#-n(非空判斷)
                if [ "$NAME" = "HOME" ];then
#if判斷可以為if test "$name" = china或者if [ "$name" = china ]兩種格式,需要注意的是test把所有運算元和操作符作為單獨的參數分別對待,也就是說他們之間至少要有一個空白字元分隔(等號兩邊必須要有空格作分隔);如果用第二種格式的話,在[之後和]之前都要空格
                        HOME=$PATH_IS
                        export HOME
#export命令讓shell把給定的變數標誌為匯出,他們的值要傳遞給子shell,理解為相當於設定其為全域變數
                fi
                if [ "$NAME" = "PATH" ];then
                        PATH=$PATH_IS
                        export PATH
                fi
                if [ "$NAME" = "SAVE" ];then
                        SAVE=$PATH_IS
                        export SAVE
                fi
        else
                echo "NAME is null!"
                exit 1
        fi
done;

例二:如下為殺掉指定進程的一個簡單程式(進程名由例一程式中的變數PATH傳遞過來):
kill_id(){
        ps -ef | grep ${PATH} | while read LINE
        do
                if [ "`echo $LINE | awk -c: '{print $3}' -`" = "1" ]; then
                        APP_EPID=`echo $LINE | awk -c: '{print $2}'`
                        kill -9 $APP_EPID &
                        sleep 1
                fi
        done;
}

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.