第三節SHELL腳本中的變量與運算(1.1-1.5)

一,腳本中的變量
1,1什么是變量
  • 在編寫程序是,通常會遇到被操作對象不固定的情況
  • 我們需要用一串固定的字符來的表示不固定的值,這就是變量存在的根本意義
  • 變量的實現原理就是內存存儲單元的一個符合名稱
1,2 變量的命名規則

變量的名稱中只能包含數字,大小寫字母以及下劃線

變量的名稱只能用大小寫字母及下劃線開頭

同一名稱變量在多此被賦值時為覆蓋動作

在企業代碼規范化中變量的命名規則如下

#簡短全大寫變量名
OPENLAB
#首字母大寫子類變量名
Openlab_Shell
#駝峰類型變量
kubernetes_Api
1,3變量的調用方法
$EASYLEE #表示取$EASYLEE這個變量的值
EASYLEE=1
echo $EASYLEE
#系統彈出
1

[!note]

  • 如果我們表示1b
    • $EASYLEEb 這個變量調用方式是使用EASYLEEb這串字符變量的值
    • ${EASYLEE}b 如果需要在字符串中特別說明那些字符表示變量那些字符不是,需要變量聲明 ${}
  • 查看系統中的所有變量可以使用env
  • 查看系統中所有變量或函數可以使用set命令或declare
