從零學習Linux操作系統第二十七部分 shell腳本中的變量

一、什么是變量

變量的定義

定義本身
變量就是內存一片區域的地址

變量存在的意義
命令無法操作一直變化的目標
用一串固定的字符來表示不固定的目標可以解決此問題

二、變量的類型及命名規范

環境級別
export A=1
在環境關閉后變量失效
在這里插入圖片描述

退出后 關閉
在這里插入圖片描述

用戶級別(永久的設定變量)
vim ~/.bash_profile
export A=1

在這里插入圖片描述
source ~/.bash_profile 生效

在這里插入圖片描述

系統級別(所有的用戶都可以讀取到這個變量)
vim /etc/profile
export A=1
vim /etc/profile.d/A.sh
export B=3

在這里插入圖片描述
此時用其他用戶也可以生效
在這里插入圖片描述

變量名稱

變量名稱可包含的字符
字母
下劃線_
數字

變量名稱定義規則
不能用數字開頭

建議:
變量名稱短全用大寫字符
變量名稱長用_區分子類
WESTOS
Westos_Linux
westoS_Linux

三、變量的轉譯聲明及數組

1)轉譯

\ #轉譯單個字符

在這里插入圖片描述

有多少個特殊字符就有多少個斜杠

" " #弱引用,批量轉譯個數字符 不能轉譯"\ " “” “$” “!”
’ ’ #強引用

2)聲明

a=1
echo $ab
echo ${a}b
在這里插入圖片描述

3)變量的數組

a=(1 2 3 4 5)
a$[a[@]:起始元素id:元素個數]
echo ${a[0]} ##數組中第一個元素
echo ${a[1]} ##數組中最后一個元素
echo ${a[*]} ##數組中所有元素
echo ${a[@]} ##數組中所有元素
echo ${a[@]:0:3} ##數組中13個元素
echo ${#a[@]} ##數組中元素的個數
unset a[n] ##刪除數組中的第n1個元素
unset a ##刪除a這個數組
在這里插入圖片描述

四、命令別名及用戶環境的設定

查看命令的別名
alias
在這里插入圖片描述
永久設定命令別名
編輯配置文件
vim ~/.bashrc
在這里插入圖片描述
source ~/.bashrc 使之生效

在這里插入圖片描述
在這個文件內編輯的只是當前的用戶可以使用
若使在全體用戶中可以使用則
編輯系統級的配置文件
vim /etc/bashrc
在這里插入圖片描述
source /etc/bashrc 使之生效

若要刪除這個命令別名
需將系統級和用戶級的配置文件中的命令別名刪掉
并且執行
unalias xie 刪除當前環境中的alias

用戶環境變量的更改
用戶級:編輯配置文件
vim ~/.bash_profile
在這里插入圖片描述
在這里插入圖片描述
系統級:編輯配置文件
vim /etc/profile.d/path.sh
在這里插入圖片描述

五、變量的高級用法

1)直接利用命令執行結果

$()| ##優先執行
或者··
在這里插入圖片描述

2)腳本中的傳參

傳參:將腳本外部的內容傳遞給腳本內部

非交互模式:

創建一個腳本
vim westos.sh
在這里插入圖片描述

在這里插入圖片描述

交互式

編輯一個腳本
vim westos1.sh
在這里插入圖片描述
在這里插入圖片描述

七、腳本函數

定義:
程序的別名(腳本當中的腳本就叫函數)

先編輯一個腳本
vim westos2.sh
在這里插入圖片描述
ACTION 是一個函數
也就是腳本當中的腳本

相當于是給ACTION賦了一個值,而這個值是命令腳本在這里插入圖片描述

練習腳本

sh create_user.sh
Please input username: westos
westos exist> westos is exist>Please input username:
westos not existplease input password: 無回顯密碼
此用戶會自動建立并且密碼為提示后設定的密碼
并顯示:westos is created
并再次提示Please input username:
當Please input username:exit
此腳本退出

在這里插入圖片描述

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

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

相關文章

《初階數據結構》尾聲

目錄 前言: 《快速排序(非遞歸)》: 《歸并排序》: 《歸并排序(非遞歸)》: 《計數排序》: 對于快速排序的優化: 分析: 總結: 前言&#xff1a…

新疆營盤古城及古墓群安防艙體實施方案

3 總體布局 3.1設計原則 3.1.1執行有效的國家標準、國家軍用標準和行業標準; 3.1.2滿足指標要求; 3.1.3采用通用化、模塊化設計,提高設備可維修性; 3.1.4采用人機工程學知識進行設計,充分考慮安全性。 3.2 總體…

Double-DQN算法

