shell编程入门
-
什么是shell
- SHELL 就是一个命令解释器
-
shell编程的目的
- 实现自动化操作方式,代替手工的繁琐步骤
-
shell编程的用户
基础配置:系统初始化操作、系统更新、内核调整等等 – 安装程序:自动部署 LNMP、LAMP、MysqL 等等 – 配置变更:Nginx 配置、MysqL 配置、Redis 配置等等 – 业务部署:配合 git、jenkins 等实现自动化持续交付 – 日常备份:脚本对项目或者软件实现全备份或者增量备份等 – 信息采集:硬件、系统、服务、网络等各种数据的自动采集 – 日志分析:获取日志、排序、去重、统计、分析 – 服务扩容:监控服务器就请你信息,脚本程序自动化扩容部署 减少重复工作,周期性工作,降低工作量
-
shell编程的核心
-
执行shell 脚本
mkdir scripts vim test.sh #!/bin/bash echo "hello world" 执行上述脚本 1. bash test.sh 2. sh.test.sh 3. chmod u+x test.sh ./test.sh
-
变量
-
程序控制结构
顺序结构,选择结构,循环结构
-
1.选择结构
单分支 if 条件;then 条件为True要执行的代码 fi 案例:查看ls命令在文件系统环境变量中的位置,查看返回ok which ls vim 1.sh #!/bin/bash if which ls;then echo ok fi 双分支 if 条件;then 条件为True要执行的代码 else 其他情况 fi 案例:搜索当前用户有没有zhang,找到返回OK,找不到返回error vim 2.sh #!/bin/bash if grep zhang /etc/passwd;then echo "ok" else echo "error" fi 多分支 if [ 条件1 ];then 执行代码1 elif [ 条件2 ];then 执行代码2 elif [ 条件3 ];then 执行代码3 else 其他情况 fi 案例操作:输入1,输出选项1,输入2,输出选项2 vim 3.sh #!/bin/bash read -p "请输入功能选项": choice if [ $choice -eq 1 ];then echo "选项1" elif [ $choice -eq 2 ];then echo "选项2" elif [ $choice -eq 3 ];then echo "选项3" else echo "没有此选项" fi = 判断相关字符是否相等 案例操作,用户输入“Q”退出系统.输入“C”,继续 vim 4.sh #!/bin/bash read -p "是否退出系统?(Q/退出,C/继续)" ret if [ $ret = "Q" ];then echo "退出系统" elif [ $ret = "C" ];then echo "continue" else echo "指令错误" fi
-
case选择结构
case 变量 in 变量 1) 命令序列 1 ;; 变量 2) 命令序列 2 ;; *) 无匹配后命令序列 esac 案例操作:显示功能选项界面,输入序号好功能名称都可以执行 vim 5.sh #!/bin/bash echo "==============" echo " 1.login" echo " 2.register" echo " 3.exit" echo "==============" read -p "请输入功能选项" choice case $choice in 1|login) echo "欢迎登录" ;; 2|register) echo "欢迎注册" ;; 3|exit) echo "退出系统" ;; *) esac
-
-
for 循环
基本操作语法: for 变量名 in [取值列表] do 循环中重复执行的代码 done 案例:检查所有的ip地址通讯 vim 6.sh #!/bin/bash hosts="192.168.1.1 192.168.1.2 192.168.1.3" for h in $hosts do echo "开始检查$h通讯" sleep 1 echo "检查$h通过" done echo "所有ip检查通过"
-
while 循环
while 条件 do 循环要执行的代码 done #案例操作:计算1-100之间的和 vim 7.sh #!/bin/bash num=1 sum=0 while [ $num -le 100 ] do sum=$[ $num + $sum ] let num+=1 done echo 1-100的和是$sum
-
function 函数名称(){ 函数中的代码 } 快捷写法 函数名(){ 函数中的代码 } 案例操作 vim 8.sh #!/bin/bash function func1(){ echo 执行func1函数 } func2(){ echo 执行func2函数 } func1 func2
检查输入的ip地址是否可以ping通
vim 9.sh #!/bin/bash read -p "请输入你要测试的ip地址" IP ping -w1 -c1 $IP>/dev/null #echo $? if [ $? -eq 0 ];then echo "可以正常通信" else echo "不能通信" fi
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。