2018年7月21日 星期六

bash: DEFINITIONS, RESERVED WORDS & COMMENTS

定義
  • 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 節

沒有留言:

張貼留言

SIP header Via

所有 SIP 訊息 都要有 Via,縮寫 v。一開始的 UAC 和後續途經的每個 proxy 都會疊加一個 Via 放傳送的位址,依序作為回應的路徑。 格式 sent-protocol sent-by [ ;branch= branch ][ ; 參數 ...] s...