Double-DQN算法的原理簡介、與DQN對比等。 參考深度Q網絡進階技巧 1. 原理簡介 在DQN算法中,雖然有target_net和eval_net,但還是容易出現Q值高估的情況,原因在于訓練時用通過target_net選取最優動作 a ? argmax ? a Q ( s t 1 , a ; w…

51單片機學習(3)-----獨立按鍵控制LED的亮滅狀態

前言:感謝您的關注哦,我會持續更新編程相關知識,愿您在這里有所收獲。如果有任何問題,歡迎溝通交流!期待與您在學習編程的道路上共同進步了。 目錄 一. 器件介紹及實驗原理 1.獨立按鍵 (1)獨…

react 實現路由攔截

簡單介紹下項目背景,我這里做了一個demo,前端使用mock數據,然后實現簡單的路由攔截,校驗session是否包含用戶作為已登錄的依據,react-router-dom是v6。不像vue可以設置登錄攔截beforeenter,react需要我們自…

外包干了3個月,技術退步明顯

先說一下自己的情況,本科生,19年通過校招進入廣州某軟件公司,干了接近4年的功能測試,今年年初,感覺自己不能夠在這樣下去了,長時間呆在一個舒適的環境會讓一個人墮落!而我已經在一個企業干了四年的功能測試…

Linux之用戶和用戶組的深入了解

目錄 一、簡介 1.1、用戶: 1.2、用戶組 1.3、UID和GID 1.3、用戶賬戶分類 查看用戶類別 超級用戶root(0) 程序用戶(1~499) 普通用戶(500~65535) 二、用戶 2.1、添加新的用戶賬號:useradd 2.2、刪除賬號:userdel 有-r與沒有-r區別…

OSDI 2023: Hyrax Fail-in-Place Server Operation in Cloud Platforms

我們使用以下6個分類標準對本文的研究選題進行分析: 1. 硬件故障類型 DRAM: 此類別涉及研究如何處理內存相關的錯誤。這包括單比特錯誤,使用傳統 ECC 進行校正,以及需要冗余、修復技術或隔離故障內存區域的更廣泛的故障。磁盤: 此處研究將解決存儲故障,尤其是 SSD 中的故障…

運維07:堡壘機

什么是跳板機 跳板機就是一臺服務器而已,運維人員在使用管理服務器的時候,必須先連接上跳板機,然后才能去操控內網中的服務器,才能登錄到目標設備上進行維護和操作 開發小張 ---> 登錄跳板機 ---> 再登錄開發服務器 測試…

貸齊樂系統最新版SQL注入(無需登錄繞過WAF可union select跨表查詢)

一、環境 已上傳資源(daiqile) 二、代碼解釋 1.1Request 不管get請求還是post請求都可以接收到 1.2過濾的還挺多 1.3第二個WAF把數據分為兩個了一個Key一個value,全是explode的功勞 1.4submit是if進入的前提 很明顯走進來了 1.5那我們在這…

學習JAVA的第三天(基礎)

目錄 流程控制語句 順序結構 分支結構 循環結構 分類: 練習 跳轉控制語句 練習 數組 數組介紹 數組的定義和靜態初始化 數組定義 數組的靜態初始化 數組元素訪問 數組遍歷 數組動態初始化 JAVA內存分配 流程控制語句 順序結構 是Java程序默認的執行流程…

UIKit 在 UICollectionView 中拖放交換 Cell 視圖的極簡實現

概覽 UIKit 中的 UICollectionView 視圖是我們顯示多列集合數據的不二選擇,而豐富多彩的交互操作更是我們選擇 UICollectionView 視圖的另一個重要原因。 如上圖所示:我們實現了在 UICollectionView 中拖放交換任意兩個 Cell 子視圖的功能,這…

js如何判斷一個對象中某一個屬性存在并且有值

在JavaScript中,可以使用不同的方法來判斷一個對象中某個屬性是否存在并且有值。以下是幾種常見的方法: 1、使用hasOwnProperty()方法:該方法用于檢查對象是否具有指定的屬性。可以通過以下方式來判斷屬性是否存在并且有值: if (…

整理了去年的一些運維面試題一

Ingress的yaml文件需要包含哪些? CICD搭建流程? JAVA程序打包工具? 如何檢測Linux端口如何通信? k8s集群之間如何通信的? docker組成部分? 20位掩碼有多少主機IP? 在linux中四個T的硬盤使用什…

Zabbix 遠程監控主機

目錄 1、安裝 Zabbix 安裝客戶端 服務端測試通訊 Web頁面添加主機 2、監控 Nginx 自定義腳本監控 Nginx web配置臺 3、監控 MySQL 配置模版文件 配置Web界面 1、安裝 Zabbix node-12 作為zabbix的被監控端,提供mysql服務器,配置zabbix監控node…

jquery寫組件滑動人機驗證組件

jquery組件,雖然 jquery 語法古老,但是寫好了用起來真的很爽啊,本文用滑動人機驗證給大家做個詳細教程(直接復制代碼就可以用噢o(* ̄▽ ̄*)ブ) 第一步 先看下組件本身 component.js (function() {…

Nginx網絡服務三-----(三方模塊和內置變量)

1.驗證模塊 需要輸入用戶名和密碼 我們要用htpasswd這個命令,先安裝一下httpd 生成文件和用戶 修改文件 訪問頁面 為什么找不到頁面? 對應的路徑下,沒有這個文件 去創建文件 去虛擬機瀏覽器查看 有的頁面不想被別人看到,可以做…

【UI自動化】使用poco框架進行元素唯一定位

直接選擇: 1.poco(text買入).click() 2.poco("android.widget.ImageView").click()相對選擇、空間選擇: 3.poco(text/name).parent().child()[0].click()正則表達式: 4.listpoco(textMatches".*ETF")今天主要想記錄下…

centos 系統盤 放到 win pc 中的異常解決

有一塊 2.5 480g sata ssd,之前是筆記本電腦的centos系統盤,后來沒用了,打算掛到臺式機上當下載盤。臺式機pc的主板是華碩 h610m-a。 難點一: 因為臺式pc上已經掛了兩塊3.5 hdd,發現sata的電源線都在3.5hdd附近&#…

利用RBI(Remote Browser Isolation)技術訪問ChatGPT

系統組網圖 #mermaid-svg-Bza2puvd8MudMbqR {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-Bza2puvd8MudMbqR .error-icon{fill:#552222;}#mermaid-svg-Bza2puvd8MudMbqR .error-text{fill:#552222;stroke:#552222;…