shell指令碼

KLAPT發表於2024-03-21

什麼是Shell

Shell 是一個用 C 語言編寫的程式,它是使用者使用 Linux 的橋樑。Shell 既是一種命令語言,又是一種程式設計語言。
Shell 是指一種應用程式,這個應用程式提供了一個介面,使用者通過這個介面訪問作業系統核心的服務。
Ken Thompson 的 sh 是第一種 Unix Shell,Windows Explorer 是一個典型的圖形介面 Shell。

什麼是指令碼

指令碼簡單地說就是一條條的文字命令,這些文字命令是可以看到的(如可以用記事本開啟查
看、編輯)。
常見的指令碼: JavaScript(JS,前端),VBScript, ASP,JSP,PHP(後端),SQL(資料庫操
作語言),Perl,Shell,python,Ruby,JavaFX,Lua 等。

第一個shell指令碼

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

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

點選檢視程式碼
#!/bin/bash
echo "Hello World !"

解析:
#! 是一個約定的標記,它告訴系統這個指令碼需要什麼直譯器來執行,即使用哪一種 Shell。
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

這種方式執行的指令碼,不需要在第一行指定直譯器資訊,寫了也沒用。

只讀變數

語法:readonly 變數名

案例:定義變數 a 並且其值為 10,隨後設定其為只讀變數,再去嘗試重新賦值

image

接收使用者輸入

語法:read -p 提示資訊 變數名

案例:編寫一個指令碼 test6.sh,要求執行之後提示使用者輸入檔案的名稱(路徑),然後自動為
使用者建立該檔案

image

IF 語句

語法:

點選檢視程式碼
if condition
 
 
then
command1
command2
...
fi
單行寫法(一般在命令列中執行的時候):if [ condition ]; then command; fi

For迴圈

點選檢視程式碼
for loop in 1 2 3 4 5

do

    echo "The value is: $loop"

done

輸出結果:
The value is: 1
The value is: 2
The value is: 3
The value is: 4
The value is: 5

相關文章