循环结构

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. PHP与XML

    代码: <?php $dom= new DomDocument('1.0'); $books=$dom->appendChild($dom->createElement_x_x('b ...

  2. Intellij IDEA 15 如何同时打开多个项目

    标题:Intellij IDEA 15 如何同时打开多个项目 作者原创技术文章,转载请注明出处 我们在编程时常常需要打开多个项目,例如操作复制黏贴或者参考其他项目等等,但是编译器Intellij ID ...

  3. Go笔记-流程控制

    [if] if 是用于测试某个条件的语句,如果该条件(逻辑型或布尔型)成立,则会执行大括号内的代码,第一个大括号必须和if 或者else同行,否则非法 // 方式1 if condition { // ...

  4. Java基础之Throwable,文件加载

    Java中的异常与错误都继承自Throwable,Exception又分为运行时异常(RuntimeException)和编译时异常. 运行时异常是程序的逻辑不够严谨或者特定条件下程序出现了错误,例如 ...

  5. web前端性能优化问题

    常用的几大优化解决: 页面内容的优化 减少http请求 途径: 1>启用http/2--越来越多的浏览器都开始支持 HTTP/2.HTTP/2 为同一服务器的并发连接问题带来了很多好处.换句话说 ...

  6. 洛谷 [P2024] 食物链

    并查集 这是一道比较特殊的并查集,开一个三倍的数组, 1-n保存同类,n-n×2保存猎物,n2~n3保存天敌: #include <iostream> #include <cstdi ...

  7. qt的编译

    cp qt-everywhere-opensource-src-5.5.0.tar.gz /opt/qt/2.1 解压qt源码 sudo tar xzf qt-everywhere-opensourc ...

  8. 在阿里云CentOS 7创建swap分区

    https://blog.tanteng.me/2016/03/aliyun-centos-7-swap/ Centos 系统swap虚拟内存添加与删除配置

  9. 关于ssh登录出现异常警告:WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!

    提示警告信息如下: arnold@WSN:~$ ssh 10.18.46.111 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ...

  10. ftp服务器的简单配置使用

    yum install -y vsftpd systemctl start vsftpd   cd /var/ftp/pub/   mkdir 111   touch weifeng.txt     ...