1,4字符的轉義及引用
  • 在shel中很多本身有特殊的字符,比如空格井號等等
  • 如果在變量賦值或執行命令使用我們只想使用這些符號本身就需要用轉義或引用
  • 在shell中反斜杠表示轉義,每個反斜杠只能轉義一個字符
  • 在shell中單引號表示強引用,我們可以把它看作批量轉義,在單引號內的所有字符都被視為字符本身
  • 在shell中雙引號表示弱引用,其和單引號的區別在于不能引用(`,,!,$)

代碼示例如下

echo \#
#系統輸出
#
#結束echo \# #
#echo \# \#
# #echo"# #"
# #
echo "$5"echo '$5'
$5
1,5變量的類型

從變量的作用范圍劃分,變量分為函數級變量,環境級變量,用戶級變量和系統變量

函數級變量只在函數內生效通常用local來定義

vim test.sh
#在vim
#!/bin/bash
ACTION(){
local a=1
echo $a
}
ACTION()
echo $a
#sh test.sh
1
#第二號顯示為空

環境級變量只在在當前運行的shell中生效,shell關閉變量被釋放

export a=1
vim test.sh
#在vim
#!/bin/bash
echo $a
#:wq
sh test.sh
顯示為空

用戶級變量只有登錄系統的指定用戶,此變量才生效

useradd lee
vim ~lee/.bash_profile
#在vim中
export a=1
#:wq
vim /mnt/test.sh
sh	/mnt/test.sh
#系統彈出
1

[!note]

在系統中通常設置系統變量是編輯文件更安全

文件修改完需要用source命令使其生效

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

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

相關文章

PySide在Qt Designer中使用QTableView 顯示表格數據

在 PySide6 中,可以使用 Qt Model View 架構中的 QTableView 部件來顯示和編輯表格數據。 1、創建ui文件 在Qt Designer中新建QMainWindow,命名為csvShow.ui。QMainWindow上有兩個部件:tableview和btn_exit。 2、使用pyuic工具將ui文件轉換為…

Kafka(四) Consumer消費者

一,基礎知識 1,消費者與消費組 每個消費者都有對應的消費組,不同消費組之間互不影響。 Partition的消息只能被一個消費組中的一個消費者所消費, 但Partition也可能被再平衡分配給新的消費者。 一個Topic的不同Partition會根據分配…

MySQL集群、Redis集群、RabbitMQ集群

一、MySQL集群 1、集群原理 MySQL-MMM 是 Master-Master Replication Manager for MySQL(mysql 主主復制管理器)的簡稱。腳本)。MMM 基于 MySQL Replication 做的擴展架構,主要用來監控 mysql 主主復制并做失敗轉移。其原理是將真…

環境變量在Gradle中的妙用:構建自動化的秘訣

環境變量在Gradle中的妙用:構建自動化的秘訣 在構建自動化的過程中,環境變量扮演著至關重要的角色。它們允許開發者根據不同的運行環境(如開發、測試和生產環境)來調整配置,而無需修改代碼。Gradle,作為一…

基于Faster R-CNN的安全帽目標檢測

基于Faster R-CNN的安全帽目標檢測項目通常旨在解決工作場所,特別是建筑工地的安全監管問題。這類項目使用計算機視覺技術,特別是深度學習中的Faster R-CNN算法,來自動檢測工人是否正確佩戴了安全帽,從而確保遵守安全規定并減少事…

實驗一:圖像信號的數字化

目錄 一、實驗目的 二、實驗原理 三、實驗內容 四、源程序及結果 源程序(python): 結果: 五、結果分析 一、實驗目的 通過本實驗了解圖像的數字化過程,了解數字圖像的數據矩陣表示法。掌握取樣(象素個…

用Python爬蟲能實現什么?得到什么?

Python爬蟲是一種強大的工具,可以用來自動化地從互聯網上抓取數據和信息。使用Python實現爬蟲可以達成多種目的,包括但不限于以下幾個方面: 數據收集: 網頁內容抓取:可以抓取網頁上的文本、圖片、視頻等內容。搜索引擎…

Linux 網絡配置與連接

一、網絡配置 1.1 ifconfig 網卡配置查詢 ifconfig #查看所有啟動的網絡接口信息 ifconfig 指定的網卡 #查看指定網絡接口信息 1.2 修改網絡配置文件 vim /etc/sysconfig/network-scripts/ifcfg-ens33 #ens33網絡配置文…

【電源拓撲】反激拓撲

目錄 工作模式 固定頻率 CCM連續電流模式 DCM不連續電流模式 可變頻率 CRM電流臨界模式 反激電源CRM工作模式為什么要跳頻 反激電源應用場景 為什么反激電源功率做不大 電感電流爬升 反激變壓器的限制條件 精通反激電源設計的關鍵-反激電源變壓器設計 反激電源變壓…

MySQL 事務與鎖

事務ACID特性 原子性:事務要么同時成功,要么同時失敗,事務的原子性通過undo log日志保證 一致性:業務代碼要拋出報錯,讓數據庫回滾 隔離性:事務并發執行時,他們內部操作不能互相干擾 持久性&…

Python 讀取esxi上所有主機的設備信息

(主要是為了統計所有虛擬機的設備名稱和所屬主機) 代碼: from pyVim import connect from pyVmomi import vim import ssldef get_vm_devices(vm):devices []try:if vm.config is not None and hasattr(vm.config, hardware) and hasattr(v…

SpringBoot解決Apache Tomcat輸入驗證錯誤漏洞

Apache Tomcat是美國阿帕奇(Apache)基金會的一款輕量級Web應用服務器。該程序實現了對Servlet和JavaServer Page(JSP)的支持。 Apache Tomcat存在輸入驗證錯誤漏洞,該漏洞源于HTTP/2請求的輸入驗證不正確,會…

postgresql簡單導出數據與手動本地恢復(小型數據庫)

問題 需要每天手動備份postgresql。 步驟 導出數據 /opt/homebrew/opt/postgresql16/bin/pg_dump --file/Users/zhangyalin/backup_sql/<IP地址>_pg-2024_07_15_17_30_15-dump.sql --dbname<數據庫名> --username<用戶名> --host<IP地址> --port54…

Day53:圖論 島嶼數量 島嶼的最大面積

99. 島嶼數量 時間限制&#xff1a;1.000S 空間限制&#xff1a;256MB 題目描述 給定一個由 1&#xff08;陸地&#xff09;和 0&#xff08;水&#xff09;組成的矩陣&#xff0c;你需要計算島嶼的數量。島嶼由水平方向或垂直方向上相鄰的陸地連接而成&#xff0c;并且四周…

低空經濟持續發熱,無人機培訓考證就業市場及前景剖析

隨著科技的不斷進步和社會需求的日益增長&#xff0c;低空經濟已成為全球及我國經濟增長的新引擎。作為低空經濟的重要組成部分&#xff0c;無人機技術因其廣泛的應用領域和顯著的經濟效益&#xff0c;受到了社會各界的廣泛關注。為滿足市場對無人機人才的需求&#xff0c;無人…

深入剖析 Android 開源庫 EventBus 的源碼詳解

文章目錄 前言一、EventBus 簡介EventBus 三要素EventBus 線程模型 二、EventBus 使用1.添加依賴2.EventBus 基本使用2.1 定義事件類2.2 注冊 EventBus2.3 EventBus 發起通知 三、EventBus 源碼詳解1.Subscribe 注解2.注冊事件訂閱方法2.1 EventBus 實例2.2 EventBus 注冊2.2.1…

夢想CAD在線預覽編輯功能

1.最近有個需求&#xff0c;在web系統里進行在線進行CAD預覽和編輯&#xff0c;這里用的是夢想CAD實現此功能&#xff0c;夢想CAD官網文檔 2.CAD預覽&#xff0c;需要需要對CAD文件格式進行轉化&#xff0c;將dwg文件格式轉化為mxweb格式&#xff0c;再進行調用夢想CAD里的打開…

ipynb轉換為pdf、Markdown(.md)

Jupyter Notebook 文件&#xff08;.ipynb&#xff09;可以轉換成多種數據格式&#xff0c;以適應不同的使用場景和需求。以下是幾種常見的轉換格式及其簡潔描述&#xff1a; HTML: Jupyter Notebook可以直接導出為靜態的網頁&#xff08;HTML&#xff09;格式&#xff0c;這樣…

記一次IP數據處理過程,文本(CSV文件)處理,IP解析

個人博客&#xff1a;無奈何楊&#xff08;wnhyang&#xff09; 個人語雀&#xff1a;wnhyang 共享語雀&#xff1a;在線知識共享 Github&#xff1a;wnhyang - Overview 起因 突然接收到XX給的任務&#xff0c;要將一批IP數據處理一下&#xff0c;將IP對應的省市區解析出來…

PHP基礎語法

PHP 腳本在服務器上執行&#xff0c;然后將純 HTML 結果發送回瀏覽器。 基本的 PHP 語法 PHP 腳本可以放在文檔中的任何位置。 PHP 腳本以 <?php 開始&#xff0c;以 ?> 結束&#xff1a; <?php // PHP 代碼 ?> PHP 文件的默認文件擴展名是 .php。 PHP 文…