Bash 拼接字符串

2021-08-27 15:56 更新

字符串的拼接是任何一種編程語言的硬性通用要求之一。在 shell 中字符串的拼接十分簡單,但仍然需要注意細(xì)節(jié)上的處理。

基本語法

str3="${str1}${str2}

注:
- {}作用為幫助解釋器識別變量邊界。
- 在此出于嚴(yán)謹(jǐn)考慮,最好應(yīng)養(yǎng)成隨手添加{}的習(xí)慣,避免疏忽導(dǎo)致腳本執(zhí)行效果未達(dá)到您的期望。

示例

#!/bin/bash


str1="welcome to"


str2=" W3Cschool."


str3="${str1}${str2}"
str4="Hello user,${str1}${str2}"


echo $str3
echo $str4

注:
- 在此出于嚴(yán)謹(jǐn)考慮,最好應(yīng)養(yǎng)成隨手添加 " "的習(xí)慣,避免疏忽導(dǎo)致腳本執(zhí)行效果未達(dá)到您的期望。
- 在代碼第8行,若不以 " "將整個語句引起,解釋器在遇到空格時將會視為字符串結(jié)束,空格之后的內(nèi)容將作為其他變量或命令進(jìn)行解析。

執(zhí)行后得到以下結(jié)果:

welcome to W3Cschool.
Hello user,welcome to W3Cschool.

支撐擴(kuò)展
請參閱:支撐擴(kuò)展

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`"

Bash 參數(shù)擴(kuò)展

句法

${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

默認(rèn)值

${FOO:-val} $FOO, 或者val如果未設(shè)置
${FOO:=val} 如果未設(shè)置$FOO,val則設(shè)置為
${FOO:+val} val如果$FOO設(shè)置
${FOO:?message} 如果$FOO未設(shè)置,則顯示消息并退出
以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號