字符串的拼接是任何一種編程語言的硬性通用要求之一。在 shell 中字符串的拼接十分簡單,但仍然需要注意細節(jié)上的處理。
str3="${str1}${str2}
注:
-{}
作用為幫助解釋器識別變量邊界。
- 在此出于嚴謹考慮,最好應(yīng)養(yǎng)成隨手添加{}
的習慣,避免疏忽導(dǎo)致腳本執(zhí)行效果未達到您的期望。
#!/bin/bash
str1="welcome to"
str2=" W3Cschool."
str3="${str1}${str2}"
str4="Hello user,${str1}${str2}"
echo $str3
echo $str4
注:
- 在此出于嚴謹考慮,最好應(yīng)養(yǎng)成隨手添加" "
的習慣,避免疏忽導(dǎo)致腳本執(zhí)行效果未達到您的期望。
- 在代碼第8行,若不以" "
將整個語句引起,解釋器在遇到空格時將會視為字符串結(jié)束,空格之后的內(nèi)容將作為其他變量或命令進行解析。
執(zhí)行后得到以下結(jié)果:
welcome to W3Cschool.
Hello user,welcome to W3Cschool.
支撐擴展
請參閱:支撐擴展
echo {A,B}.js
{A,B} 與...一樣 A B
{A,B}.js 與...一樣 A.js B.js
{1..5} 與...一樣 1 2 3 4 5
外殼執(zhí)行
請參閱:命令替換
echo "I'm in $(PWD)"
## Same
echo "I'm in `pwd`"
句法
${FOO%suffix} 刪除后綴
${FOO#prefix} 刪除前綴
${FOO%%suffix} 去除長后綴
${FOO##prefix} 刪除長前綴
${FOO/from/to} 替換第一場比賽
${FOO//from/to} 全部替換
${FOO/%from/to} 替換后綴
${FOO/#from/to} 替換前綴
子串
${FOO:0:3} 子串(位置,長度)
${FOO:(-3):3} 右邊的子串
長度
${#FOO} 的長度 $FOO
默認值
${FOO:-val} $FOO, 或者val如果未設(shè)置
${FOO:=val} 如果未設(shè)置$FOO,val則設(shè)置為
${FOO:+val} val如果$FOO設(shè)置
${FOO:?message} 如果$FOO未設(shè)置,則顯示消息并退出
更多建議: