Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> Linux 系統教學 >> Linux 教學

Bash set 指令完整參考:Shell 選項與位置參數控制

編輯:Linux 教學

指令語法

set [--abefhkmnptuvxldCHP] [-o 選項名稱] [引數...]

常用單字母選項

選項功能
-e指令傳回非零值立即結束(errexit)
-u展開未設定變數視為錯誤(nounset)
-x顯示執行指令與引數(xtrace)
-v顯示讀取的輸入行(verbose)
-n語法檢查模式,不執行指令(noexec)
-f停用檔名擴展(noglob)
-m啟用工作控制(monitor)
-C防止重導向覆蓋既有檔案(noclobber)

-o 選項名稱對照表

選項名稱等同單字母說明
allexport-a自動匯出修改過的變數
braceexpand-啟用大括號擴展(預設開啟)
emacs-Emacs 風格命令列編輯
vi-Vi 風格命令列編輯
ignoreeof-忽略 EOF,需輸入 exit 離開
noclobber-C防止覆蓋檔案
nounset-u未設定變數視為錯誤
posix-POSIX 相容模式

特殊參數處理

  • --:結束選項處理,後續參數指派給位置參數 $1, $2...
  • -:關閉 -x 與 -v,將剩餘參數指派給位置參數
  • 不帶參數執行 set:顯示所有 Shell 變數(含函數)

實務應用範例

除錯腳本

set -eux  # 錯誤即停、未定義變數報錯、顯示執行軌跡

嚴格模式

set -euo pipefail  # 管線任一指令失敗視為整體失敗

位置參數重設

set -- "參數1" "參數2" "參數3"  # 重新定義 $1, $2, $3

查看目前選項狀態

echo $-        # 顯示目前啟用的單字母選項
set -o         # 顯示所有 -o 選項狀態

注意事項

  1. set -e 在管線、子 Shell、條件判斷中行為不同,需謹慎使用
  2. 互動式 Shell 預設啟用 -m、-h、emacs 等選項
  3. 權限模式 -p 會忽略 $ENV、不繼承 Shell 函數

善用 set 指令能讓 Shell 腳本更健壯、更易除錯,是進階 Shell 程式設計的必備技能。

Copyright © Windows教程網 All Rights Reserved