目录

1.for循环

2.if判断


1.for循环

for i in [取值列表]    可以取:数字 字符串 命令结果`` 序列
do 要执行什么命令
done

案列:测试1-255有多少个IP地址在线(能ping通则在线)10.0.0.1-255

[root@web01 /server/scripts]# cat pingv2.sh
#!/bin/sh
for i in {1..254}
do{ping -c2 -w1 10.0.0.$i >/dev/null 2>&1[ $? -eq 0 ] && echo 10.0.0.$i} &
done
wait
echo "在线取IP完成"

案例:批量创建10个用户
1)前缀为自己输入的字符
  输入用户处加判断是否为空
2)创建用户个数 判断是否是整数
3)用户密码统一使用123456
read -p "please input prefix:" pre
判断不能为空
read -p "please input number:" num
判断必须是整数
4)用户添加成功 则输出create is ok 失败提示 error
for i in `seq 10`;do userdel -r $pre$i;done

[root@web01 /server/scripts]# cat user.sh
#!/bin/sh
##create abin 2020-6-15
read -p "please input prefix:" pre
[ -z $pre ] && echo "请输入前缀名" && exit
read -p "please input number:" num
[ ! $num =~ ^[0-9]+$ ] && echo "请输入整数" && exit
for i in `seq $num`
douseradd $pre$i >/dev/null 2>&1[ $? -eq 0 ] && echo "$pre$i create is ok" || echo "create is error"echo 123456|passwd --stdin $pre$i >/dev/null 2>&1
done批量删除用户
for i in `seq 10`;do userdel -r abins$i;done

2.if判断

##单分支if [ 你有钱 ]
thenecho "我就嫁给你"
fi##双分支:相当于&& ||
if [ 你有钱 ]
thenecho "我就嫁给你"
elif [ 你有房 ]
thenecho "我也嫁给你"
fi##多分支
if [ 你有钱 ];then
echo ""
elif [ 你有房 ];then
echo ""
elif [ 你有车 ];then
echo ""
elif [  ];then
echo ""
else [  ];then     可以是else 也可以是elif结尾
echo ""
fi

总结:
单分支 一个条件 一个结果
双分支 一个条件 两个结果
多分支 多个条件 多个结果

案例:判断输入的两个数字的大小 输出结果

[root@web01 /server/scripts]# cat diffnum.sh
read -p "请输入两个整数:" num1 num2
if [ $num1 -gt $num2 ];then
echo "$num1 > $num2"
elif [ $num1 -lt $num2 ];then
echo "$num1 < $num2"
elseecho "$num1 = $num2"
fi

案例:猜数字 先输出一个随机数,read 猜随机数
如果你输入的小了就提示小了 如果大了就提示大了 如果对了则提示 猜对了

[root@web01 /server/scripts]# cat caisz.sh
#!/bin/sh
##create abin 2020-6-15
ran=`echo $((RANDOM%+1))`
while true
dolet i++
read -p "请输入你要猜的数字:" num
if [ $num -gt $ran ];thenecho "比随机数大了"
elif [ $num -lt $ran ];thenecho "比随机数小了"
elseecho "恭喜你 猜对了 总共猜了$i次"exit
fi
done[root@web01 /server/scripts]# sh caisz.sh
请输入你要猜的数字:50
比随机数大了
请输入你要猜的数字:25
比随机数大了
请输入你要猜的数字:10
比随机数大了
请输入你要猜的数字:5
比随机数大了
请输入你要猜的数字:0
恭喜你 猜对了 总共猜了5次

案例:按照不同的centos版本 安装不同的yum源
1)当前什么版本 如何取出来
2)if判断 如果是6 则安装6的yum源 7安装7yum源 5的安装5的yum源

