一、Shell字符串處理命令
在Shell腳本中,字符串是最常見的數據類型之一。Shell提供了各種字符串處理命令,如:
echo
: 輸出字符串printf
: 格式化輸出字符串read
: 讀取用戶輸入並保存到變量中expr
: 對字符串進行數值計算test
/[
: 對字符串進行比較判斷
例如,下面的代碼演示了如何使用printf
格式化輸出字符串:
#!/bin/bash
PI=3.1415926
printf "The value of PI is %10.4f\n" $PI
運行該腳本後將輸出:
The value of PI is 3.1416
二、Shell腳本處理字符串
Shell腳本中的字符串可以使用單引號或雙引號來定義。使用單引號定義的字符串中的特殊字符將被原樣輸出,而使用雙引號定義的字符串中的特殊字符可以被解釋。
字符串變量可以使用$
符號來引用,如:
#!/bin/bash
STR="hello, world"
echo $STR
運行該腳本後將輸出:
hello, world
字符串變量的長度可以使用${#variable}
來獲取,如:
#!/bin/bash
STR="hello, world"
echo "Length of STR is ${#STR}"
運行該腳本後將輸出:
Length of STR is 12
三、Shell字符串處理函數
Shell腳本中可以定義函數來處理字符串。下面是一個簡單的函數,用於反轉字符串:
#!/bin/bash
reverse() {
local str=$1
local len=${#str}
local rev=""
for (( i=$len-1; i>=0; i-- ))
do
rev="$rev${str:$i:1}"
done
echo "$rev"
}
result=$(reverse "hello, world")
echo $result
運行該腳本後將輸出:
dlrow ,olleh
四、Shell字符串轉數字
在Shell腳本中,字符串可以隨時轉換為數字,如:
#!/bin/bash
STR="123"
NUM=$((STR + 1))
echo "The result is $NUM"
運行該腳本後將輸出:
The result is 124
五、Shell字符串處理ASCII碼
在Shell腳本中,可以通過使用printf
命令將字符轉換為ASCII碼或直接輸出ASCII碼。下面的代碼演示了如何將字符轉換為ASCII碼:
#!/bin/bash
printf "%d\n" "'A"
運行該腳本後將輸出:
65
下面的代碼演示了如何輸出ASCII碼所對應的字符:
#!/bin/bash
printf "%c\n" 65
運行該腳本後將輸出:
A
六、Shell字符串截取
在Shell腳本中,可以通過使用${parameter:offset:length}
來截取字符串。其中,parameter
是要截取的字符串,offset
是起始位置,length
是要截取的長度。如果length
未指定,則會一直截取到字符串末尾。
例如,下面的代碼演示了如何截取字符串的前5個字符:
#!/bin/bash
STR="hello, world"
echo ${STR:0:5}
運行該腳本後將輸出:
hello
七、Shell字符串替換
在Shell腳本中,可以通過使用${string/old/new}
或${string//old/new}
來替換字符串中的文本。其中,string
是要替換的字符串,old
是要替換的文本,new
是替換後的文本。如果使用的是${string/old/new}
,則只會替換第一個匹配的文本;如果使用的是${string//old/new}
,則會替換所有匹配的文本。
例如,下面的代碼演示了如何將字符串中的所有空格替換為逗號:
#!/bin/bash
STR="hello, world"
echo ${STR// /,}
運行該腳本後將輸出:
hello,,world
八、Shell cut字符串截取
cut
命令可以用於截取文本文件中的某些字段。例如,下面的代碼演示了如何從/etc/passwd
文件中截取所有用戶名:
#!/bin/bash
cut -d: -f1 /etc/passwd
運行該腳本後將輸出:
root daemon bin sys sync ...
九、Shell字符串比較相等
在Shell腳本中,可以使用=
或==
來比較字符串是否相等。例如,下面的代碼演示了如何比較兩個字符串是否相等:
#!/bin/bash
STR1="hello, world"
STR2="Hello, World"
if [ "$STR1" = "$STR2" ]
then
echo "The two strings are equal"
else
echo "The two strings are not equal"
fi
運行該腳本後將輸出:
The two strings are not equal
可以使用!=
來比較字符串是否不相等。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/227553.html