shell 變量刪除與替換


1、從左往右刪除匹配內容
[root@localhost ~]# name=www.baidu.com.cn
[root@localhost ~]# echo ${name} #獲取變量值
www.baidu.com.cn
[root@localhost ~]# echo ${#name} #獲取變量長度
16
[root@localhost ~]# echo ${name#*.} #從左往右最短匹配
baidu.com.cn
[root@localhost ~]# echo ${name##*.} #從左往右最長匹配
cn
2、從右往左刪除匹配內容
[root@localhost ~]# echo ${name%.*} #從右往左最短匹配
www.baidu.com
[root@localhost ~]# echo ${name%%.*} #從右往左最短匹配
www
3、切片
[root@localhost ~]# echo ${name:0:3} #從0索引切到3索引,包前不報后,切出前三位
www
[root@localhost ~]# echo ${name:0} #從0索引處開始截取
www.baidu.com.cn
4、變量內容替換
[root@localhost ~]# echo ${name}
www.baidu.com.cn
[root@localhost ~]# echo ${name/baidu/qq}
www.qq.com.cn
5、變量替代

[root@localhost ~]# echo $name
www.baidu.com.cn
[root@localhost ~]# x=${name-haha}
[root@localhost ~]# echo $x
www.baidu.com.cn

[root@localhost ~]# unset name #此時,無name變量
[root@localhost ~]# x=${name-haha}
[root@localhost ~]# echo $x
haha

[root@localhost ~]# name=  #此時,雖然有name變量,但是值為空
[root@localhost ~]# x=${name-haha}
[root@localhost ~]# echo $x


6、變量自增

注意:符號在前或者在后,對最后變量的值無影響,僅僅對運算結果有影響。

[root@localhost ~]# i=1
[root@localhost ~]# let i++
[root@localhost ~]# echo $i
2
[root@localhost ~]# let --i
[root@localhost ~]# echo $i
1
小腳本
統計某網段內可用ip
[root@localhost ~]# cat ping_ip.sh 
#!/bin/bash
rm -rf ip.txt &>/dev/null
for i in {1..200}
do
    {
    ip=100.100.100.$i
    ping -c1 -w1 $ip &>/dev/null
    if [ $? -eq 0 ];then
        echo "$ip"|tee -a ip.txt
   fi
}&
done
wait
nu=`cat ip.txt |wc -l`
echo "可用ip個數為:$nu"

運行結果
[root@localhost ~]# bash ping_ip.sh 
100.100.100.2
100.100.100.100
可用ip個數為:2


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM