linux變量的分類

文章目錄

    • bash中的引號
    • linux變量的分類
      • 1.環境變量
      • 2.本地變量:
      • 3.局部變量
      • 4.內置變量
      • 5. 位置參數變量
      • 6. 特殊變量
    • 變量的定義規則
      • 8.數組

bash中的引號

雙引號"" :會把引號的內容當成整體來看待,允許通過 符號引用其他變量值單引 號 ′ ′ :會把引號的內容當成整體來看待,禁止引用其他變量值, s h e l l 中特殊符號都被視為普通字符反撇號 ‘ ‘ :反撇號和 符號引用其他變量值 單引號'' :會把引號的內容當成整體來看待,禁止引用其他變量值,shell中特殊符號都被視為普通字符 反撇號`` :反撇號和 符號引用其他變量值單引′′:會把引號的內容當成整體來看待,禁止引用其他變量值,shell中特殊符號都被視為普通字符反撇號‘‘:反撇號和()一樣,引號或括號里的命令會優先執行,如果存在嵌套,反撇號不能用

linux變量的分類

在Linux操作系統中,變量是用來存儲數據的一種方式,它們可以被用來存儲字符串、數字、文件路徑等。根據用途和類型,Linux中的變量可以分為以下幾類:

1.環境變量

環境變量是全局可用的變量,它們影響著系統的行為和程序的執行方式。環境變量可以進一步細分為以下兩種:
系統級環境變量
系統級環境變量是所有用戶共享的變量,通常定義在 /etc/profile 或 /etc/profile.d/*.sh 文件中。這些變量對整個系統生效,適用于所有登錄系統的用戶。
用戶級環境變量
用戶級環境變量僅對特定用戶有效,通常定義在用戶的家目錄下的配置文件中,例如 ~/.bash_profile 或 ~/.bashrc。這些變量會在用戶登錄時加載,并覆蓋系統級變量的值。

2.本地變量:

當前用戶自定義的變量。當前進程中有效,其他進程及當前進程的子進程無效,其作用范圍僅限于當前 Shell 會話。這類變量可以通過 export 命令導出為環境變量,從而使其在子進程中可用。例如

A="Hello World"
export A        

3.局部變量

局部變量的作用范圍僅限于定義它的腳本或函數內部。一旦腳本或函數結束,局部變量就會被銷毀。例如,在 Shell 腳本中定義的變量如果沒有使用export導出,則只在腳本內部有效。

4.內置變量

內置變量是由 Shell 提供的標準變量,用于存儲與Shell運行相關的狀態信息。例如:

$PATH:指定可執行文件的搜索路徑。
$HOME:表示當前用戶的主目錄。
$PS1:定義 Shell 提示符的格式。

5. 位置參數變量

位置參數變量用于傳遞命令行參數到腳本中。例如:

$0:表示腳本名稱。
$1, $2, …:表示傳遞給腳本的第一個、第二個參數等。
$#:表示傳遞給腳本的參數個數。
$*:腳本后面所有參數,參數當成一個整體輸出,每一個變量參數之間以空格隔開
$@: 腳本后面所有參數,參數是獨立的,也是全部輸出

6. 特殊變量

特殊變量是由Shell預定義的變量,用于存儲特定的信息。例如:

$$:表示當前Shell進程的 PID。
$?:上一條命令執行后返回的狀態,當返回狀態值為0時表示執行正常,非0值表示執行異常或出錯若退出狀態值為0,表示命令運行成功若退出狀態值為127,表示command not found若退出狀態值為126,表示找到了該命令但無法執行(權限不夠)若退出狀態值為1&2,表示沒有那個文件或目錄

變量的定義規則

1.默認情況下,shell里定義的變量是不分類型的,可以給變量賦與任何類型的值;等號兩邊不能有空格,對于有空格的字符串做為賦值時,要用引號引起來
變量名=變量值2.變量的獲取方式:	
$變量名     
${變量名}3.變量名區分大小寫	4.變量名可以是字母或數字或下劃線,但是不能以數字開頭或者特殊字符5.取消變量:     
unset  變量名6.命令的執行結果可以保存到變量
7.有類型變量 declare
-i 將變量看成整數 
-r 使變量只讀  readonly
-x 標記變量通過環境導出  export
-a	指定為索引數組(普通數組);查看普通數組
-A 指定為關聯數組;查看關聯數組

在這里插入圖片描述

8.數組

在Linux系統中,Bash shell 提供兩種類型的數組:普通數組和關聯數組。這兩種數組各有特點,適用于不同的場景。
普通數組
普通數組是基于索引的,索引通常是從0或1開始的,具體取決于你的設置。你可以使用整數作為索引來存儲和訪問數組元素。

1. 創建數組
方法1:使用括號
array=(1 2 3)
方法2:單獨賦值
array[0]=1
array[1]=2
array[2]=32. 訪問數組元素
訪問特定元素
echo ${array[0]}  # 輸出第一個元素
訪問所有元素
echo ${array[@]}  # 輸出所有元素
或者
echo ${array[*]}  # 輸出所有元素3. 獲取數組長度
echo ${#array[@]}  # 輸出數組長度
或者
echo ${#array[*]}  # 輸出數組長度4. 遍歷數組
for element in "${array[@]}"
doecho $element
done
或者使用索引遍歷:
for (( i=0; i<${#array[@]}; i++ ))
doecho ${array[i]}
done5. 刪除數組元素
unset array[2]  # 刪除索引為2的元素
或者刪除整個數組:
unset array6. 修改數組元素
array[1]=newElement  # 將索引為1的元素修改為newElement7. 在數組中添加元素
array+=([3]=5)  # 在數組末尾添加新元素或在指定位置添加元素,例如在索引3處添加5
或者使用+=操作符在末尾添加:
array+=(5)  # 在數組末尾添加58. 獲取數組的索引列表
echo ${!array[@]}  # 輸出所有索引號,例如0 1 2等

關聯數組
關聯數組(也稱為映射或字典)使用字符串作為索引來存儲元素。這使得它們非常適合存儲鍵值對。

1.創建和初始化關聯數組
在較新的 Bash 版本中(Bash 4.0及以上),你可以使用declare命令來聲明關聯數組。
# 聲明關聯數組
declare -A assoc_arr
# 初始化關聯數組
assoc_arr[key1]=value1
assoc_arr[key2]=value22.訪問關聯數組元素
echo ${assoc_arr[key1]}  # 輸出 value1
declare -A  #輸出declare -A assoc_arr='([key2]="value2" [key1]="value1" )'3.操作關聯數組
關聯數組還支持一些特殊的操作,比如列出所有鍵或值。
# 列出所有鍵
echo ${!assoc_arr[@]}  # 輸出 key1 key2 等所有鍵
# 列出所有值
echo ${assoc_arr[@]}   # 輸出 value1 value2 等所有值
echo ${assoc_arr[*]}   # 輸出 value1 value2 等所有值

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/908016.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/908016.shtml
英文地址,請注明出處:http://en.pswp.cn/news/908016.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

邏輯回歸知識點

一、邏輯回歸概念 邏輯回歸(Logistic Regression)是一種廣泛應用于分類問題的統計方法&#xff0c;尤其適用于二分類問題。 注意: 盡管名稱中有"回歸"二字&#xff0c;但它實際上是一種分類算法。 解決二分類的問題。 API&#xff1a;sklearn.linear_model.Logis…

GCC內存占用統計使用指南

GCC 的 --print-memory-usage 選項用于在編譯鏈接過程中輸出程序的內存占用統計信息&#xff0c;特別適用于嵌入式開發等內存受限的場景。其主要作用和輸出內容如下&#xff1a; 核心功能 顯示內存分段占用 輸出程序在目標設備內存中的分段占用情況&#xff0c;通常包括&#…

Vue3 + Typescript:類型使用記錄 / 類型注解 / 積累

一、ReturnType<typeof createApp> ReturnType<typeof createApp> 是一種類型安全的寫法&#xff0c;是 TypeScript 中的一個高級類型&#xff0c;它用于獲取函數 createApp 的返回類型。 實例&#xff1a; import registerFocus from ./focus // 獲取焦點 impo…

SIFT 算法原理詳解

SIFT 算法原理詳解 SIFT&#xff08;尺度不變特征變換&#xff0c;Scale-Invariant Feature Transform&#xff09;是一種經典的局部特征檢測和描述算法&#xff0c;它能夠在不同的尺度、旋轉和光照變化下穩定地檢測圖像特征。SIFT 主要包括以下幾個步驟&#xff1a;尺度空間極…

2024年認證杯SPSSPRO杯數學建模D題(第二階段)AI繪畫帶來的挑戰解題全過程文檔及程序

2024年認證杯SPSSPRO杯數學建模 D題 AI繪畫帶來的挑戰 原題再現&#xff1a; 2023 年開年&#xff0c;ChatGPT 作為一款聊天型AI工具&#xff0c;成為了超越疫情的熱門詞條&#xff1b;而在AI的另一個分支——繪圖領域&#xff0c;一款名為Midjourney&#xff08;MJ&#xff…

電子電路:全面深入了解晶振的定義、作用及應用

本次了解重點: 1.壓電效應的數學描述 2.生產工藝以及關鍵工序 3.電路設計部分如負阻原理和匹配電容計算 4.失效案例比如冷啟動問題 5.新形態晶振技術引入5G和量子計算 6.溫補晶振的補償機制 7故障案例講解-更換負載電池或增加預熱電路 藍牙音頻斷續-頻偏導致 工控機死機-起振電…

【Java實用工具類】手擼SqlBuilder工具類,優雅拼接動態SQL,MyBatisPlus同款風格!

&#x1f4cc; 正文&#xff1a; 有時候我們項目底層是 JdbcTemplate 查詢&#xff0c;沒法像 MyBatisPlus 一樣用 Wrapper 拼接條件&#xff0c;但我們又不想手擼字符串。那怎么辦&#xff1f;我今天就給你整了個 SqlBuilder 工具類&#xff0c;支持 eq、ne、like、in、gt、l…

WEB3——開發者怎么查看自己的合約日志記錄

在區塊鏈中查看合約的日志信息&#xff08;也叫事件 logs&#xff09;&#xff0c;主要有以下幾種方式&#xff0c;具體方法依賴于你使用的區塊鏈平臺&#xff08;如 Ethereum、BSC、Polygon 等&#xff09;和工具&#xff08;如 Etherscan、web3.js、ethers.js、Hardhat 等&am…

Maven-生命周期

目錄 1.項目對象模型 2.依賴管理模型 3.倉庫&#xff1a;用于存儲資源&#xff0c;管理各種jar包 4.本地倉庫路徑 1.項目對象模型 2.依賴管理模型 3.倉庫&#xff1a;用于存儲資源&#xff0c;管理各種jar包 4.本地倉庫路徑

redis數據過期策略

redis數據過期策略有兩種方案 1.惰性刪除 2.定期刪除 首先說惰性刪除&#xff0c;對于已經過期的數據&#xff0c;訪問這個key的時候判斷key是否過期&#xff0c;如果過期則刪除&#xff0c;這種方式對cpu友好&#xff0c;只有使用key的時候才會進行過期檢查&#xff0c;用不到…

P1040 [NOIP 2003 提高組] 加分二叉樹

目錄 題目算法標簽: 區間 d p dp dp, 動態規劃, d f s dfs dfs思路代碼 題目 P1040 [NOIP 2003 提高組] 加分二叉樹 算法標簽: 區間 d p dp dp, 動態規劃, d f s dfs dfs 思路 給出的是一顆子樹的中序遍歷, s c o r e l r r o o t score l \times r root scorelrro…

uni-app學習筆記十七-css和scss的使用

SCSS 和 CSS的異同點 我們可以使用css和scss來設置樣式。其中SCSS&#xff08;Sassy CSS&#xff09;是 CSS 預處理器 Sass&#xff08;Syntactically Awesome Stylesheets&#xff09;的一種語法格式&#xff0c;而 CSS&#xff08;Cascading Style Sheets&#xff09;是標準…

Spring Boot中Excel處理完全指南:從基礎到高級實踐

Excel處理基礎知識 1.1 為什么需要在應用中處理Excel文件&#xff1f; 在企業應用開發中&#xff0c;Excel文件處理是一個非常常見的需求&#xff0c;主要用于以下場景&#xff1a; 數據導入&#xff1a;允許用戶通過Excel上傳批量數據到系統 數據導出&#xff1a;將系統數據…

Python編程基礎(四) | if語句

引言&#xff1a;很久沒有寫 Python 了&#xff0c;有一點生疏。這是學習《Python 編程&#xff1a;從入門到實踐&#xff08;第3版&#xff09;》的課后練習記錄&#xff0c;主要目的是快速回顧基礎知識。 練習1&#xff1a;條件測試 編寫一系列條件測試&#xff0c;將每個條…

使用pandas實現合并具有共同列的兩個EXCEL表

表1&#xff1a; 表2&#xff1a; 表1和表2&#xff0c;有共同的列“名稱”&#xff0c;而且&#xff0c;表1的內容&#xff08;行數&#xff09;<表2的行數。 目的&#xff0c;根據“名稱”列的對應內容&#xff0c;將表2列中的“所處行業”填寫到表1相應的位置。 實現代…

ERP學習-AP

業務需要。持續更新學習進度 借助網上零搭建平臺上手實操 這個是簡道云平臺頁面鏈接&#xff0c;登錄的化去手機號登錄 目前開始對應付模塊進行學習

Dify知識庫下載小程序

一、Dify配置 1.查看或創建知識庫的API 二、下載程序配置 1. 安裝依賴resquirements.txt ######requirements.txt##### flask2.3.3 psycopg2-binary2.9.9 requests2.31.0 python-dotenv1.0.0#####安裝依賴 pip3 install -r requirements.txt -i https://pypi.tuna.tsinghua.…

【PbstarAdmin】微前端架構下的高效后臺管理系統解決方案

如果你正在尋找一個高效、穩定、易于使用、易于擴展的管理后臺解決方案&#xff0c;PbstarAdmin 絕對值得一試。以下是它的在線演示和官方文檔地址&#xff0c;你可以先睹為快&#xff1a; 在線演示&#xff1a;http://pbstar-admin.pbstar.cn/官方文檔&#xff1a;http://pbs…

Java基礎之數組(附帶Comparator)

文章目錄 基礎概念可變參數組數組與ListComparator類1,基本概念2,使用Comparator的靜態方法&#xff08;Java 8&#xff09;3,常用Comparator方法4,例子 排序與查找數組復制其他 基礎概念 int[] anArray new int[10];只有創建對象時才會使用new關鍵字&#xff0c;所以數組是個…

Apache Doris 在數據倉庫中的作用與應用實踐

在當今數字化時代&#xff0c;企業數據呈爆炸式增長&#xff0c;數據倉庫作為企業數據管理和分析的核心基礎設施&#xff0c;其重要性不言而喻。而 Apache Doris&#xff0c;作為一款基于 MPP&#xff08;Massively Parallel Processing&#xff0c;大規模并行處理&#xff09;…