[root@web01 /server/scripts]# cat osversion.sh
#!/bin/sh
##create abin 2020-6-15
os=`cat /etc/redhat-release|awk '{print $(NF-1)}'`
[ "$os" == "xxx" ] && os=`取centos6版本的命令`
if [ ${os%%.*} -eq 7 ];thenwhich wget >/dev/null 2>&1[ $? -ne 0 ] && yum -y install wgetmv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backupwget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
elif [ ${os%%.*} -eq 6 ];thenwhich wget >/dev/null 2>&1[ $? -ne 0 ] && yum -y install wgetwget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-6.repo
elsewhich wget >/dev/null 2>&1[ $? -ne 0 ] && yum install wgetwget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-8.repo
fi

案例:安装不同版本的PHP 5.5 7.1 7.2    (未完成)

[root@web01 /server/scripts]# cat menu.sh
#!/bin/sh
##create abin 2020-6-15
echo -e "\t\t\t######### 1.PHP install 5.5 #####"
echo -e "\t\t\t######### 2.PHP install 5.7 #####"
echo -e "\t\t\t######### 3.PHP install 7.1 #####"
echo -e "\t\t\t######### 4.PHP install 7.2 #####"
cat <<EOF1.INSTALL PHP5.52.INSTALL PHP5.63.INSTALL PHP7.14.INSTALL PHP7.2
EOFread -p "请输入你要安装的版本号" num
if [ $sum -eq 1 ];then yum install -y php5.5

面试题:
作业1:毕业项目案例:如何统计昨天一整天的数据 发送给领导 使用Nginx 或者apache
作业2:安装cacti流量监控 Linux+cacti 网上下载
作业3:安装CRT并可连接服务器
网络命令
dstat   实时查看网络流量
笔试题:Linux添加默认路由题:使用脚本 统计出系统的名称 版本号 内核版本 虚拟平台 eth1IP地址 eth0 IP地址 外网IP地址

[root@web01 /server/scripts]# cat os.sh
#!/bin/sh
System=$(hostnamectl |grep System|awk '{print $3,$4,$5}')
Kernel=$(hostnamectl|grep Kernel|awk -F: '{print $2}')
Vt=$(hostnamectl|grep Virtualization|awk '{print $2}')
Statichostname=$(hostnamectl|grep "Static hostname"|awk '{print $3}')
Eth0=$(ifconfig eth0|awk 'NR==2{print $2}')
Lo=$(ifconfig lo|awk 'NR==2{print $2}')
Network_T=$(curl -s icanhazip.com)
echo "当前系统版本是:$System"
echo "当前系统内核是:$Kernel"
echo "当前虚拟平台是:$Vt"
echo "当前静态主机名是:$Statichostname"
echo "当前Eth0IP地址是:$Eth0"
echo "当前lo地址是:$Lo"
echo "当前外网地址是:$Network_T"[root@web01 /server/scripts]# sh os.sh
当前系统版本是:CentOS Linux 7
当前系统内核是: Linux 3.10.0-862.el7.x86_64
当前虚拟平台是:vmware
当前静态主机名是:web01
当前Eth0IP地址是:10.0.0.7
当前lo地址是:127.0.0.1
当前外网地址是:117.157.169.44

