case语句,函数及中断控制

使用case编写nginx工具

1, 在真机 /linux-soft/02目录中拷贝文件到虚拟机
scp lnmp_soft.tar.gz root@server0:/opt
2, 在虚拟机中释放该tar包,并进入目录拷贝nginx文件到/opt
cp lnmp_soft/nginx-1.12.2.tar.gz  .
3, 编写一键部署nginx源码包的脚本
#!/bin/bash
yum -y install gcc openssl-devel pcre-devel
tar -xf nginx-1.12.2.tar.gz
cd nginx-1.12.2
./configure
make
make install
----------------------------------------------------------------
cd /usr/local/nginx/sbin/   脚本执行完后找到该程序所在目录
./nginx   执行nginx程序
systemctl stop firewalld  关闭防火墙
在真机打开浏览器 访问 172.25.0.11 可以看到欢迎界面

netstat -ntulp |grep :80
---------------------------------------------------------------
#!/bin/bash
case $1 in
kai)
        /usr/local/nginx/sbin/nginx;;
guan)
        /usr/local/nginx/sbin/nginx -s stop;;
res)
        /usr/local/nginx/sbin/nginx -s stop
        /usr/local/nginx/sbin/nginx;;
cha)
        netstat -ntulp | grep -q nginx
        [ $? -eq 0 ] && echo "服务已开启" || echo "服务未
开启";;
*)
        echo "kai|guan|res|cha"
esac
------------------------------------------------------------------
echo -e "\033[31mABCD\033[0m"
echo -e "\033[32mABCD\033[0m"
echo -e "\033[33mABCD\033[0m"

函数 可以将公共的语句块定义成一个名称,来达到精简脚本的目的

cecho() {
echo -e "\033[$1m$2\033[0m"
}
-------------------------------------------------------------
exit     终止整个脚本
break    终止循环,继续循环之后任务
continue  终止当前循环,继续下一次循环

编写脚本, 可以帮助用户计算整数的求和

#!/bin/bash
x=0
while :
do
read -p "请输入一个数字求和,0是结束"  n
[ $n -eq 0 ] && break
let x+=n
done
echo $x
------------------------------------------------------------
要求从1~20中找出6的倍数

#!/bin/bash
for i in {1..20}
do
    x=$[i%6]
    [ $x -ne 0 ] && continue
    echo $i
done

--------------------------------------------
字符串处理:
1,字符串截取
${变量名:起始位置:长度} 
-----------------------------------------------
#!/bin/bash
x=abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
for i in {1..8}
do
n=$[RANDOM%62]
pass=${x:n:1}
pass1=$pass1$pass
done
echo $pass1
------------------------------------------------
2,字符串替换
${变量名/old/new} 

3,字符串删除
${变量名#  }    从左往右删除
a=`head -1 /etc/passwd`   创建素材
echo ${a#root}    删除到第1个root
echo ${a##*root}  删除到最后1个root
echo ${a##*/}      删除到最后1个/

${变量名%  }    从右往左删除
echo ${a%bash}    删除到第1个bash
echo ${a%/bash}   删除到第1个/bash
echo ${a%/*}      删除到第1个/
echo ${a%%/*}     删除到最后1个/
echo ${a%%:*}     删除到最后1个:

使用字符串删除功能, 编写批量修改扩展名的脚本
将所有txt文件修改为doc
touch abc{1..10}.txt   创建素材

#!/bin/bash
for i in `ls *.txt`
do
    n=${i%.*}     n是去除了扩展名的文件名
    mv $i $n.doc   将原文件修改为 文件名.doc
done
改良版:
#!/bin/bash
for i in `ls *.$1`
do
    n=${i%.*}   
    mv $i $n.$2 
done

--------------------------------------------
99乘法表:
#!/bin/bash
for i in {1..9}
do
    for j in `seq $i`
    do
    echo -n "${i}x$j=$[i*j] " 
    done
    echo
done
 

你可能感兴趣的:(权限)