文章出處

這時在centos 6.2下的第一個shell script,命名為 sh01.sh 

1 #!/bin/bash
2 #Program
3 # This program shows "Hello World" in your screen.
4 #History:
5 #2015/9/6  zengdp First release
6 PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
7 export PATH
8 echo -e "Hello World \a \n"
9 exit 0
    1. 第一行 #!/bin/bash 在宣告這個 script 使用的 shell 名稱:
      因為我們使用的是 bash ,所以,必須要以『 #!/bin/bash 』來宣告這個文件內的語法使用 bash 的語法!那么當這個程序被運行時,他就能夠加載 bash 的相關環境配置檔 (一般來說就是 non-login shell 的 ~/.bashrc), 并且運行 bash 來使我們底下的命令能夠運行!這很重要的!(在很多狀況中,如果沒有配置好這一行, 那么該程序很可能會無法運行,因為系統可能無法判斷該程序需要使用什么 shell 來運行啊!)

    2. 程序內容的說明:
      整個 script 當中,除了第一行的『 #! 』是用來宣告 shell 的之外,其他的 # 都是『注解』用途! 所以上面的程序當中,第二行以下就是用來說明整個程序的基本數據。一般來說, 建議你一定要養成說明該 script 的:1. 內容與功能; 2. 版本資訊; 3. 作者與聯絡方式; 4. 建檔日期;5. 歷史紀錄 等等。這將有助於未來程序的改寫與 debug 呢!

    3. 主要環境變量的宣告:
      建議務必要將一些重要的環境變量配置好,鳥哥個人認為, PATH 與 LANG (如果有使用到輸出相關的資訊時) 是當中最重要的! 如此一來,則可讓我們這支程序在進行時,可以直接下達一些外部命令,而不必寫絕對路徑呢!比較好啦!

    4. 主要程序部分
      就將主要的程序寫好即可!在這個例子當中,就是 echo 那一行啦!echo 必須要加上 -e 的選項才行!

    5. 運行成果告知 (定義回傳值)
      是否記得我們在第十一章里面要討論一個命令的運行成功與否,可以使用 $? 這個變量來觀察~ 那么我們也可以利用 exit 這個命令來讓程序中斷,并且回傳一個數值給系統。 在我們這個例子當中,鳥哥使用 exit 0 ,這代表離開 script 并且回傳一個 0 給系統, 所以我運行完這個 script 后,若接著下達 echo $? 則可得到 0 的值喔! 更聰明的讀者應該也知道了,呵呵!利用這個 exit n (n 是數字) 的功能,我們還可以自訂錯誤信息, 讓這支程序變得更加的 smart 呢!

  運行:

sh sh01.sh

在一些環境的配置上面,畢竟每個人的環境都不相同,為了取得較佳的運行環境, 我都會自行先定義好一些一定會被用到的環境變量,例如 PATH 這個玩意兒! 這樣比較好啦~所以說,建議你一定要養成良好的 script 撰寫習慣,在每個 script 的檔頭處記錄好:

  • script 的功能;
  • script 的版本資訊;
  • script 的作者與聯絡方式;
  • script 的版權宣告方式;
  • script 的 History (歷史紀錄);
  • script 內較特殊的命令,使用『絕對路徑』的方式來下達;
  • script 運行時需要的環境變量預先宣告與配置。

除了記錄這些資訊之外,在較為特殊的程序碼部分,個人建議務必要加上注解說明,可以幫助你非常非常多! 此外,程序碼的撰寫最好使用巢狀方式,在包覆的內部程序碼最好能以 [tab] 按鍵的空格向后推, 這樣你的程序碼會顯的非常的漂亮與有條理!在查閱與 debug 上較為輕松愉快喔! 另外,使用撰寫 script 的工具最好使用 vim 而不是 vi ,因為 vim 會有額外的語法檢驗機制,能夠在第一階段撰寫時就發現語法方面的問題喔!

 


來源 -> 戳我

 


文章列表




Avast logo

Avast 防毒軟體已檢查此封電子郵件的病毒。
www.avast.com


arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()