課時136:變量進階_變量實踐_高級賦值

2 變量進階

2.1 變量實踐

2.1.1 高級賦值

學習目標

這一節,我們從 基礎知識、簡單實踐、小結 三個方面來學習

基礎知識

簡介

	所謂的高級賦值,是另外的一種變量值獲取方法,這里涉及到更多我們學習之外的一些shell內置變量格式,其實這部分的內容主要還是在字符串的基礎上,如何更精細的獲取特定的信息內容:主要涉及到的內容樣式如下:
字符串截取按分隔符截取: # 右  % 左${file#/}	   	刪除匹配結果,保留第一個/右邊的字符串${file##/}		刪除匹配結果,保留最后一個/右邊的字符串${file%/}		刪除匹配結果,保留第一個/左邊的字符串${file%%/}		刪除匹配結果,保留最后一個/左邊的字符串注意:匹配內容的正則表達式,盡量不要出現特殊邊界字符
字符串替換${file/dir/path}	把第一個dir替換成path:/path1/dir2/dir3/n${file//dir/path}	把所有dir替換成path:/path1/path2/path3/n${file/#dir/path} 	將從左側能匹配到的dir,則替換成 path 然后返回;否則直接返回 ${var}。${file/%dir/path} 	將從右側能匹配到的dir,則替換成 path 然后返回;否則直接返回 ${var}。注意:如果匹配內容使用的是正則符號,應該注意正則符號的寫法
字符串轉換${file^^}		把file中的所有小寫字母轉換為大寫${file,,}		把file中的所有大寫字母轉換為小寫

簡單實踐

實踐1-字符串截取

字符串截取示例
[root@localhost ~]# string=abc12342341
[root@localhost ~]# echo ${string#a*3}
42341
[root@localhost ~]# echo ${string#c*3}
abc12342341
[root@localhost ~]# echo ${string#*c1*3}
42341
[root@localhost ~]# echo ${string##a*3}
41
[root@localhost ~]# echo ${string%3*1}
abc12342
[root@localhost ~]# echo ${string%%3*1}
abc12
字符串截取賦值
[root@localhost ~]# file=/var/log/nginx/access.log
[root@localhost ~]# filename=${file##*/}
[root@localhost ~]# echo $filename
access.log
[root@localhost ~]# filedir=${file%/*}
[root@localhost ~]# echo $filedir
/var/log/nginx

實踐2-字符串替換

字符串替換示例
[root@localhost ~]# str="apple, tree, apple tree, apple"
[root@localhost ~]# echo ${str/apple/APPLE}
APPLE, tree, apple tree, apple
[root@localhost ~]# echo ${str//apple/APPLE}
APPLE, tree, APPLE tree, APPLE
[root@localhost ~]# echo ${str/#apple/APPLE}
APPLE, tree, apple tree, apple
[root@localhost ~]# echo ${str/%apple/APPLE}
apple, tree, apple tree, APPLE使用正則的情況下,代表盡可能多的匹配
[root@localhost ~]# file=dir1@dir2@dir3@n.txt
[root@localhost ~]# echo ${file/#d*r/DIR}
DIR3@n.txt
[root@localhost ~]# echo ${file/%3*/DIR}
dir1@dir2@dirDIR

實踐3-字符串轉換

[root@localhost ~]# str="apple, tree, apple tree, apple"
[root@localhost ~]# upper_str=${str^^}
[root@localhost ~]# echo ${upper_str}
APPLE, TREE, APPLE TREE, APPLE
[root@localhost ~]# lower_str=${upper_str,,}
[root@localhost ~]# echo ${lower_str}
apple, tree, apple tree, apple

小結


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

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

相關文章

飛雞:從小訓練飛行的雞能飛行嗎?為什么野雞能飛嗎?是同一品種嗎?今天自由思考

雞的飛行能力在很大程度上受到其生理結構的限制。盡管雞有翅膀,但與能夠長時間飛行的鳥類相比,雞的翅膀相對較小,且胸部肌肉較弱。再加上雞的身體較重,這些因素共同限制了雞的飛行能力。通常,雞只能進行短暫的、低空的…

【wiki知識庫】01.wiki知識庫前后端項目搭建(SpringBoot+Vue3)

📝個人主頁:哈__ 期待您的關注 🌼環境準備 想要搭建自己的wiki知識庫,要提前搭建好自己的開發環境,后端我使用的是SpringBoot,前端使用的是Vue3,采用前后端分離的技術實現。同時使用了Mysql數…

C++ vector,dequeu,list容器中元素的引用失效問題

文章目錄 一、std::list不會產生引用失效問題二、std::vector中元素引用失效問題三、std::deque中元素引用失效問題 一、std::list不會產生引用失效問題 在C中,std::list(雙向鏈表)提供了一種非常靈活的容器類型,其設計使其在插入…

微信小程序的事件對象屬性,事件綁定

微信小程序 小程序簡介 1 小程序與普通網頁開發的區別? 1運行環境的不同:網頁運行在瀏覽器,小程序運行在微信環境; 2.API 不同:小程序無法調用 DOM 和 BOM 的 API,但可以調用微信環境提供的 API&#xff1…

單工無線發射接收系統

1 緒論 隨著無線電技術的發展,通訊方式也從傳統的有線通訊逐漸轉向無線通訊。由于傳統的有線傳輸系統有配線的問題,較不便利,而無線通訊具有成本廉價、建設工程周期短、適應性好、擴展性好、設備維護容易實現等特點,故未來通訊方式將向無線傳輸系統方向發展。同時,實現系…

mfc140.dll丟失原因和mfc140.dll丟失修復辦法分享

mfc140.dll是與微軟基礎類庫(Microsoft Foundation Classes, MFC)緊密相關的動態鏈接庫(DLL)文件。MFC是微軟為C開發者設計的一個應用程序框架,用于簡化Windows應用程序的開發工作。以下是mfc140.dll文件的一些關鍵屬性…

棧的實現(C語言)

文章目錄 前言1.棧的概念及結構2.棧的實現3.具體操作3.1.初始化棧(StackInit)和銷毀棧(StackDestory)3.2.入棧(StackPush)和出棧(StackPop)3.3.獲得棧的個數(StackSize)、獲得棧頂元素(StackTop)以及判空(StackEmpty) 前言 前段時間我們學習過了鏈表和順序表等相關操作&#x…

go-zero 實戰(4)

中間件 在 userapi 項目中引入中間件。go項目中的中間可以處理請求之前和之后的邏輯。 1. 在 userapi/internal目錄先創建 middlewares目錄,并創建 user.go文件 package middlewaresimport ("github.com/zeromicro/go-zero/core/logx""net/http&q…

經濟寒冬下的黃金跳板:方案、活動、競標一手掌握

推薦策劃人必備的寶藏地產策劃資源平臺, 訂閱浩叫:地產營銷策劃圈。這個平臺簡直是地產策劃人的百寶箱,里面藏著無數的策劃秘籍,等著你來挖掘。 這個平臺就像是一個大型的方案庫,里面收錄了眾多知名地產企業的內部資料…

leetcode:計數質數

class Solution { public:// 如果 x 是質數&#xff0c;那么大于 x 的 x 的倍數 2x,3x… 一定不是質數int countPrimes(int n) {vector<int> isPrime(n, 1);int ans 0;for (int i 2; i < n; i) {if (isPrime[i]) {ans 1;if ((long long)i * i < n) {for (int j …

leetcode-55 跳躍游戲

leetcode Problem: 55. 跳躍游戲 思路 假設我們是一個小人&#xff0c;從第一個下標開始&#xff0c;每次經過一個位置&#xff0c;我們就可以根據當前位置的數值nums[i]和位置下標i計算出該位置所能到達的后續位置的最大值rnums[i]i。而這個r之前的區域一定都是可以經過的。…

AI 談“潯川AI翻譯機”

在天工AI&#xff0c;天工AI在全網搜索“潯川AI翻譯機”。 1 創作助手談“潯川AI翻譯機”&#xff1a; “潯川AI翻譯機”是一個利用人工智能技術進行語言翻譯的設備或應用程序。它可以將一種語言的文字或口語翻譯成另一種語言&#xff0c;以實現不同語言之間的溝通和理解。潯…

08. Redis 緩存穿透和雪崩

文章目錄 1. 緩存穿透&#xff08;查不到導致的&#xff09;1.1 概念1.2 解決方案布隆過濾器緩存空對象 2. 緩存擊穿&#xff08;量太大、緩存過期&#xff09;2.1 概念2.2 解決方案設置熱點數據永不過期加互斥鎖 3. 緩存雪崩&#xff08;緩存集體失效或 Redis 宕機&#xff09…

說一下你對dom驅動和數據驅動的理解

DOM驅動和數據驅動是前端開發中兩種常見的操作方式&#xff0c;尤其在構建用戶界面時。下面&#xff0c;我將分別解釋這兩種驅動方式&#xff0c;并提供詳細的代碼示例。 DOM驅動 DOM驅動的核心思想是直接操作DOM元素來更新用戶界面。在早期的Web開發中&#xff0c;這種方式非…

Linux指令初識

ls:顯示當前目錄底下的指定文件或目錄 ls -l更詳細的信息 ls -a顯示當前目錄下的所有文件 命令中的選項可以一次傳遞多個 ,例如&#xff1a;ls -al 命令和選項有必須一個或多個空格 以.開頭的文件&#xff0c;為隱藏文件ls -a可以看到,ls -l看不見 支持命令拼在一起&#…

牛客熱題:滑動窗口的最大值

&#x1f4df;作者主頁&#xff1a;慢熱的陜西人 &#x1f334;專欄鏈接&#xff1a;力扣刷題日記 &#x1f4e3;歡迎各位大佬&#x1f44d;點贊&#x1f525;關注&#x1f693;收藏&#xff0c;&#x1f349;留言 文章目錄 牛客熱題&#xff1a;滑動窗口的最大值題目鏈接方法一…

DNS服務的部署與配置(2)

1、dns的安裝及開啟 dnf install bind.x86_64 -y #安裝 #Berkeley Internet Name Domain (BIND) systemctl enable --now named #啟用dns服務&#xff0c;服務名稱叫named firewall-cmd --permanent --add-servicedns #火墻設置 firewall-cmd --reload …

【手把手搓組件庫】從零開始實現Element Plus--組件開發

從零開始實現Element Plus--組件開發 nvmnvm的作用&#xff1a;nvm的使用方法 需求分析提示詞Kimi 生成產品需求文檔kimi 生成測試用例 初始化 vitest完善 Button 組件1、定義 types.ts2、Button.vue 引入 types.ts3、添加Button樣式點擊事件 添加節流添加 Icon 集成 StoryBook…

C++第十九彈---string模擬實現(下)

?個人主頁&#xff1a; 熬夜學編程的小林 &#x1f497;系列專欄&#xff1a; 【C語言詳解】 【數據結構詳解】【C詳解】 目錄 1、修改操作 2、迭代器操作 3、字符串操作 4、非成員函數重載操作 總結 1、修改操作 1、string& operator (const char* s); //尾部插入…

【Text2SQL 論文】SeaD:使用 Schema-aware 去噪訓練的 end2end 的 Text2SQL

論文&#xff1a;SeaD: End-to-end Text-to-SQL Generation with Schema-aware Denoising ?? NAACL 2022, arXiv:2105.07911 本論文提出 SeaD 模型&#xff0c;使用 schema-aware 的去噪方法來訓練一個 end2end、seq2seq 的 Transformer 模型來實現 Text2SQL。 一、論文速讀…