日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Shell入门(三)之字符串

發布時間:2023/12/3 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Shell入门(三)之字符串 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一、單引號

字符串可以用單引號,也可以用雙引號,也可以不用引號。單雙引號的區別跟PHP類似。

單引號不存在轉義字符,如:\a,\n,$abc

#!/bin/bash a='abc' b='${a}bc'; echo $b; #結果為:${a}bc

單引號字符串的限制:

(1)單引號里的任何字符都會原樣輸出,單引號字符串中的變量是無效的;

(2)單引號字串中不能出現單引號(對單引號使用轉義符后也不行)。

?

二、雙引號

雙引號的優點:

(1)雙引號里可以有變量

(2)雙引號里可以出現轉義字符

#!/bin/bash a="abc" b="${a}bc"; echo $b; #結果為:$abcbc

?

三、字符串連接

#!/bin/bash a="abc" b=$a"d" c=$b'e' echo $a $b $c

?

四、字符串長度

${#string}獲取長度

`expr?length 字符串` ??字符串可以加'或" ,其中"適用于所有字符,包括轉義字符,變量

?注意使用的是反引號 ` 而不是單引號 '

#!/bin/bash a='abc' echo ${#a} #3 echo `expr length "字符串"` #9 中文占3個字節

?

五、提取子字符串

${string:start} ? ??從字符串第?start?個字符開始截取到字符串末尾,下標從0開始

${string:start:length} ?從字符串第?start?個字符開始截取 length個字符,下標從0開始

${string:0-start} ? ??從字符串倒數第?start?個字符開始截取到字符串末尾

${string:0-start:length} ?從字符串倒數第?start?個字符向右開始截取?length個字符

?

`expr?substr 字符串 start ?length` ?下標從1開始,字符串可以加'或" ,其中"適用于所有字符,包括轉義字符,變量

#!/bin/bash a='abcdefg' echo ${a:2} #cdefg echo ${a:2:2} #cd echo ${a:0-1} #g echo ${a:0-5:4} #cdef echo `expr substr "$a" 1 2` #ab

?

六、在字符串查找字符

下標從1開始,查找不到返回0

`expr index 字符串 匹配字符`

?

字符串與匹配字符都可以加'或" ,其中"適用于所有字符,包括轉義字符,變量

#!/bin/bash a='welcome to learn shell' echo `expr index "$a" co` #4 b='b' echo `expr index b字符串 匹配字符` #2 echo `expr index "b字符串" '匹配字符'`           #2 echo `expr index "b字符串" "${b}匹配字符"`         #1

?

七、正則匹配

`expr match?字符串 匹配字符串` ? ? 匹配字符串開頭的子串,返回匹配到的子串的長度,若找不到則返回0

字符串與匹配字符串都可以加'或" ,其中"適用于所有字符,包括轉義字符,變量

#!/bin/bash a='welcome to learn shell' echo `expr match "$a" w.*a` #14 echo `expr match "$a" e.*a` #0 盡管字符串包含e.*a,但不以w開頭

?

八、刪除 ?支持通配符*與?、+等

${string#刪除子串} ? ? 刪除左邊最小的匹配string開頭的子串

${string##刪除子串} ? 刪除左邊最大的匹配string開頭的子串

${string%刪除子串} ? ? 刪除右邊最小的匹配string末尾的子串

${string%%刪除子串} ? 刪除右邊最大的匹配string末尾的子串

#!/bin/bash a='welcome to learn shell' echo ${a#e*e} #welcome to learn shell 沒有匹配$a的開頭 echo ${a#w*e} #lcome to learn shell echo ${a##w*e} #ll echo ${a%e*l} #welcome to learn sh echo ${a%%e*l} #w

?

九、替換 ?支持通配符*與?、+等

${string/被替換串/替換串}

${string//被替換串/替換串}

#!/bin/bash a='welcome on welcome' echo ${a/e*c/x} #wxome echo ${a/e*c/x} #wxome echo ${a//el/a} #wacome on wacome

?

總結

以上是生活随笔為你收集整理的Shell入门(三)之字符串的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。