網站首頁 編程語言 正文
大小寫轉化
# 把變量中的第一個字符換成大寫 ${test^} # 把變量中的所有小寫字母,全部替換為大寫 ${test^^} # 把變量中的第一個字符換成小寫 ${test,} # 把變量中的所有大寫字母,全部替換為小寫 ${test,,}
示例
#!/bin/bash # script file name is test.sh test="abcDEF" echo "test^=${test^}" echo "test^^=${test^^}" echo "test,=${test,}" echo "test,,=${test,,}"
獲取字符串長度
${#string}
替換
整體替換
# 若變量var為空,則用string來替換此處的值,最常用。 ${var:-string} # 若變量var為空,則用string來替換此處的值,把string賦給變量var。 ${var:=string} # 若變量var不為空,則用string來替換此處的值。 ${var:+string} # 若變量var不為空,則用string來替換此處的值; # 若變量var為空,則把string輸出到標準錯誤中,并從腳本中退出。 # 常用利用此特性來檢查是否設置了變量的值。 ${var:?string}
部分替換
# 只替換第1個子串 ${var/old/new} # 替換全部子串 ${var//old/new}
截取
# 從string字符串的左邊第start個字符開始(不包含第start個字符),向右截取到最后,start從0開始; ${string:start} # 從string字符串的左邊第start個字符開始(不包含第start個字符),向右截取length個字符; ${string:start:length} # 從string字符串的右邊第start個字符開始(包含第start個字符),向右截取到最后,start從1開始; ${string:0-start} # 從string字符串的右邊第start個字符開始(包含第start個字符),向右截取length個字符,start從1開始; ${string:0-start:length} # 從string字符串左邊第一次出現*chars的位置開始,截取*chars右邊的所有字符,不包含chars; ${string#*chars} # 從string字符串左邊最后一次出現*chars的位置開始,截取*chars右邊的所有字符,不包含chars; ${string##*chars} # 從string字符串右邊第一次出現chars*的位置開始,截取chars*左邊的所有字符,不包含chars; ${string%chars*} # 從string字符串右邊最后一次出現chars*的位置開始,截取chars*左邊的所有字符,不包含chars; ${string%%*chars*}
示例
#!/bin/bash # script file name is test.sh url="https://blog.csdn.net/monarch91" echo "url=${url}" echo "url:8=${url:8}" echo "url:8:4=${url:8:4}" echo "url:0-8=${url:0-8}" echo "url:0-8:4=${url:0-8:4}" echo "url#*c=${url#*c}" echo "url##*c=${url##*c}" echo "url%c*=${url%c*}" echo "url%%c*=${url%%c*}"
補充
當然,除了以上操作,Shell還有許多字符串操作,下面小編為大家整理了一些,需要的可以參考一下
字符串的拼接
str1=www str2=bilibili string1=$str1$str2 #中間不加別的,直接放一起 string2="$str1 $str2" #雙引號括住,中間可加任意字串 string3=$str1"..."$str2 #整體不加引號,若中間要出現別的字串需前后緊挨,且字串雙引號括住 string4="${str1}.${str2}.com" #也可以使用${}方式引用變量 echo $string1 echo $string2 echo $string3 echo $string4
運行結果:
wwwbilibili
www bilibili
www...bilibili
www.bilibili.com
讀取字符串
$ echo ${abc-'ok'} ok $ echo $abc $ echo ${abc='ok'} ok $ echo $abc ok $ var1=11;var2=12;var3= $ echo ${!v@} var1 var2 var $ echo ${!v*} var1 var2 var3
#${!varprefix*}
與${!varprefix@}
相似,可以通過變量名前綴字符,搜索已經定義的變量,無論是否為空值。
字符串比較
[[ "a.txt" == a* ]] #邏輯真(pattern matching) [[ "a.txt" =~ .*\.txt ]] #邏輯真(regex matching) [[ "abc" == "abc" ]] #邏輯真(string comparision) [[ "11" < "2" ]] #邏輯真(string comparision),按 ascii 值比較
原文鏈接:https://blog.csdn.net/monarch91/article/details/123918335
相關推薦
- 2022-09-16 python解析照片拍攝時間進行圖片整理_python
- 2022-08-26 C語言數據結構之隊列的定義與實現_C 語言
- 2023-01-19 python如何將文件a.txt的內容復制到b.txt中_python
- 2022-06-17 詳解在Flutter中如何使用dio_Android
- 2022-11-30 Android實現一鍵鎖屏功能_Android
- 2023-02-15 Python函數常見幾種return返回值類型_python
- 2023-01-08 C++?Boost?Assign超詳細講解_C 語言
- 2021-12-07 C#?微信支付回調驗簽處理的實現_C#教程
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支