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 ...
随机推荐
- iOS页面切换动画实现方式。
iOS页面切换动画实现方式. 1.使用UIView animateWithDuration:animations:completion方法 Java代码 [UIView animateWithDura ...
- [UWP]合体姿势不对的HeaderedContentControl
1. 前言 HeaderedContentControl是WPF中就存在的控件,这个控件的功能很简单:提供Header和Content两个属性,在UI上创建两个ContentPresenter并分别绑 ...
- Sonar 数据库表关系整理一(rule相关)
更多原创测试技术文章同步更新到微信公众号 :三国测,敬请扫码关注个人的微信号,感谢! 原文链接:http://www.cnblogs.com/zishi/p/7510072.html 简介:Sonar ...
- python爬虫(3)——SSL证书与Handler处理器
一.SSL证书问题 上一篇文章,我们创建了一个小爬虫,下载了上海链家房产的几个网页.实际上我们在使用urllib联网的过程中,会遇到证书访问受限的问题. 处理HTTPS请求SSL证书验证,如果SSL证 ...
- react-native WebView 返回处理 (非回调方法可解决)
1.前言 项目中有些页面内容是变更比较频繁的,这些页面我们会考虑用网页来解决. 在RN项目中提供一个公用的Web页,如果是网页内容,就跳转到这个界面展示. 此时会有一个问题是,网页会有一级页面,二级页 ...
- ubuntu下smb的配置
PS: 转自Ubuntu中文论坛 -------------------------------------------------------------------------------- ...
- 【Tools】linux更改分辨率,解决虚拟机安装后太小的问题
Linux更改屏幕分辨率 1,分辨率模式已存在 1)如何查询是否存在: 终端输入命令:xrandr,即会输出当前已存在的分辨率模式. 2)如何配置: 使用命令xrandr --output 显示器名称 ...
- 炸金花的JS实现从0开始之 -------现在什么都不会(1)
新年结束了.回想起来唯一留下乐趣的就是在家和朋友玩玩炸金花. 遂有此文. 对不起,我这时候还没有思路. 让我捋一捋. ... ... 捋一捋啊... ... 好了.今天先这样吧: (1)先整理出所有的 ...
- Zabbix 3.0 监控Web
zabbix 界面配置 触发器添加
- 解决`向github提交代码是老要输入用户名密码`
在命令行输入命令:git config --global credential.helper store☞ 这一步会在用户目录下的.gitconfig文件最后添加: [credential] help ...