定義
- blank:space 或 tab 字元。
- word 或 token:字,視為一個單元的一系列字元,由 metacharacter 切割。token 可以是字或運算子。
- name 或 identifier:由英文字母、數字及「_」組成的字,不能以數字開頭,可作為 shell 變數或 function 名稱。
- metacharacter:沒 quoted 時切割出 word 的字元,包括:
- space、tab
- 「<」與「>」:亦有輸出入導向功能 (redirection operator)
- 「|」「&」「;」「(」「)」<newline>:組合出所有控制運算子 (control operator),亦區隔出子指令並控制執行方式。
- control operator:進行執行控制功能的 token,包括:
- 「|」或「|&」:串接前後指令的輸出入成為 pipeline。
- 「&&」:AND,前面指令執行成功 (回傳值 0) 才執行下個指令。
- 「||」:OR,前面指令執行失敗 (回傳值不為 0) 才執行下個指令。
- 「&」:背景執行
- 「;」或 <newline>:執行
- ( ):subshell 執行
- 「;;」、「;&」、「;;&」:用在 case
保留字:在 shell 有特殊意義的字,用在 simple command 第一個字 (見 bash SHELL GRAMMAR) 或指令 case、for 的第三個字。
- !
- case esac
- coproc
- do done
- for
- function
- if then elif else fi
- in select
- until
- while
- { }
- time
- [[ ]]
註解
- 字元 # 開始的字到行末都會忽略。互動式 shell 可用內建指令 shopt 的 interactive_comments 關閉註解功能。
參考來源
man
bash 的 DEFINITIONS, RESERVED WORDS & COMMENTS 節
沒有留言:
張貼留言