Shell指令碼的學習筆記二 字串

2022-09-17 09:51:13 字數 2667 閱讀 1101

專案功能

單引號原樣輸出,變數無效。但可用成對單引號巢狀成對單引號輸出變數

雙引號定義字串中附帶有變數的命令並且想將其解析後再輸出的變數。

1. 單引號

#!/bin/bash

test='try to do it.'

echo 'i say $' #**[**1]**

#echo ' \' ' #使用轉義字元會報錯,**[**2]**

echo 'i say '$'' #**[**3]**

單引號字串的限制:

結果如下:

i say $            #**[**1]**

i say try to do it. #**[**3]**

2. 雙引號
#!/bin/bash

test="try to do it."

echo "i say $" #**[**1]**

#echo " " " #不使用轉義字元會報錯,**[**2]**

echo "i say '$' \"$\" " #使用轉義字元,**[**3]**

雙引號字串的優點:

i say try to do it.

i say 'try to do it.' "try to do it."

3. 拼接字串
#!/bin/bash

reader="yogile"

#雙引號

output1="this is "$reader" !"

output2="this is $ !"

echo $output1 $output2

echo ""

#單引號

output3='this is '$reader' !'

output4='this is $ !'

echo $output3 $output4

echo ""

#單雙引號混合

echo $output1 $output3

輸出結果為:

#雙引號

this is yogile ! this is yogile !

#單引號

this is yogile ! this is $ !

#單雙引號混合

this is yogile ! this is yogile !

4. 獲取字串長度

使用$(***x為變數名)輸出字串長度。

#!/bin/bash

reader="yogile"

echo $ #輸出 6

5. 提取、查詢子字串

同高階語言一樣,shell申請記憶體也從0位開始,0位指第 1 個字元。

$在從位置position開始提取長度為length的子串

string="this is yogile. "

echo ""

#提取字串

echo $ # 輸出"his i"

echo $ # 輸出"le. ",[**xx]---------?:15位為空格,有輸出

echo ""

#查詢子字串

#查詢字元 i 或 g 的位置(計算最先出現的字母)

echo `expr index "$string" ig` # ` 是反引號,而不是單引號 '

6. 主要字串操作(長度,讀取,替換)

格式含義

$$string的長度

$從位置$position開始提取子串

$在從位置$position開始提取長度為$length的子串

$從變數$的開頭, 刪除最短匹配$substring的子串

$從變數$的開頭, 刪除最長匹配$substring的子串

$從變數$的結尾, 刪除最短匹配$substring的子串

$從變數$的結尾, 刪除最長匹配$substring的子串

$使用$replacement, 來代替第乙個匹配的$substring

$使用$replacement, 代替所有匹配的$substring

$如果$string的字首匹配$substring, 那麼就用$replacement來代替匹配到的$substring

$如果$string的字尾匹配$substring, 那麼就用$replacement來代替匹配到的$substring

shell指令碼學習5 字串和注釋

1 shell注釋 以 開頭的行就是注釋,會被直譯器忽略。sh裡沒有多行注釋,只能每一行加乙個 號。只能像這樣 純文字 複製 這是乙個自動打ipa的指令碼,基於webfrogs的ipa build書寫 特色 全自動打包,不需要輸入任何引數 使用者配置區 開始 專案根目錄,推薦將此指令碼放在專案的根目...

Shell指令碼學習(3)字串和陣列

字串是shell程式設計中最常用最有用的資料型別 除了數字和字串,也沒啥其它型別好用了 字串可以用單引號,也可以用雙引號,也可以不用引號。單雙引號的區別跟php類似 單雙引號的區別 bin bash str1 i str2 love str3 you echo str1 str2 str3 echo...

linux的shell指令碼學習筆記(二)

標記 開始學習while迴圈 檢視本地的8080埠的應用是否已啟用 curl s o index.jsp m 2 localhost 8080 shop index.jsp bin bash n 0while n lt 5 do let n echo n done 迴圈讀取檔案的一行,然後輸出 re...