Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學

Linux Shell 程式設計入門核心概念筆記

編輯:Linux 系統常見問題解答

第一章 基本概念

如何執行 Shell 程式

執行 Linux Shell 程式有三種方式:

  1. 賦予檔案執行權限,直接執行 ./script.sh
  2. 直接呼叫解譯器執行 bash script.sh 或 sh script.sh
  3. 使用 source script.sh 或 . script.sh 在目前 Shell 環境中執行

Linux 可執行命令三大類

類型說明範例
內建命令整合在 Shell 解譯器內部,執行不建立子行程cd, echo, export
Shell 函數以 Shell 語法撰寫的程式碼區塊,可像命令一樣呼叫自訂 function
外部命令獨立可執行檔,執行時會 fork 子行程find, grep, ls

外部命令執行流程

  1. 呼叫 fork() 建立子行程(父行程複製品)
  2. 子行程中尋找命令路徑(若給絕對路徑則略過)
  3. 子行程以 exec() 取代自身映像並執行新程式,父行程進入等待
  4. 子行程結束,父行程繼續讀取下一條命令

關鍵特性:

  • 子行程初期與父行程相同,但無法修改父行程的變數/環境
  • 只有內建命令能改變目前 Shell 的屬性(如環境變數)
  • source 執行腳本不建立子行程,直接在父行程環境中執行,故可修改環境變數

Shell 變數

  • 命名規則:以字母或底線開頭,後接任意長度字母、數字、底線,無長度限制
  • 型別:不區分型別,所有值皆為字串;但若字串為純數字,支援整數運算與比較
  • 範圍:
    • 區域變數:需以 local 宣告,僅在函數內有效
    • 全域/環境變數:無需修飾,子行程可繼承(需 export)

常用變數操作

# 顯示變數
echo $VAR_NAME

# 設定並匯出為環境變數
export PATH=/new/path:$PATH

# 查看所有區域變數(含環境變數)
set

# 僅查看環境變數
env

語言類型與 Shell 優勢

  • 編譯型:C/C++、Java(編譯為位元碼/機器碼)
  • 直譯型:Shell、Python、JavaScript(逐行解譯執行)

Shell 腳本優勢:

  1. 簡潔:核心外層環境使高階操作成為可能
  2. 開發容易:遵循 Unix 哲學,工具豐富,站在巨人肩膀上
  3. 可移植:符合 POSIX 標準的 Shell 腳本可在任何 Unix/Linux 執行

Shebang (#!) 宣告解譯器

#!/bin/bash   # 最常用
#!/bin/sh     # POSIX 相容模式
#!/bin/python # Python 腳本
Copyright © Windows教程網 All Rights Reserved