Variable
什麼是 shell 腳本中的“參數擴展”(又名“變數擴展”),特別是在 Bash 中?
我理解術語“參數擴展”(又名“變數擴展”)是shell 腳本中幾個不相關操作的總稱,特別是在 Bash 中,例如:
- 變數替換。
- 在同一行中有 2 個或更多值的情況下進行行拆分。
- 通配特定範圍的變數。
也許更多。
如果我正確理解該術語背後的哲學,我們將變數從僅僅是一個變數“擴展”為更具影響力的數據流(例如,替代值) - 現在它已擴展為一個已完成某些操作的變數.
我的問題:
總的來說,我對術語的理解是否足夠準確,在這個總括術語下是否還有其他操作需要在答案中提及?
參數擴展也稱為變數擴展,是用參數的值替換形式的句法結構,可能由修飾符的應用處理。
$*parameter*``${*parameter*}
當 shell 讀取命令行時,它會通過幾個定義明確的步驟來處理它,例如將行拆分為單詞、執行幾種擴展(其中參數擴展只是一種)以及應用任何重定向。例如,Bash shell 將首先將行拆分為單詞。然後它將按照從左到右的順序執行大括號擴展、波浪號擴展、參數和變數擴展、算術擴展、命令替換和程序擴展,然後是最終的分詞和路徑名擴展。
我不明白您所說的“可變列印”是什麼意思。
萬用字元,或 Bash 文件更喜歡稱之為的“路徑名擴展”,發生在變數擴展之後;shell 檢查命令行上的每個單詞是否存在字元
*
,?
和[
, 如果找到任何字元,則認為該單詞是一個模式,並根據某些配置選項將其替換為匹配文件的列表。有關詳細資訊,請參閱 shell 的手冊頁;例如,對於 Bash,您可以閱讀手冊頁、參考手冊、高級腳本指南和許多其他材料。