在本小節中,將學習如何在Bash Shell指令碼中新增或連線字串。
在bash指令碼編製中,可以將兩個或多個字串新增或連線在一起,這稱為字串連線。它是任何一種程式設計語言的通用要求之一。應用特殊字元或內建函式來執行字串連線。但是,Bash不包含任何內建函式來組合字串資料或變數。在bash中執行字串連線的最簡單方法是並排寫入變數。
例如,假設有兩個字串(即"Welcome"
和"to Yiibai"
),要將這兩個字串連線在一起,然後建立了一個新字串("Welcome to Yiibai"
),這種概念稱為字串連線。
用於連線字串的命令定義為:
str3="$str1$str2"
注意:遵守上面的命令; 賦值(
=
)運算子之前或之後不應有任何空格。str
用於指示字串。
此命令將串聯str1
和str2
變數的值,並將其儲存在第三個變數str3
中。
以下是一些說明了字串連線的不同方式的範例:
這是字串連線的基本範例,並且在此方法中不需要其他運算子或函式。
Bash指令碼
#!/bin/bash
#Script to Concatenate Strings
#Declaring the first String
str1="We welcome you"
#Declaring the Second String
str2=" on Yiibai."
#Combining first and second string
str3="$str1$str2"
#Printing a new string by combining both
echo $str3
執行上面範例程式碼,得到以下結果:
另一個方法是在字串中使用雙引號定義的變數。字串變數可以應用於字串資料的任何位置。
Bash指令碼
#!/bin/bash
#Script to Concatenate Strings
#Declaring String Variable
str="We welcome you"
#Add the variable within the string
echo "$str on Yiibai."
執行上面範例程式碼,得到以下結果:
maxsu@yiibai:~/bashcode$ cat /dev/null > concat-string.sh
maxsu@yiibai:~/bashcode$ vi concat-string.sh
maxsu@yiibai:~/bashcode$ ./concat-string.sh
We welcome you on Yiibai.
大多數流行的程式設計語言都支援追加運算子(+=
),它是加號和等號的組合。它將新的字串新增到字串變數的末尾。
Bash指令碼
#!/bin/bash
echo "Printing the name of the programming languages"
#Initializing the variable before combining
lang=""
#for loop for reading the list
for value in 'java' 'python' 'C' 'C++' 'Bash';
do
lang+="$value " #Combining the list values using append operator
done
#Printing the combined values
echo "$lang"
執行上面範例程式碼,得到以下結果:
maxsu@yiibai:~/bashcode$ cat /dev/null > concat-string.sh
maxsu@yiibai:~/bashcode$ vi concat-string.sh
maxsu@yiibai:~/bashcode$ ./concat-string.sh
Printing the name of the programming languages
java python C C++ Bash
在bash中,printf
是用於列印和連線字串的函式。
Bash指令碼
#!/bin/bash
str="Welcome"
printf -v new_str "$str to Yiibai."
echo $new_str
執行上面範例程式碼,得到以下結果:
maxsu@yiibai:~/bashcode$ cat /dev/null > concat-string.sh
maxsu@yiibai:~/bashcode$ vi concat-string.sh
maxsu@yiibai:~/bashcode$ ./concat-string.sh
Welcome to Yiibai.
字串連線也可以通過大括號{}
與文字字串一起執行,使用應避免變數與文字字串混淆。
Bash指令碼
#!/bin/bash
str="Welcome to"
newstr="${str} Yiibai."
echo "$newstr"
執行上面範例程式碼,得到以下結果:
maxsu@yiibai:~/bashcode$ cat /dev/null > concat-string.sh
maxsu@yiibai:~/bashcode$ vi concat-string.sh
maxsu@yiibai:~/bashcode$ ./concat-string.sh
Welcome to Yiibai.
使用下劃線在bash shell中連線字串是常見的任務之一,它主要用於為檔案分配名稱。
Bash指令碼
#!/bin/bash
str1="Hello"
str2="World!"
echo "${str1}_${str2}"
執行上面範例程式碼,得到以下結果:
maxsu@yiibai:~/bashcode$ cat /dev/null > concat-string.sh
maxsu@yiibai:~/bashcode$ vi concat-string.sh
maxsu@yiibai:~/bashcode$ ./concat-string.sh
Hello_World!
Bash指令碼
#!/bin/bash
#String Concatenation by Character (,) with User Input
read -p "Enter First Name: " name
read -p "Enter City: " state
read -p "Enter Age: " age
combine="$name,$state,$age"
echo "Name, City, Age: $combine"
執行上面範例程式碼,得到以下結果:
字串連線是程式設計語言中生成有意義的輸出所必需的功能之一。本小節中介紹了在bash中連線字串的幾種常見的方法。