字元串的處理: ${:截取 /替換 #掐頭 % 去尾}
字元串的截取的三種處理方法:
方法一:(注:從左開始第一位是以0開始)
${}
格式${取用的變量名:起始位數:長度}
例: x=1234567890
echo ${x:1:3} (輸出是234)
${x::6}預設不寫是從第一位開始截取
方法二:(注:從左開始第一位是以1開始)
expr substr “$取用的變量名” 起始位置的值 長度
例: expr subdtr “$x” 1 3 (輸出為123)
方法三:(注:從左開始第一位是以1開始)
echo $取用的變量的名 | cut -b 起始位置-結束位置
echo $取用的變量的名 | cut -b 3,4,5,7,9
例: echo $x | cut -b 3,5 (輸出為35)
echo $x | cut -b 1-3 (輸出為123)
字元串的替換:/
<vim編輯器中>:%s/舊的内容/新的内容/g (vim中%操作對每一行都執行,g對行的 每一個都執行)
echo ${x/3/} (隻更換x中的第一個3)顯示出的數值時3換為但是x的值不變
echo ${x//3/} (更換x中的所有3)顯示出的數值時3換為但是x的值不變
echo ${x/[1-4]/*}(支援[ ] 更換連續的)
字元串的掐頭去尾:%去尾(從右往左删)... #掐頭(從左往又删)##(一個#删除最短 2個#删除所有)
${取用的變量的名%#關鍵詞}
例:[root@B ~]# x=
head -1 /etc/passwd
[root@B ~]# echo $x
root:x:0:0:root:/root:/bin/bash
[root@B ~]# echo ${x#root:}
x:0:0:root:/root:/bin/bash
[root@B ~]# echo ${x#:}
[root@B ~]# echo ${x##:}
/bin/bash
touch {a,b,c,d,e,f}.txt
#!/bin/bash
for i in
ls *.txt
do
mv $i ${i%.txt}.doc
done
計算1-100所有偶數的和
num=0
for i in {1..100}
a=$[i%2]
if [ $a -eq 0 ];then
let num=$num+$i
fi
echo $num
~
字元串賦初值: ( :- )
echo ${XX:-123}
例: