一、shell字元串數組遍歷
在shell中,字元串數組可以通過循環遍歷來訪問其每個元素。以下是遍歷字元串數組的示例代碼:
#!/bin/bash # 定義一個字元串數組 arr=("apple" "banana" "orange" "grape" "watermelon") # 遍曆數組 for i in "${arr[@]}" do echo "$i" done
以上代碼輸出以下結果:
apple banana orange grape watermelon
在循環中,變數i會依次取到數組的每一個元素,然後通過echo命令輸出。
二、shell定義字元串數組
在shell中,可以通過一行語句來定義一個字元串數組:
arr=("element1" "element2" "element3" ...)
以上語句定義了一個名為arr的字元串數組,其中包含了若干個字元串元素。下面是一個定義字元串數組的示例代碼:
#!/bin/bash # 定義一個字元串數組 arr=("apple" "banana" "orange" "grape" "watermelon") # 列印數組 echo "${arr[@]}"
以上代碼輸出以下結果:
apple banana orange grape watermelon
在輸出數組元素時,需要使用”${arr[@]}”的形式。也可以使用”${arr[*]}”輸出,它們的區別在於數組元素之間的分隔符不同,使用@會以空格分隔數組元素,而使用*則會以IFS變數的值分隔。
三、shell字元串數組相加
在shell中,可以通過+=運算符來實現字元串數組的合併。以下是合併兩個數組的代碼示例:
#!/bin/bash # 定義兩個字元串數組 arr1=("apple" "banana" "orange") arr2=("grape" "watermelon") # 合併兩個數組並列印結果 arr3=("${arr1[@]}" "${arr2[@]}") echo "${arr3[@]}"
以上代碼輸出以下結果:
apple banana orange grape watermelon
在數組合併時,需要注意使用”${arr1[@]}” “${arr2[@]}”的形式,以確保將兩個數組的元素全部取出。
四、shell字元串數組初始化
在shell中,可以使用`declare -a`或`local -a`命令來定義一個空的字元串數組,這個數組可以在後面進行初始化。以下是定義並初始化一個字元串數組的代碼示例:
#!/bin/bash # 定義一個空的字元串數組 declare -a arr # 給數組賦值 arr=("apple" "banana" "orange" "grape" "watermelon") # 列印數組 echo "${arr[@]}"
以上代碼輸出以下結果:
apple banana orange grape watermelon
在第二行中,定義了一個名為arr的空字元串數組;在第四行,對數組進行了初始化;在第六行中,使用”${arr[@]}”將數組元素列印出來。
五、shell字元串數組是否在數組中
在shell中,可以使用`in_array`函數來判斷一個字元串是否在字元串數組中。以下是判斷字元串是否在數組中的代碼示例:
#!/bin/bash # 定義一個字元串數組 arr=("apple" "banana" "orange" "grape" "watermelon") # 判斷字元串是否在數組中 if [[ "${arr[*]}" =~ "banana" ]]; then echo "banana exists in the array" else echo "banana does not exist in the array" fi
以上代碼輸出以下結果:
banana exists in the array
在第五行中,使用`[[ “${arr[*]}” =~ “banana” ]]`判斷字元串”banana”是否在數組中。
六、shell 字元串數組
在shell中,可以使用`split`命令將一個字元串分割成字元串數組。以下是將一個字元串按照空格分割並存入字元串數組的代碼示例:
#!/bin/bash # 定義一個字元串 str="hello world" # 將字元串以空格分割成數組 IFS=" " read -r -a arr <<< "$str" # 列印數組元素 echo "${arr[@]}"
以上代碼輸出以下結果:
hello world
在第四行中,通過`IFS=” “`將變數IFS定義為空格,然後使用`read`命令將字元串按空格分割成字元串數組。
七、shell字元串轉數組
shell還提供了`$()`的形式來實現字元串轉數組。以下是將一個字元串轉成數組並列印的代碼示例:
#!/bin/bash # 定義一個字元串 str="apple,banana,orange,grape,watermelon" # 將字元串轉成數組 arr=($(echo "$str" | tr ',' ' ')) # 列印數組 echo "${arr[@]}"
以上代碼輸出以下結果:
apple banana orange grape watermelon
在第五行中,`echo “$str” | tr ‘,’ ‘ ‘`將字元串中的逗號替換成空格,同時使用`$()`來執行轉換後的字元串,將其轉成數組。
八、shell字元串長度
在shell中,可以使用`${#string}`的形式來獲取字元串的長度。以下是獲取字元串長度的代碼示例:
#!/bin/bash # 定義一個字元串 str="apple" # 獲取字元串長度 len=${#str} # 列印長度 echo "the length of the string is $len"
以上代碼輸出以下結果:
the length of the string is 5
在第五行中,`${#str}`獲取變數str的長度,然後將其存入變數len中。
九、shell字元串轉數字
在shell中,可以使用`expr`命令將字元串轉成數字類型。以下是將一個字元串轉成數字並進行加法運算的代碼示例:
#!/bin/bash # 定義兩個字元串變數 str1="10" str2="20" # 將字元串轉成數字並進行加法運算 result=$(expr $str1 + $str2) # 列印結果 echo $result
以上代碼輸出以下結果:
30
在第五行中,`expr $str1 + $str2`將兩個字元串轉換成數字並進行加法運算,並將結果存入變數result中。
十、shell字元串比較相等
在shell中,可以使用`[ “$str1” == “$str2” ]`的形式來比較兩個字元串是否相等。以下是比較兩個字元串是否相等的代碼示例:
#!/bin/bash # 定義兩個字元串變數 str1="apple" str2="banana" # 比較兩個字元串是否相等 if [ "$str1" == "$str2" ]; then echo "str1 equals to str2" else echo "str1 does not equal to str2" fi
以上代碼輸出以下結果:
str1 does not equal to str2
在第五行中,使用`[ “$str1” == “$str2” ]`來比較兩個字元串是否相等。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/238052.html