什麼是 Shell 指令碼?
Shell 指令碼是在 Unix shell(一種命令列直譯器)中執行的計算機程式中的一系列命令列表。Shell 指令碼通常包含描述步驟的註釋。Shell 指令碼執行的不同操作包括程式執行、檔案操作和文字列印。包裝器也是一種 Shell 指令碼,它建立程式環境、執行程式等。
Shell 的型別
Unix 中主要有兩種型別的 Shell。它們是
Bourne Shell
這是版本 7 Unix 的預設 Shell。字元 $ 是 Bourne Shell 的預設提示符。此 Shell 中的不同子類別包括 Korn Shell、Bourne Again Shell、POSIX Shell 等。
C Shell
這是一個 Unix Shell 和命令處理器,在文字視窗中執行。字元 % 是 C Shell 的預設提示符。C Shell 還可以輕鬆讀取檔案命令,稱為指令碼。
Shell 指令碼的功能
Shell 指令碼的不同功能包括:
- 批處理作業
可以使用 Shell 指令碼自動執行在命令列介面中手動輸入的多個命令。這可以在無需使用者單獨觸發每個命令的情況下完成。
- 程式設計
現代 Shell 指令碼中有很多功能僅在複雜的程式語言中才能找到,例如陣列、變數、註釋等。可以使用這些功能在 Shell 指令碼中編寫許多複雜的應用程式。但存在一個問題,即 Shell 指令碼語言不支援類、執行緒等。
- 泛化
在 Shell 指令碼中使用迴圈、變數等執行多個任務更加靈活。一個例子是名為 bash 的 Unix Shell 指令碼,它將 jpg 影像轉換為 png 影像。
- 快捷方式
Shell 指令碼為系統命令提供了一個快捷方式,其中應用了命令選項、環境設定或後處理。這仍然允許快捷方式指令碼充當 Unix 命令。
Shell 指令碼的優點
Shell 指令碼的一些優點包括:
- Shell 指令碼的命令和語法與在命令列中輸入的命令和語法相同。因此,無需切換到完全不同的語法。
- 編寫 Shell 指令碼程式碼比其他程式語言快得多。這也意味著程式更容易建立,並且可以輕鬆選擇所需的檔案。
- Shell 指令碼還可以用於為現有程式提供連結。
- 非專業使用者也可以使用 Shell 指令碼根據自己的需求修改和調整程式的行為。
Shell 指令碼的缺點
Shell 指令碼的一些缺點包括:
- Shell 指令碼中可能存在一些錯誤,這些錯誤可能代價很高。
- Shell 指令碼中的程式在執行時非常慢,並且每個執行的 Shell 命令都需要一個新程序。
- Shell 指令碼中的不同平臺也可能存在相容性問題。
Shell 指令碼示例
在此示例中,建立了一個指令碼 demo.sh。指令碼和命令如下所示:
#!/bin/bash gzip zip find echo
這裡,
**gzip** 是一個建立、提取或檢視 .gz 檔案的命令,
**zip** 是一個用於建立或提取 zip 檔案的命令,
**find** 是一個有助於搜尋檔案的命令,
**echo** 是一個顯示一行文字的命令