防偽碼:仰天大笑出門去,我輩豈是蓬蒿人。
上一章節(jié)講解了為什么用${}引用變量,${}還有一個重要的功能,就是文本處理,單行文本基本上
可以滿足你所有需求。
2 2 .1 獲取字符串長度
# VAR='hello world!'
# echo $VAR
hello world!
# echo ${#VAR}
12
2 2 .2 字符串切片
格式:
${parameter:offset}
${parameter:offset:length}
截取從 offset 個字符開始,向后 length 個字符。
截取 hello 字符串:
# VAR='hello world!'
# echo ${VAR:0:5}
hello
截取 wo 字符:
# echo ${VAR:6:2}
wo
截取 world 字符串:
# echo ${VAR:5:-1}
world
截取最后一個字符:
# echo ${VAR:(-1)}
!
截取最后二個字符:
# echo ${VAR:(-2)}
d!
截取從倒數(shù)第 3 個字符后的 2 個字符:
# echo ${VAR:(-3):2}
ld
2 2 .3 替換字符串
格式:${parameter/pattern/string}
# VAR='hello world world!'
將第一個 world 字符串替換為 WORLD:
# echo ${VAR/world/WORLD}
hello WORLD world!
將全部 world 字符串替換為 WORLD:
# echo ${VAR//world/WORLD}
hello WORLD WORLD!
2 2 .4 字符串截取
格式:
${parameter#word} # 刪除匹配前綴
${parameter##word}
${parameter%word} # 刪除匹配后綴
${parameter%%word}
# 去掉左邊,最短匹配模式,##最長匹配模式。
% 去掉右邊,最短匹配模式,%%最長匹配模式。
# URL="http://www.baidu.com/baike/user.html"
以//為分隔符截取右邊字符串:
# echo ${URL#*//}
以/為分隔符截取右邊字符串:
# echo ${URL##*/}
baike.user.html
以//為分隔符截取左邊字符串:
# echo ${URL%%//*}
http:
以/為分隔符截取左邊字符串:
# echo ${URL%/*}
以.為分隔符截取左邊:
# echo ${URL%.*}
http://www.baidu.com/baike/user
以.為分隔符截取右邊:
# echo ${URL##*.}
html
2 2 .5 變量狀態(tài)賦值
${VAR:-string} 如果 VAR 變量為空則返回 string
${VAR:+string} 如果 VAR 變量不為空則返回 string
${VAR:=string} 如果 VAR 變量為空則重新賦值 VAR 變量值為 string
${VAR:?string} 如果 VAR 變量為空則將 string 輸出到 stderr
如果變量為空就返回 hello world!:
# VAR=
# echo ${VAR:-'hello world!'}
hello world!
如果變量不為空就返回 hello world!:
# VAR="hello"
# echo ${VAR:+'hello world!'}
hello world!
如果變量為空就重新賦值:
# VAR=
# echo ${VAR:=hello}
hello
# echo $VAR
hello
如果變量為空就將信息輸出 stderr:
# VAR=
# echo ${VAR:?value is null}
-bash: VAR: value is null
${}主要用途大概就這么多了,另外還可以獲取數(shù)組元素,在后面章節(jié)會講到。
2 2 .6 字符串顏色
再介紹下字符串輸出顏色,有時候關(guān)鍵地方需要醒目,顏色是最好的方式:
字體顏色 字體背景顏色 顯示方式
30:黑
31:紅
32:綠
33:黃
34:藍色
40:黑
41:深紅
42:綠
43:黃色
44:藍色
0:終端默認設(shè)置
1:高亮顯示
4:下劃線
5:閃爍
7:反白顯示
35:紫色
36:深綠
37:白色
45:紫色
46:深綠
47:白色
8:隱藏
格式:
\033[1;31;40m # 1 是顯示方式,可選。31 是字體顏色。40m 是字體背景顏色。
\033[0m # 恢復(fù)終端默認顏色,即取消顏色設(shè)置。
示例:
#!/bin/bash
# 字體顏色
for i in {31..37}; do
echo -e "\033[$i;40mHello world!\033[0m"
done
# 背景顏色
for i in {41..47}; do
echo -e "\033[47;${i}mHello world!\033[0m"
done
# 顯示方式
for i in {1..8}; do
echo -e "\033[$i;31;40mHello world!\033[0m"
done
謝謝觀看,真心的希望能幫到您!
本文出自 “一盞燭光” 博客,謝絕轉(zhuǎn)載!
更多建議: