1. 举例%.*的用法
[root@centos7 ~]# str=aa.bb.cc.dd
[root@centos7 ~]# echo $str
aa.bb.cc.dd
[root@centos7 ~]# echo ${str%%.*}
aa.bb.cc
%.* 是以 . 为分隔符,删除变量最后一个 . 及其后的字段
2. 举例%%.*的用法
[root@centos7 ~]# str=aa.bb.cc.dd
[root@centos7 ~]# echo $str
aa.bb.cc.dd
[root@centos7 ~]# echo ${str%%.*}
aa
%%.* 是以 . 为分隔符,删除变量第一个 . 及其后的字段
3. 更改分隔符的用法
将 :作为分隔符
[root@centos7 ~]# str=aa:bb:cc:dd
[root@centos7 ~]# echo $str
aa:bb:cc:dd
[root@centos7 ~]# echo ${str%:*}
aa:bb:cc
[root@centos7 ~]# echo ${str%%:*}
aa
将 # 作为分隔符
[root@centos7 ~]# str=aa#bb#cc#dd
[root@centos7 ~]# echo $str
aa#bb#cc#dd
[root@centos7 ~]# echo ${str%#*}
aa#bb#cc
[root@centos7 ~]# echo ${str%%#*}
aa
4. 脚本变量的用法
[root@centos7 ~]# ip=`hostname -I |awk '{print $1}'`
[root@centos7 ~]# echo $ip
10.100.1.121
[root@centos7 ~]# echo ${ip%.*}
10.100.1
[root@centos7 ~]# echo ${ip%.*}.
10.100.1.
[root@centos7 ~]# echo ${ip%%.*}
10
编写一个脚本,检测在线IP和离线IP
#!/bin/bash
IP=`hostname -I |awk '{print $1}'`
NET=${IP%.*}.
for i in {120..130}
do
ping -c 1 $NET$i >/dev/null && echo "$NET$i up" || echo "$NET$i down"
done
执行结果
[root@centos7 ~]# bash a.sh
10.100.1.120 down
10.100.1.121 up
10.100.1.122 up
10.100.1.123 up
10.100.1.124 down
10.100.1.125 down
10.100.1.126 down
10.100.1.127 down
10.100.1.128 down
10.100.1.129 down
10.100.1.130 down