shell 指令碼 關於字串的那些事~ 單引號、雙引號、不使用引號等等
阿新 • • 發佈:2018-11-24
一:字串的定義
shell指令碼中字串可以使用雙引號、單引號、不使用引號來定義
比如:在不使用引號的情況下字串中間不可以有空格
#!/bin/bash
doublestr="hello you";
singlestr="happy you";
str=sadyou
echo $doublestr
echo $singlestr
echo $str
執行指令碼輸出:
hello you
happy you
sadyou
二:單引號
在單引號中的任何字元都會原樣輸出,單引號字串中的變數是無效的
#!/bin/bash name="梨梨" echo 'here is use single label,name is $name' echo '在單引號中使用\"$name\"也是沒有用的哦'
輸出:
here is use single label,name is $name
在單引號中使用\"$name\"也是沒有用的哦
三:雙引號
雙引號裡面可以有變數,雙引號裡面可以出現轉義字元
#!/bin/bash
name="梨梨"
echo "here is use single label,name is $name"
echo "在雙引號中可以使用轉義字元,\"$name\""
輸出:
here is use double label,name is 梨梨
在雙引號中可以使用轉義字元,"梨梨"
四:字串的拼接
#!/bin/bash #使用雙引號拼接 appendstr="hello, "$name" !" echo $appendstr appendstr="hello, $name !" echo $appendstr #使用單引號拼接 appendstr='hello, '$name' !' echo $appendstr appendstr='hello, $name !' echo $appendstr
輸出:
hello, 梨梨 !
hello, 梨梨 !
hello, 梨梨 !
hello, $name !
五:字串的拼接
#!/bin/bash
str="abcdefg"
#獲取字串的長度
echo ${#str}
#擷取子字串
echo ${str:1:4} #輸出bcde
#查詢子字串 查詢字元b 或 c 的位置,那個字母先出現就計算哪個
echo `expr index "$str" bc` #輸出 2
輸出:
7
bcde
2