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个:
【case语句,函数及中断控制】使用字符串删除功能, 编写批量修改扩展名的脚本
将所有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

    推荐阅读