shell脚本基础 循环机构
循环结构
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脚本基础 循环机构的更多相关文章
- shell脚本-基础
shell脚本-基础 编程基础 程序是指令+ 数据 程序编程风格: 过程式:以指令为中心,数据服务于指令 对象式:以数据为中心,指令服务于数据 shell 程序提供了编程能力,解释执行. 计算运行二进 ...
- Linux shell脚本基础学习详细介绍(完整版)二
详细介绍Linux shell脚本基础学习(五) Linux shell脚本基础前面我们在介绍Linux shell脚本的控制流程时,还有一部分内容没讲就是有关here document的内容这里继续 ...
- Linux shell脚本基础学习详细介绍(完整版)一
Linux shell脚本基础学习这里我们先来第一讲,介绍shell的语法基础,开头.注释.变量和 环境变量,向大家做一个基础的介绍,虽然不涉及具体东西,但是打好基础是以后学习轻松地前提.1. Lin ...
- Shell脚本基础学习
Shell脚本基础学习 当你在类Unix机器上编程时, 或者参与大型项目如k8s等, 某些框架和软件的安装都是使用shell脚本写的. 学会基本的shell脚本使用, 让你走上人生巅峰, 才怪. 学会 ...
- 什么是Shell?Shell脚本基础知识详细介绍
这篇文章主要介绍了什么是Shell?Shell脚本基础知识介绍,本文是一篇Shell脚本入门文章,在本文你可学到什么是Shell.有多少种Shell.一个Shell脚本代码实例,需要的朋友可以参考下 ...
- 详细介绍Linux shell脚本基础学习
Linux shell脚本基础学习这里我们先来第一讲,介绍shell的语法基础,开头.注释.变量和 环境变量,向大家做一个基础的介绍,虽然不涉及具体东西,但是打好基础是以后学习轻松地前提.1. Lin ...
- shell脚本之循环语句与函数
shell脚本之循环语句与函数 echo的用法: echo -n #表示不换行输出 echo -e #输出转义字符,将转义后的内容输出到屏幕上 转义字符: \n :换行,被输出的字符从"\n ...
- Linux python3安装/shell脚本/if/循环/函数
python3安装 安装过程 安装包: wget https://www.python.org/ftp/python/3.7.0/Python-3.7.0.tgztar -xvf Python-3.7 ...
- 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 ...
随机推荐
- 豹哥嵌入式讲堂:ARM知识概要杂辑(4)- Cortex-M处理器性能指标
1.处理器的性能指标 用于评价CPU的性能指标非常多,不同的性能侧重点下的测试标准可能得出的指标值不同,下面介绍嵌入式行业广泛使用的两个经典的测试标准. 1.1 Dhrystone标准 Dhrysto ...
- 豆瓣爬虫小记(lowB版)
爬虫小记 学习玩python正则之后,想利用正则知识学学网络爬虫. 需求分析 按照自己平时浏览的网页,留意下哪个网页的信息对自己有价值,分析要爬取哪些网页信息.这里我先爬取简单的静态网页,豆瓣网经典电 ...
- 为什么说http协议是无状态的?
首先了解基本概念:什么是无状态,什么是无连接 无状态协议: 协议的状态是指下一次传输可以“记住”这次传输信息的能力. http是不会为了下一次连接而维护这次连接所传输的信息,为了保证服务器内存. 比如 ...
- android adb shell input各种妙用
项目中使用一个开发版,预留两个usb接口.类似华硕TinkerBoard. 一个用户连接摄像头,一个用于adb调试.结果就没了鼠标的接口.多次切换鼠标和摄像头插头,非常不方便,带摄像头的app没法调试 ...
- xBIM 应用与学习 (一)
目录 xBIM 应用与学习 (一) xBIM 应用与学习 (二) xBIM 基本的模型操作 xBIM 日志操作 XBIM 3D 墙壁案例 xBIM 格式之间转换 xBIM 使用Linq 来优化查询 x ...
- MySQL基本应用
1.默认类型转换 CREATE TABLE `indextest` (`id` int(10) AUTO_INCREMENT,`name` varchar(10) DEFAULT NULL, PRI ...
- 五、XML与xpath--------------爬取美女图片
除了正则表达式处理HTML文档,我们还可以用XPath,先将 HTML文件 转换成 XML文档,然后用 XPath 查找 HTML 节点或元素. 先用一个小实例开头吧(爬去贴吧每个帖子的图片): im ...
- DataGrid 拖动 附加属性类
项目需要实现一个DataGrid拖动排序,于是参考网上一些资源然后,修改了下实现了一个附加属性类,如下 使用方法 <DataGrid x:Name="shareGrid" t ...
- MongoDB安装篇-Win7 X64
介绍 MongoDB是一个基于分布式文件存储的数据库.由C++语言编写.旨在为WEB应用提供可扩展的高性能数据存储解决方案. MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库 ...
- spark RDD,DataFrame,DataSet 介绍
弹性分布式数据集(Resilient Distributed Dataset,RDD) RDD是Spark一开始就提供的主要API,从根本上来说,一个RDD就是你的数据的一个不可变的分布式元素集合,在 ...