Linux进阶之shell编程--if判断和for循环(四)相关推荐

  1. linux的shell编程课设,linux课程设计-shell编程.doc

    linux课程设计-shell编程.doc 还剩 18页未读, 继续阅读 下载文档到电脑,马上远离加班熬夜! 亲,很抱歉,此页已超出免费预览范围啦! 如果喜欢就下载吧,价低环保! 内容要点: fido ...

  2. linux 中输入bash,Linux上Bash Shell编程

    Linux下Bash Shell编程 Bash Shell Programming in Linux Linux下Bash Shell编程 Bash what? 进阶的内容是什么? Okay, I g ...

  3. 《Linux与unix Shell编程指南》 总结

    <Linux与unix Shell编程指南> 总结 标签: linux网络dstcron服务器 2011-01-10 18:27 3742人阅读 评论(0) 收藏 举报 分类: Linux ...

  4. shell编程入门 linux解释器原理,Shell编程入门Linux解释器原理详细介绍 使用Shell进行工作的人们对.doc...

    Shell编程入门Linux解释器原理详细介绍 使用Shell进行工作的人们对 Shell编程入门:Linux解释器原理详细介绍使用Shell进行工作的人们对Unix/Linux下的Shell编程都很 ...

  5. 2008年度LINUX与UNIX SHELL编程指北系列大片

    2008年度LINUX与UNIX SHELL编程 指北 系列大片 前言:这个世界是公平的,机会是平等的,学习的机会人人都有,只要你有不甘平庸的上进之心,定会成功! 主演:rootman rootman ...

  6. linux shell 文件空,linux shell编程 如何判断一个文件是否为空

    shell 判断文件/目录是否为空 jfkidear144932015-01-15 shell中如何判断一个变量是否为空 l_nan365492014-07-14 在shell中如何判断一个变量是否为 ...

  7. [No000014A]Linux简介与shell编程

    Linux 介绍 内核 库: .so 共享对象,windows:dll 动态链接库 应用程序 Linux的基本原则: 1.由目的单一的小程序组成:组合小程序完成复杂任务: 2.一切皆文件: 3.尽量避 ...

  8. Linux系统命令与Shell编程

    第1章 linux简介 1.linux系统主要特点 免费开源.Linux是一款完全免费的操作系统,任何人都可以从网络上下载到它的源代码,并可以根据自己的需求进行定制化的开发,而且没有版权限制. 模块化 ...

  9. linux怎么退出shell编程,Linux Shell编程(11)——退出和退出状态

    exit命令一般用于结束一个脚本,就像C语言的exit一样.它也能返回一个值给父进程. 每一个命令都能返回一个退出状态(有时也看做返回状态).一个命令执行成功返回0,一个执行不成功的命令则返回一个非零 ...

最新文章

  1. 2020 阿里云原生实战峰会开幕 云原生落地的正确姿势
  2. 前端展示 字数过多 进行隐藏
  3. c#与获得文件夹路径,站点目录
  4. 【液晶模块系列基础视频】4.5.X-GUI图形界面库-进度条等函数简介
  5. js substring和substr的区别实例,一目了然
  6. RoaringBitmap 原理
  7. 员工的12个需求及实现
  8. 对服务器端接口的调用,自己手写了一个脚本,但返回信息的中文总是乱码(这个方法很不错,重要的是解决思路,寻找手写脚本与录制脚本 生成目录文件的区别)...
  9. oracle物理结构视频教学,详解Oracle物理结构
  10. oppo强制升级android版本,OPPO R17升级更新安卓9.0固件rom刷机包:正式版本-C.10
  11. 织梦采集插件,翻译,采集,伪原创插件
  12. 解决天正M_批打印没有天正的打印格式(TArch20V6.ctb)的问题
  13. 2.2 DP: Value Iteration Gambler‘s Problem
  14. php 判断白天黑夜
  15. 使用python实现局域网文件共享(速度超快)
  16. STM32cubemx——超声波测距
  17. Anaconda 安装与 使用
  18. 如何改变php的语言变中文,如何使php将unicode转换中文
  19. 三步教你制作龙卷风迁徙地图
  20. OpenCV基于Python霍夫圆检测—基于梯度的霍夫圆检测

热门文章

  1. linux ms漏洞,Samba MS-SAMR/MS-LSAD中间人攻击漏洞(CVE-2016-2118)
  2. java 路径转换_java 绝对路径 转换成相对路径
  3. SwiftUI官方示例入门
  4. 机器学习小问题 -- 生成式模型与判别式模型
  5. Mac重置mysql密码
  6. iOS动画之【添加商品到购物车】:将商品图片icon 移动到购物车iocn的位置
  7. 使用深度学习进行音频分类的端到端示例和解释
  8. 用卷积神经网络实现表情识别
  9. Java中 Long(long) 和Integer(int)之间的强制转换
  10. c语言文件有什么作用,C语言文件的使用方法