單引號中間不能再次出現單引號,這就意味這單引號中間出現變數是無效的,直接點說,單引號中間無論出現什麼都會原樣輸出。但是單引號字串中不能出現單獨乙個的單引號(對單引號使用轉義符後也不行),但可成對出現,作為字串拼接使用。雙引號中間是可以出現變數的,而且雙引號中間是可以進行字元轉移的。直接上簡單**顯示:
#!/bin/bash
where="csdn"
val1='i am in $where'
val2='i am in '$where''
val3='i am in $'
val4="i am in $"
echo $val1
echo $val2
echo $val3
echo $val4
輸出結果:
i am in $where
i am in csdn
i am in $
i am in csdn
在字元的查詢中,我使用的是expr函式,因此在這裡我們格外注意的是,expr函式返回的字串起始位置不是0,不是0,不是0,重要的事說三遍。比如「csdn」,那麼當你在查詢s字元的時候,那麼返回值是2,而不是1。但是,字串擷取卻是以0開始的。比如string=「csdn」 string=$ 。。。string將是tr。**如下:
#bin/bash
string="where i am is csdn"
space_where=1
j=0i=0
while (($space_where!=0))
do space_where=$(expr index "$string" " ")
strend=$
if (($space_where == 0));then
echo "$i"th $
else
echo "$i"th $
fistring=$
i=$[ i+1 ]
done
輸入結果如下:
0th where
1th i
2th am
3th is
4th csdn
Shell指令碼之 字串
字串可以用單引號,也可以用雙引號,也可以不用引號。單引號 str this is a string 單引號字串的限制 1.單引號裡的任何字元都會原樣輸出,單引號字串中的變數是無效的 2.單引號字串中不能出現單引號 對單引號使用轉義符後也不行 雙引號 name runnyu str hello,n 雙...
shell指令碼 字串
printf printf 10s 10s 10s n no name height printf 10s 10s 10d n 1 whr 187 2 wsl 198 字串切片 冒號後面一定要加空格 基於模式取子字串 從左至右 刪除pattern第一次匹配到的 刪除pattern最後一次匹配到的 從...
shell字串操作
1,字串剪裁 file dir1 dir2 dir3 my.file.txt 我們可以用 分別替換獲得不同的值 拿掉第一條 及其左邊的字串 dir1 dir2 dir3 my.file.txt 拿掉最後一條 及其左邊的字串 my.file.txt 拿掉第乙個 及其左邊的字串 file.txt 拿掉最...