循环结构

for循环格式一
格式:
for 变量 in 值1 值2 ........(值不一定是数字,可以是命令或者其他的)
do
命令
done

[root@ceshiji ~]# vim a.sh
#!/bin/bash
for x in `seq 1 255`
do(for循环整体要用do开始)
ping -c 10 -x 0.1 192.168.4.$x &>/dev/null(ping192.168.4.0网段的主机)
if [ $? -eq 0 ];then(判断上一个命令是否等于0)
echo "$x is up" >up.txt(等于显示up并把结果放入up.txt文件)
else
echo "$x is down" >down.txt(不等于显示down并把结果放入down.txt文件)
fi
done(done结束)

[root@ceshiji ~]# vim a.sh
#!/bin/bash
for x in 1 88 3 90
do
echo $x
done
for x in a da ads ffd
do
echo $x
done
for x in a b c
do
echo hello
done

实例:用脚本循环将/var/log/所有内容tar打包
[root@ceshiji ~]# vim a.sh
#!/bin/bash
for x in `ls /var/log`
do
tar -czf $x.tar /var/log/$x
done

for循环格式二
for ((x=1;x<=5;x++)) //++表示值本身叠加+1,--表示值本身叠加-1
do
echo $x
done

[root@ceshiji ~]# vim a.sh(用脚本写乘法口诀表)
#!/bin/bash
for ((x=1;x<=9;x++))
do
for ((y=1;y<=x;y++))
do
echo -n "$x*$y=$((x*y)) " //echo -n:不换行
done
echo
done

while循环条件式循环,反复测试条件,只要成立就执行命令
格式:
while [ 判断 ]
do
命令
done

死循环:
while :
do
命令
done

实例:
用脚本写个小程序,
查看cpu
查看内存
查看硬盘
查看ip

[root@ceshiji ~]# vim a.sh
#!/bin/bash
while :
do
echo "1.查看cpu
2.查看内存
3.查看磁盘
4.查看ip
5.退出
read -p "输入指令1-5:" x
if [ $x -eq 1 ];then
echo "CPU工作频率如下:"
cat /proc/cpuinfo |grep MH
read -p "按回车键继续"
elif [ $x -eq 2 ];then
echo "内存如下:"
free |grep +
read -p "按回车键继续"
elif [ $x -eq 3 ];then
echo "磁盘数据如下:"
df -h
read -p "按回车键继续"
elif [ $x -eq 4 ];then
echo "ip如下:"
ifconfig
read -p "按回车键继续"
elif [ $x -eq 5 ];then
exit
fi
done

——————————————————————————————————
case语句
case语句 == if语句
格式:
case 变量 in
值1)
命令;;
值2)
命令;;
值3)
命令
esac

[root@ceshiji ~]# vim a.sh
#!/bin/bash
case $1 in
a-z)
echo zimu;;
0-9)
echo shuzi;;
*)
echo "fuhao"
esac

————————————————————————————————————————
函数[避免重复的代码]

定义函数
函数名(){
命令
命令
}
调用函数
函数名

[root@ceshiji ~]# vim b.sh
#!/bin/bash
mymkdir(){
mkdir $1
cd $!
echo "ok"
}
mymkdir

脚本的中断:
cintinue:跳转到下一步执行
break:结束循环(只对循环有作用)
exit:退出
[root@ceshiji ~]# vim a.sh
#!/bin/bash
for i in {1...5}(i赋值1到5)
do
[ $i -eq 3 ] && continue(判断如果i等于3 跳转到下一步执行)
echo $i
done

[root@ceshiji ~]# ./a.sh
1
2
4
5

[root@ceshiji ~]# vim a.sh
#!/bin/bash
for i in {1..5}
do
[ $i -eq 3 ] && break(结束循环,只对循环有作用)
echo $i
done
echo ok
[root@ceshiji ~]# ./a.sh
1
2
ok
————————————————————————————————————————

