1. 程式人生 > >shell 指令碼 關於字串的那些事~ 單引號、雙引號、不使用引號等等

shell 指令碼 關於字串的那些事~ 單引號、雙引號、不使用引號等等

一:字串的定義
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