1. 程式人生 > >Linux學習筆記:Shell腳本學習

Linux學習筆記:Shell腳本學習

end 編輯 概念 數組 代理 cas case test 編譯器

概念

真正能夠控制計算機硬件(CPU、內存、顯示器等)的只有操作系統內核(Kernel),圖形界面和命令行只是架設在用戶和內核之間的一座橋梁。

由於安全、復雜、繁瑣等原因,用戶不能直接接觸內核(也沒有必要),需要另外再開發一個程序,讓用戶直接使用這個程序;該程序的作用就是接收用戶的操作(點擊圖標、輸入命令),並進行簡單的處理,然後再傳遞給內核。如此一來,用戶和內核之間就多了一層“代理”,這層“代理”既簡化了用戶的操作,也保護了內核。

用戶界面和命令行就是這個另外開發的程序,就是這層“代理”。在Linux下,這個命令行程序叫做Shell。

Shell 除了能解釋用戶輸入的命令,將它傳遞給內核,還可以:

  • 調用其他程序,給其他程序傳遞數據或參數,並獲取程序的處理結果;
  • 在多個程序之間傳遞數據,把一個程序的輸出作為另一個程序的輸入;
  • Shell 本身也可以被其他程序調用。

Shell 是將內核、程序和用戶連接了起來。

Shell 雖然沒有 C/C++、Java、Python 等強大,但也支持了基本的編程元素,例如:

  • if...else 選擇結構,switch...case 開關語句,for、while、until 循環;
  • 變量、數組、字符串、註釋、加減乘除、邏輯運算等概念;
  • 函數,包括用戶自定義的函數和內置函數(例如 printf、export、eval 等)

站在這個角度講,Shell 也是一種編程語言,它的編譯器(解釋器)是 Shell 這個程序。我們平時所說的 Shell,有時候是指連接用戶和內核的這個程序,有時候又是指 Shell 編程。

Shell 既是一種腳本編程語言,也是一個連接內核和用戶的軟件

常見的Shell有sh bash csh tcsh ash等

sh: Bourne shell 由 AT&T 公司的 Steve Bourne開發,sh 是 UNIX 上的標準 shell

bash:bash shell 是 Linux 的默認shell,bash 由 GNU 組織開發,保持了對 sh shell 的兼容性

使用

啟動終端模擬包或者從 Linux控制臺登錄後,便可以看到Shell提示符。提示符是通往 Shell 的大門,是輸入 Shell 命令的地方。

Shell 通過PS1和PS2兩個環境變量來控制提示符格式:PS1 控制最外層命令行的提示符格式;PS2 控制第二層命令行的提示符格式。

Shell Script 用各類命令預先放入到一個文件中,方便一次性執行的一個程序文件,這個文件後綴為.sh

打開文本編輯器,新建一個文本文件,並命名為test.sh

在test.sh中輸入代碼:

#!/bin/bash

echo "Hello World !"  #這是一條註釋

第1行的#!是一個約定的標記,它告訴系統這個腳本需要什麽解釋器來執行,即使用哪一種Shell;後面的 /bin/bash就是指明了解釋器的具體位置。

第2行即為代碼內容。第2行的#及其後面的內容是註釋,Shell腳本中所有以#開頭的都是註釋(當然以#!開頭的除外)

如何執行test.sh這個程序呢?有三種方法,首先切換到test.sh所在的目錄:使用點號 例如 . ./test.sh;使用source命令 ,例如source test.sh;作為解釋器參數,例如 /bin/bash test.sh

非原創,侵刪,內容來源 http://c.biancheng.net/shell/

End

Linux學習筆記:Shell腳本學習