天天看點

shell腳本編寫3

字元串的處理: ${:截取 /替換 #掐頭 % 去尾}

字元串的截取的三種處理方法:

方法一:(注:從左開始第一位是以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}

例: