Shell变量替换

变量替换总结:
1、${变量#匹配规则}        #从头开始匹配,最短删除
2、${变量##匹配规则}    #从头开始匹配,最长删除
3、${变量%匹配规则}        #从尾开始匹配,最短删除
4、${变量%%匹配规则}    #从尾开始匹配,最长删除
5、${变量/旧字符串/新字符串}    #替换变量内旧的字符串为新字符串,自替换第一个
6、${变量//旧字符串/新字符串}    #替换变量内旧的字符串为新字符串,全部替换

例子1:
var1="I love you,Do you love me"
[root@k8smaster shell]# var2=${var1#*ov} 
[root@k8smaster shell]# echo $var2
e you,Do you love me

[root@k8smaster shell]# var2=${var1##*ov}
[root@k8smaster shell]# echo $var2
e me

[root@k8smaster shell]# var3=${var1%ov*}
[root@k8smaster shell]# echo $var3
I love you,Do you l

[root@k8smaster shell]# var3=${var1%%ov*}
[root@k8smaster shell]# echo $var3
I l

[root@k8smaster shell]# var4=${PATH/bin/BIN}
[root@k8smaster shell]# echo $var4
/usr/local/sBIN:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

[root@k8smaster shell]# var5=${PATH//bin/BIN}
[root@k8smaster shell]# echo $var5
/usr/local/sBIN:/usr/local/BIN:/usr/sBIN:/usr/BIN:/root/BIN

需求描述:
写一个Nginx监控脚本,如果Nginx宕掉,则该脚本可以检测到并将进程启动。
#!/bin/sh
while true
do
this_pid=$$
ps -ef|grep nginx|grep -v nginx|grep -v $this_pid &> /dev/null
if [ $? -eq 0 ];then
        echo "Nginx is running well"
        sleep 3
else
        systemctl start nginx
        sleep 3
        echo "Nginx is down,Start it ......"
fi