您好,登錄后才能下訂單哦!
變量是暫時存儲數據的地方及數據標記,所存儲的數據存在于內存空間中,通過正確地調用內存空間中變量的名字就可以取出與變量對應的數據。使用變量的最大好處就是使程序開發更為方便,當然,在編程中使用變量也是必須的。否則就很難完成相關的工作。
變量賦值的方式:先寫變量名稱,緊接著就是“=”,最后是值。“=”號前后不允許有空格。一般情況下,定義變量時,需要給變量的值帶雙引號,以防止出錯,特別是當值的內容中有空格時,必須帶雙引號。
變量可分為兩大類:
- 環境變量也可稱為全局變量,可以在創建它們的Shell及其派生出的任意子shell中使用。環境便令也可分為自定義環境變量和bash內置的環境變量;
- 普通變量也可稱為局部變量,只能在創建它們的shell函數或shell腳本中使用。
環境變量一般是指用“export”內置命令導出的便令,用于定義Shell的運行環境,保證Shell命令的正確執行。
環境變量可以在命令行設置和創建,但用戶退出命令行時,這些變量值也會隨之丟失,因此,如果希望永久保存環境便令,可在用戶家目錄下的.bash_profile或.bashrc文件中,或者全局配置/etc/profile或/etc/bashrc 文件中。在講環境變量放入以上文件中,每次用戶登錄時這些變量都將被初始化。
按照系統規范,所有的環境的名稱均采用大寫形式(不是必須,只是習慣而已)。在將環境變量應用于用戶進程程序之前,都應該用“export”命令到處定義。
系統中一些常見的環境變量,比如:HOME、PATH、SHELL、UID、USER等,在用戶登錄之前就已經被/bin/login程序設置好了。通常環境變量被定義并保存在用戶家目錄下的.bash_profile文件或全局的配置文件/etc/profile文件中。
查看設置的變量時,有三個命令可以顯示變量的值:
① set:輸出所有的變量,包括全局變量和局部變量;
② env:只顯示全局變量;
③ declare:輸出所有的變量、函數、整數和已經導出的變量。
如果想要設置環境變量,就要在給變量賦值之后或在設置變量時使用“export”命令。
語法格式:
①export 變量名=value
②變量名=value
export 變量名
當然除了使用“export”命令,還可以使用帶“-x”選項的declare內置命令可以同樣設置為相同的效果。
語法格式:
- declare -x 變量名=value
如果想要讓環境變量永久生效的方法:
如果想讓系統開機之后自動執行腳本,只需將腳本文件名稱放在/etc/profile.d/目錄下即可!
在登錄Linux系統并啟動一個bash shell時,默認情況下,bash會在若干文件中查找環境的設置。這些文件可統稱為系統環境文件。bash檢查的環境變量文件的情況取決于系統運行shell的方式。
系統運行shell的方式一般有三種:
① 通過系統用戶登錄后默認運行的shell;
② 非登錄交互式運行shell;
③ 執行腳本運行非交互式shell。
當用戶登錄系統后。shell會作為登錄shell啟動,此時的登錄shell加載環境變量的順序,如圖:
①用戶登錄系統后首先加載/etc/profile(全局環境變量文件)。這是Linux系統上默認的Shell主環境變量文件。系統任何用戶登錄都會加載這個環境變量文件;
②當加載完/etc/profile文件后,才會執行/etc/profile.d目錄下的腳本文件;
③之后開始運行$HOME/.bash_profile(用戶環境變量文件);在這個文件中,又會去找$HOME/.bashrc(用戶環境變量文件);在這個文件中,又會去找/etc/bashrc(全局環境變量文件)。
如果用戶的shell不是登錄時啟動的(比如切換shell或者ssh遠程登錄),那么這種非登錄shell只會加載$HOME/.bashrc(用戶環境變量文件),并會去找/etc/bashrc(全局環境變量文件)。因此如果希望在非登錄shell下也可督導設置的環境變量等內容,就需要將變量設定寫在$HOME/.bashrc(用戶環境變量文件)或/etc/bashrc(全局環境變量文件)。千萬不要寫到$HOME/.bash_profile(用戶環境變量文件)或/etc/profile(全局環境變量文件)!!!
本地變量只能在用戶當前shell生存期中使用!
定義的方法有三種:
①變量名=value
②變量名='value'
③變量名="value"
這三種定義變量文件的區別:
- 第一種(不加任何引號):當內容為簡單連續的數字、字符串、路徑名時,可以這樣使用。不加引號時,值里有變量時會被解析后在輸出;
- 第二種(單引號):這種定義方式的特點是:輸出變量內容時單引號里是什么就輸出什么,不管內容中是否有變量和命令(需用翻反撇號括起來)。也會把他們原樣輸出。比較適合定義純字符串的情況。
- 第三種(雙引號):這種定義方式的特點是:輸出變量內容時引號中的變量及命令經過解析后再輸出內容。而不是和第二種(單引號)一樣原樣輸出。這種方式比較適合于字符串中附帶變量及命令(需用翻反撇號括起來)并且想將其解析后再輸出的變量定義。
如圖:
將命令作為作為變量值方法有兩種:
①變量名=`命令`
//用反撇號將命令括起來
②變量名=$(命令)
//推薦使用
注意當一個變量后面還有其他字符時,必須將變量加上“{}”。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。