Shell 教程


Shell 是一個用C語言寫的程序,它是使用者使用Linux的橋樑。 Shell既是一種指令語言,也是一種程式設計語言。

Shell 是指一種應用程序,這個應用程式提供了一個介面,使用者透過這個介面存取作業系統核心的服務。

Ken Thompson的sh是第一種Unix Shell,Windows Explorer是典型的圖形介面Shell。

Shell 線上工具


Shell 腳本

Shell 腳本(shell script),是一種為shell編寫的腳本程式。

業界所說的shell通常都是指shell腳本,但讀者朋友要知道,shell和shell script是兩個不同的概念。

由於習慣的原因,簡潔起見,本文出現的"shell編程"都是指shell腳本編程,不是指開發shell自身。


Shell 環境

Shell 程式設計跟java、php程式設計一樣,只要有一個能寫程式的文字編輯器和一個能解釋執行的腳本解釋器就可以了。

Linux的Shell種類眾多,常見的有:

  • Bourne Shell(/usr/bin/sh或/bin/sh)

  • #Bourne Again Shell(/bin/bash)

  • #C Shell(/usr/bin/csh)

  • K Shell (/usr/bin/ksh)

  • Shell for Root(/sbin/sh)

  • ……

本教學關注的是Bash,也就是Bourne Again Shell,由於易用和免費,Bash在日常工作中被廣泛使用。同時,Bash也是大多數Linux系統預設的Shell。

在一般情況下,人們不會區分Bourne Shell 和Bourne Again Shell,所以,像#!/bin/sh,它同樣也可以改為#!/ bin/bash

#!告訴系統其後路徑所指定的程式即是解釋此腳本檔案的Shell程式。


第一個shell腳本

開啟文字編輯器(可以使用vi/vim指令來建立檔案),新建一個檔案test.sh,副檔名為sh(sh代表shell),副檔名不影響腳本執行,見名知意就好,如果你用php寫shell 腳本,副檔名就用php好了。

輸入一些程式碼,第一行一般是這樣:

實例

#!/bin/bash
echo "Hello World !"

運行實例»##點擊"運行實例" 按鈕查看線上實例

echo指令用於向視窗輸出文字。

執行Shell腳本有兩種方法:

1、作為可執行程式

#將上面的程式碼儲存為test.sh,並cd到對應目錄:

chmod +x ./test.sh  #使脚本具有执行权限
./test.sh  #执行脚本

注意,一定要寫成./test.sh,而不是test.sh,運行其它二進位的程式也一樣,直接寫test.sh,linux系統會去PATH裡尋找有沒有叫test.sh的,而只有/bin, /sbin, /usr/bin,/usr/sbin等在PATH裡,你的當前目錄通常不在PATH裡,所以寫成test.sh是會找不到指令的,要用./test .sh告訴系統說,就在目前目錄找。


2、作為解譯器參數

這種運作方式是,直接執行解釋器,其參數就是shell腳本的檔名,如:

/bin/sh test.sh
/bin/php test.php

這種方式運行的腳本,不需要在第一行指定解釋器訊息,寫了也沒用。