1、              何謂SHELL CRIPT 

 

shell,那是一個文字介面底下讓我們與系統溝通的一個工具介面。script 是『腳本、劇本』的意思。整句話是說, shell script 是針對 shell 所寫的『劇本!』。 

shell script 是利用 shell 的功能所寫的一個『程式 (program)』,這個程式是使用純文字檔,將一些 shell 的語法與指令(含外部指令)寫在裡面, 搭配正規表示法、管線命令與資料流重導向等功能,以達到我們所想要的處理目的。 

所以,簡單的說, shell script 就像是早期 DOS 年代的批次檔 (.bat),也可以被說成是一個程式語言,且這個程式語言由於都是利用 shell 與相關工具指令, 所以不需要編譯即可執行,且擁有不錯的除錯 (debug) 工具 

 

2、              script 的撰寫與執行  

 

2.1、           shell script 的撰寫中還需要用到底下的注意事項:  

  1. 指令的執行是從上而下、從左而右的分析與執行。 
  2. 指令、選項與參數間的多個空白都會被忽略掉。 
  3. 空白行也將被忽略掉,並且 [tab] 按鍵所推開的空白同樣視為空白鍵。 
  4. 如果讀取到一個 Enter 符號 (CR) ,就嘗試開始執行該行 (或該串) 命令。 
  5. 如果一行的內容太多,則可以使用『 \[Enter] 』來延伸至下一行。 
  6. # 』可做為註解!任何加在 # 後面的資料將全部被視為註解文字而被忽略! 

 

2.2、           那要如何執行建立好的檔案呢? 

 直接命令下達 - shell.sh 檔案必須要具備可讀與可執行 (rx) 的權限 

 相對路徑:./shell.sh

 source shell.sh

 絕對路徑:/home/flykof/shell.sh

 變數『PATH』功能:將 shell.sh 放在 PATH 指定的目錄內,例如: ~/bin/

 

 

 

 

 

 

 

2.3、           建立第一個shell script 


 


 

[root@localhoat script]# vi shell.sh

#!/bin/bash

# Program:

#       This program shows "Hello World!" in your screen.

# History:

# 2011/11/05    EMIL

echo "Hello World..."

exit 0

 



 

 

由於Linux/UNIX底下有多種shell的編譯器, 我們也可以在該script中的第一行來指定利用特定的編譯器執行, 例如我們可以指定 :

#!/bin/bash

因此整個script當中,除了第一行的『#!』是用來宣告 shell 的之外,其他的 # 都是『註解』用途!  

主要程式部分,就將主要的程式寫好即可!在這個例子當中,就是 echo 那一行啦! 

執行成果告知,我們可以使用『 $? 』這個變數來觀察,那麼也可以利用 exit 這個指令來讓程式中斷,並且回傳一個數值給系統。在我們這個例子當中,使用 exit 0 ,這代表離開script並且回傳一個 0 給系統,所以我執行完這個script後,若接著下達 echo $? 則可得到 0 的值!利用這個 exit n (n 是數字) 的功能,還可以自訂錯誤訊息。 

 

經由執行命令『./shell.sh』,將可以獲得結果。 


 


 

[root@localhoat script]# ./shell.sh

Hello World...


 

 


 

 

 

2.4、         建議一定要養成說明該script

一個良好習慣的養成是很重要,這將有助於未來程式的改寫與debug

1.內容與功能。

2.版本資訊。

3.作者與聯絡方式。

4.建檔日期。

5.歷史紀錄。

6.較特殊的指令,使用『絕對路徑』的方式來下達。

7.運作時需要的環境變數預先宣告與設定。

8.較為特殊的程式碼部分,個人建議務必要加上註解說明。

9.包覆的內部程式碼最好能以 [tab] 按鍵的空格向後推。

1、              何謂SHELL CRIPT

 

shell,那是一個文字介面底下讓我們與系統溝通的一個工具介面。script 是『腳本、劇本』的意思。整句話是說, shell script 是針對 shell 所寫的『劇本!』。

shell script 是利用 shell 的功能所寫的一個『程式 (program)』,這個程式是使用純文字檔,將一些 shell 的語法與指令(含外部指令)寫在裡面, 搭配正規表示法、管線命令與資料流重導向等功能,以達到我們所想要的處理目的。

所以,簡單的說, shell script 就像是早期 DOS 年代的批次檔 (.bat),也可以被說成是一個程式語言,且這個程式語言由於都是利用 shell 與相關工具指令, 所以不需要編譯即可執行,且擁有不錯的除錯 (debug) 工具

 

2、              script 的撰寫與執行

 

2.1、           shell script 的撰寫中還需要用到底下的注意事項:

  1. 指令的執行是從上而下、從左而右的分析與執行。
  2. 指令、選項與參數間的多個空白都會被忽略掉。
  3. 空白行也將被忽略掉,並且 [tab] 按鍵所推開的空白同樣視為空白鍵。
  4. 如果讀取到一個 Enter 符號 (CR) ,就嘗試開始執行該行 (或該串) 命令。
  5. 如果一行的內容太多,則可以使用『 \[Enter] 』來延伸至下一行。
  6. # 』可做為註解!任何加在 # 後面的資料將全部被視為註解文字而被忽略!

 

2.2、           那要如何執行建立好的檔案呢?

l          直接命令下達 - shell.sh 檔案必須要具備可讀與可執行 (rx) 的權限

n          相對路徑:./shell.sh

 source shell.sh

n          絕對路徑:/home/flykof/shell.sh

n          變數『PATH』功能:將 shell.sh 放在 PATH 指定的目錄內,例如: ~/bin/

 

 

 

 

 

 

 

2.3、           建立第一個shell script

由於Linux/UNIX底下有多種shell的編譯器, 我們也可以在該script中的第一行來指定利用特定的編譯器執行, 例如我們可以指定 :

#!/bin/bash

因此整個script當中,除了第一行的『#!』是用來宣告 shell 的之外,其他的 # 都是『註解』用途!

主要程式部分,就將主要的程式寫好即可!在這個例子當中,就是 echo 那一行啦!

執行成果告知,我們可以使用『 $? 』這個變數來觀察,那麼也可以利用 exit 這個指令來讓程式中斷,並且回傳一個數值給系統。在我們這個例子當中,使用 exit 0 ,這代表離開script並且回傳一個 0 給系統,所以我執行完這個script後,若接著下達 echo $? 則可得到 0 的值!利用這個 exit n (n 是數字) 的功能,還可以自訂錯誤訊息。

 

經由執行命令『./shell.sh』,將可以獲得結果。

文字方塊: [root@localhoat script]# ./shell.sh
Hello World...

 

2.4、         建議一定要養成說明該script

一個良好習慣的養成是很重要,這將有助於未來程式的改寫與debug

1.內容與功能。

2.版本資訊。

3.作者與聯絡方式。

4.建檔日期。

5.歷史紀錄。

6.較特殊的指令,使用『絕對路徑』的方式來下達。

7.運作時需要的環境變數預先宣告與設定。

8.較為特殊的程式碼部分,個人建議務必要加上註解說明。

9.包覆的內部程式碼最好能以 [tab] 按鍵的空格向後推。

相关文章