您好,登錄后才能下訂單哦!
變量基礎
在 Bash shell 中,每一個變量的值都是字符串,變量賦值時,值都會以字符串的形式存儲。也就是說,Bash shell 在默認情況下不會區分變量類型,即使你將整數和小數賦值給變量,它們也會被視為字符串 。
變量名
命名只能使用英文字母,數字和下劃線,首個字符不能以數字開頭。
中間不能有空格,可以使用下劃線(_)。
不能使用標點符號。
不能使用bash里的關鍵字(可用help命令查看保留關鍵字)。
除了顯式地直接賦值,還可以用語句給變量賦值
使用變量
使用一個定義過的變量,只要在變量名前面加美元符號$即可
推薦給所有變量加上花括號{ },這是個良好的編程習慣。
例:
修改變量值
第二次對變量賦值時不能在變量名前加,只有在使用變量時才能加 ,只有在使用變量時才能加,只有在使用變量時才能加
例:
單引號和雙引號的區別
定義變量時,變量的值可以由單引號’ ‘包圍,也可以由雙引號" "包圍
例:
以單引號’ '包圍變量的值時,單引號里面是什么就輸出什么,即使內容中有變量和命令(命令需要反引起來)也會把它們原樣輸出。這種方式比較適合定義顯示純字符串的情況,即不希望解析變量、命令等的場景。
以雙引號" "包圍變量的值時,輸出時會先解析里面的變量和命令,而不是把雙引號中的變量名和命令原樣輸出。這種方式比較適合字符串中附帶有變量和命令并且想將其解析后再輸出的變量定義。
只讀變量
使用 readonly 命令可以將變量定義為只讀變量,只讀變量的值不能被改變。
變量作用域Scope
Shell變量的作用域(Scope),就是 Shell 變量的有效范圍(可以使用的范圍)。
Shell 變量的作用域可以分為三種:
有的變量只能在函數內部使用,這叫做局部變量(local variable);
有的變量可以在當前 Shell 進程中使用,這叫做全局變量(global variable);
而有的變量還可以在子進程中使用,這叫做環境變量(environment variable)。
export a這種形式是在定義變量 a 以后再將它導出為環境變量,如果想在定義的同時導出為環境變量,可以寫作export a=20。
環境變量也是臨時的
創建一個新的Shell窗口時,在次訪問該環境變量依舊訪問不到。
通過 export 導出的環境變量只對當前 Shell 進程以及所有的子進程有效,如果最頂層的父進程被關閉了,那么環境變量也就隨之消失了,其它的進程也就無法使用了,所以說環境變量也是臨時的。
命令替換
Shell命令替換是指將命令的輸出結果賦值給某個變量。比如,在某個目錄中輸入 ls 命令可查看當前目錄中所有的文件,但如何將輸出內容存入某個變量中呢?這就需要使用命令替換了,這也是 Shell 編程中使用非常頻繁的功能。
替換方式
Shell 中有兩種方式可以完成命令替換,一種是反引號,一種是$()
示例
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。