歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> SHELL編程

Linux Shell編程之參數和變量擴展

Linux Shell編程之參數和變量擴展   linux shell參數擴展  ${param} 拓展變量的值,以及防止變量被錯誤解析,比如:${hello}world、${arr[1]} ${arr[*]} 或 ${arr[@]}:返回數組 arr 的所有元素   ${!param} bash 2 中可以使用 ${!param} 來進行間接引用,比如 ${!#} 返回最後一個位置參數 ${!arr[*]} 或 ${!arr[@]}:返回數組 arr 的所有下標   刪除匹配子串 ${param#pattern}:從 param 開頭刪除 pattern 匹配的子串(最小匹配) ${param#pattern}:從 param 開頭刪除 pattern 匹配的子串(最大匹配) ${param%pattern}:從 param 結尾刪除 pattern 匹配的子串(最小匹配) ${param%%pattern}:從 param 結尾刪除 pattern 匹配的子串(最大匹配)   提取子串 ${param:offset}:提取 param 中從位置 offset 開始的子串(offset 從 0 開始)。如果 offset 為負數,表示從字符串結尾開始,此時 offset 必須被括號括起來,或者在 offset 之前加一個空格 ${param:offset:length}:提取 param 中從 offset 開始的長度為 length 的子串,其他同上 param 可以為 * 或 @,表示對位置參數進行分片操作,比如 ${@:3:2} 返回從第 3 個位置參數開始的 2 個位置參數   根據變量狀態賦值 ${var-string}:若 var 未定義,則返回 string,否則返回 var 的值 ${var:-string}:若 var 未定義或為空,則返回 string,否則返回 var 的值 ${var=string}:若 var 未定義,則將 string 賦給 var,然後返回 var 的值,否則直接返回 var 的值 ${var:=string}:若 var 未定義或為空,則將 string 賦給 var,然後返回 var 的值,否則直接返回 var 的值 ${var+string}:若 var 已定義,則返回 string,否則返回 var 的值 ${var:+string}:若 var 為非空,則返回 string,否則返回 var 的值 ${var?string}:若 var 未定義,則將 string 輸出到標准錯誤,並退出腳本,否則返回 var 的值 ${var:?string}:若 var 未定義或為空,則將 string 輸出到標准錯誤,並退出腳本,否則返回 var 的值   模式替換 ${param/pattern/string}:將 param 中第一個匹配 pattern 的子串替換為 string ${param//pattern/string}:將 param 中所有匹配 pattern 的子串替換為 string ${param/#pattern/string}:如果 param 開頭匹配 pattern,則將開頭替換為 string ${param/%pattern/string}:如果 param 結尾匹配 pattern,則將結尾替換為 string 如果 param 是 @ 或 *,表示對所有的位置參數進行模式替換 如果 param 為 arr[@] 或 arr[*],則表示對數組中所有的元素進行模式替換   變量長度和個數 ${#param}:返回 param 值的長度 ${#*} 和 ${#@}:返回位置參數的個數 ${arr[*]} 和 ${arr[@]}:返回數組 arr 的元素個數   變量大小寫轉換 ${param^pattern}:pattern 為單個字符,將 param 中第一個匹配 pattern 的字符轉換為大寫 ${param^^pattern}:pattern 為單個字符,將 param 中所有匹配 pattern 的字符轉換為大寫 ${param,pattern}:pattern 為單個字符,將 param 中第一個匹配 pattern 的字符轉換為小寫 ${param,,pattern}:pattern 為單個字符,將 param 中所有匹配 pattern 的字符轉換為小寫 param 可以為 * 或 @ 或 arr[*] 或 arr[@] 如果 pattern 為空,則將其視為 ?,表示匹配任意字符  
Copyright © Linux教程網 All Rights Reserved