Variable

什麼是 shell 腳本中的“參數擴展”(又名“變數擴展”),特別是在 Bash 中?

  • October 7, 2018

我理解術語“參數擴展”(又名“變數擴展”)是shell 腳本中幾個不相關操作的總稱,特別是在 Bash 中,例如:

  1. 變數替換。
  2. 在同一行中有 2 個或更多值的情況下進行行拆分。
  3. 通配特定範圍的變數。

也許更多。

如果我正確理解該術語背後的哲學,我們將變數從僅僅是一個變數“擴展”為更具影響力的數據流(例如,替代值) - 現在它已擴展為一個已完成某些操作的變數.

我的問題:

總的來說,我對術語的理解是否足夠準確,在這個總括術語下是否還有其他操作需要在答案中提及?

參數擴展也稱為變數擴展,是用參數的值替換形式的句法結構,可能由修飾符的應用處理。$*parameter*``${*parameter*}

當 shell 讀取命令行時,它會通過幾個定義明確的步驟來處理它,例如將行拆分為單詞、執行幾種擴展(其中參數擴展只是一種)以及應用任何重定向。例如,Bash shell 將首先將行拆分為單詞。然後它將按照從左到右的順序執行大括號擴展、波浪號擴展、參數和變數擴展、算術擴展、命令替換和程序擴展,然後是最終的分詞和路徑名擴展。

我不明白您所說的“可變列印”是什麼意思。

萬用字元,或 Bash 文件更喜歡稱之為的“路徑名擴展”,發生變數擴展之後;shell 檢查命令行上的每個單詞是否存在字元*,?[, 如果找到任何字元,則認為該單詞是一個模式,並根據某些配置選項將其替換為匹配文件的列表。

有關詳細資訊,請參閱 shell 的手冊頁;例如,對於 Bash,您可以閱讀手冊頁參考手冊高級腳本指南和許多其他材料。

引用自:https://unix.stackexchange.com/questions/403867