日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

Linux 的 Shell 变量

發布時間:2025/3/17 linux 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Linux 的 Shell 变量 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

【簡述】

?

變量即計算機中用于記錄一個值的符號,而這些符號可用于不同的運算處理中。

通常變量與值是一對一的關系,可以通過表達式讀取它的值并賦值給其它變量,也可以直接指定數值賦值給任意變量。

為便于運算和處理,大部分的編程語言會區分變量的類型,用于分別記錄數值、字符或者字符串等等數據類型。

shell 變量也基本如此,有不同類型,可以參與運算,有作用域限定。

?

【變量類型】

在運行 shell 時,有三種變量:

1)局部變量:當前 shell 進程私有用戶自定義變量,僅在當前 shell 實例中有效,其他 shell 啟動的程序不能訪問。

2)shell 變量:shell 變量是由 shell 程序本身內建的變量,其中有一部分是環境變量,有一部分是局部變量,這些變量保證了shell的正常運行。

3)環境變量:?由局部變量導出。所有的程序,都能訪問環境變量,有些程序依靠環境變量來保證其正常運行。

【變量定義與使用】

shell 變量不需要進行任何聲明,直接定義即可,但使用 shell 變量要用到$符號。

同時,變量名的命名須遵循如下規則:

1)變量名只能是英文字母、數字或者下劃線,且不能以數字為開頭。

2)不能使用 bash 里的關鍵字。

注:

1.變量名和等號之間不能有空格,否則會被認為是命令。

2.使用變量時,加 {} 可以防止歧義

【更改變量為只讀】

使用 readonly 命令可以將變量定義為只讀變量,只讀變量的值不能被改變。

【修改已有變量】

${變量名#匹配字串}從頭向后開始匹配,刪除符合匹配字串的最短數據
${變量名##匹配字串}從頭向后開始匹配,刪除符合匹配字串的最長數據
${變量名%匹配字串}從尾向前開始匹配,刪除符合匹配字串的最短數據
${變量名%%匹配字串}從尾向前開始匹配,刪除符合匹配字串的最長數據
${變量名/舊的字串/新的字串}將符合舊字串的第一個字串替換為新的字串
${變量名//舊的字串/新的字串}將符合舊字串的全部字串替換為新的字串

例:

【刪除已有變量】

使用 unset 命令可以刪除變量,變量被刪除后就無法再次使用。

注:只讀變量無法刪除,只有重啟后才會自動消失。

【環境變量】

在所有的 Linux 系統中,每個進程都有其各自的環境變量設置,且默認情況下,當一個進程被創建時,除非創建過程中明確指定,它將繼承其父進程的絕大部分環境設置。

環境變量的作用域比自定義變量的要大,Shell 的環境變量作用于其自身和它的子進程,Shell 程序也作為一個進程運行在操作系統之上,而在 Shell 中運行的大部分命令都將以 Shell 的子進程的方式運行。

?

可以將環境變量簡單地理解為在當前進程的子進程有效的變量,為與普通變量區分,通常習慣將環境變量名設為大寫。

1.打印環境變量信息

set顯示當前 Shell 所有變量
env顯示與當前用戶相關的環境變量,也可讓命令在指定環境中運行
export顯示從 Shell 中導出成環境變量的變量,也可將自定義變量導出為環境變量

2.環境變量永久生效

按變量的生存周期來劃分,Linux 變量可分為兩類:

1)永久的:需要修改配置文件,變量永久生效;

2)臨時的:使用 export 命令行聲明即可,變量在關閉 shell 時失效。

當關機或關閉當前的 shell 之后,環境變量會消失。

在 /etc 下有兩個重要文件 /etc/bashrc 和 /etc/profile ,它們分別存放的是 shell 變量和環境變量。

如果想要添加一個對所有用戶永久生效的環境變量,只需要打開 /etc/profile,在里面加上想添加的環境變量即可。

注:在每個用戶目錄下存在一個隱藏文件 .profile ,其只對當前用戶永久生效。

3.命令的查找路徑與順序

在 Shell 中輸入一個命令,Shell 是通過環境變量 PATH 來進行搜索然后執行的,這個 PATH 里面就保存了 Shell 中執行的命令的搜索路徑。

?

通常 PATH 目錄下放的都是可執行文件,當在 Shell 中執行一個命令時,系統就會按照 PATH 中設定的路徑按照順序依次到目錄中去查找,如果存在同名的命令,則執行先找到的那個。

?

4.添加自定義路徑到“ PATH ”環境變量

命令格式:PATH=$PATH:絕對路徑

按如上命令給 PATH 環境變量追加了一個路徑,但也只是在當前 Shell 有效,一旦退出終端,再打開就會發現又失效了。

為避免上述問題,可采用讓其自動執行的方式配置腳本。

在每個用戶的 home 目錄中有一個 Shell 每次啟動時會默認執行一個配置腳本,用于初始化環境,包括添加一些用戶自定義環境變量等,如:zsh 的配置文件是 .zshrc,相應 Bash 的配置文件為 .bashrc ,它們在 etc 下還都有一或多個全局的配置文件,但一般只修改用戶目錄下的配置文件。

可采用下列命令直接添加內容到 .zshrc 中:echo "PATH=$PATH:絕對路徑" >> .zshrc

注:>> 表示將標準輸出以追加的方式重定向到一個文件中(> 是以覆蓋的方式重定向到一個文件中),在指定文件不存在的時會創建新的文件。

?

5.讓環境變量立即生效

?

在 Shell 中修改了一個配置腳本文件后,每次都要退出終端重新打開甚至重啟主機之后其才能生效,為避免麻煩,可以使用 source 命令來讓其立即生效。

命令格式:source 配置文件名

?

?

?

?

總結

以上是生活随笔為你收集整理的Linux 的 Shell 变量的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。