shell脚本基础 循环机构的更多相关文章

  1. shell脚本-基础

    shell脚本-基础 编程基础 程序是指令+ 数据 程序编程风格: 过程式:以指令为中心,数据服务于指令 对象式:以数据为中心,指令服务于数据 shell 程序提供了编程能力,解释执行. 计算运行二进 ...

  2. Linux shell脚本基础学习详细介绍(完整版)二

    详细介绍Linux shell脚本基础学习(五) Linux shell脚本基础前面我们在介绍Linux shell脚本的控制流程时,还有一部分内容没讲就是有关here document的内容这里继续 ...

  3. Linux shell脚本基础学习详细介绍(完整版)一

    Linux shell脚本基础学习这里我们先来第一讲,介绍shell的语法基础,开头.注释.变量和 环境变量,向大家做一个基础的介绍,虽然不涉及具体东西,但是打好基础是以后学习轻松地前提.1. Lin ...

  4. Shell脚本基础学习

    Shell脚本基础学习 当你在类Unix机器上编程时, 或者参与大型项目如k8s等, 某些框架和软件的安装都是使用shell脚本写的. 学会基本的shell脚本使用, 让你走上人生巅峰, 才怪. 学会 ...

  5. 什么是Shell?Shell脚本基础知识详细介绍

    这篇文章主要介绍了什么是Shell?Shell脚本基础知识介绍,本文是一篇Shell脚本入门文章,在本文你可学到什么是Shell.有多少种Shell.一个Shell脚本代码实例,需要的朋友可以参考下 ...

  6. 详细介绍Linux shell脚本基础学习

    Linux shell脚本基础学习这里我们先来第一讲,介绍shell的语法基础,开头.注释.变量和 环境变量,向大家做一个基础的介绍,虽然不涉及具体东西,但是打好基础是以后学习轻松地前提.1. Lin ...

  7. shell脚本之循环语句与函数

    shell脚本之循环语句与函数 echo的用法: echo -n #表示不换行输出 echo -e #输出转义字符,将转义后的内容输出到屏幕上 转义字符: \n :换行,被输出的字符从"\n ...

  8. Linux python3安装/shell脚本/if/循环/函数

    python3安装 安装过程 安装包: wget https://www.python.org/ftp/python/3.7.0/Python-3.7.0.tgztar -xvf Python-3.7 ...

  9. shell脚本 基础应用

    变量分为普通变量可只读变量 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 ...

随机推荐

  1. iOS页面切换动画实现方式。

    iOS页面切换动画实现方式. 1.使用UIView animateWithDuration:animations:completion方法 Java代码 [UIView animateWithDura ...

  2. [UWP]合体姿势不对的HeaderedContentControl

    1. 前言 HeaderedContentControl是WPF中就存在的控件,这个控件的功能很简单:提供Header和Content两个属性,在UI上创建两个ContentPresenter并分别绑 ...

  3. Sonar 数据库表关系整理一(rule相关)

    更多原创测试技术文章同步更新到微信公众号 :三国测,敬请扫码关注个人的微信号,感谢! 原文链接:http://www.cnblogs.com/zishi/p/7510072.html 简介:Sonar ...

  4. python爬虫(3)——SSL证书与Handler处理器

    一.SSL证书问题 上一篇文章,我们创建了一个小爬虫,下载了上海链家房产的几个网页.实际上我们在使用urllib联网的过程中,会遇到证书访问受限的问题. 处理HTTPS请求SSL证书验证,如果SSL证 ...

  5. react-native WebView 返回处理 (非回调方法可解决)

    1.前言 项目中有些页面内容是变更比较频繁的,这些页面我们会考虑用网页来解决. 在RN项目中提供一个公用的Web页,如果是网页内容,就跳转到这个界面展示. 此时会有一个问题是,网页会有一级页面,二级页 ...

  6. ubuntu下smb的配置

    PS:    转自Ubuntu中文论坛 -------------------------------------------------------------------------------- ...

  7. 【Tools】linux更改分辨率,解决虚拟机安装后太小的问题

    Linux更改屏幕分辨率 1,分辨率模式已存在 1)如何查询是否存在: 终端输入命令:xrandr,即会输出当前已存在的分辨率模式. 2)如何配置: 使用命令xrandr --output 显示器名称 ...

  8. 炸金花的JS实现从0开始之 -------现在什么都不会(1)

    新年结束了.回想起来唯一留下乐趣的就是在家和朋友玩玩炸金花. 遂有此文. 对不起,我这时候还没有思路. 让我捋一捋. ... ... 捋一捋啊... ... 好了.今天先这样吧: (1)先整理出所有的 ...

  9. Zabbix 3.0 监控Web

    zabbix 界面配置 触发器添加

  10. 解决`向github提交代码是老要输入用户名密码`

    在命令行输入命令:git config --global credential.helper store☞ 这一步会在用户目录下的.gitconfig文件最后添加: [credential] help ...