一、if语句、while、for循环各种小例题

1.用户验证

[root@bogon ~]# cat buer.sh
#!/bin/bash #user='buer'
#password='1234.com' read -p 'please your name:' user
read -p 'password:' passwd if [ $user = 'buer' -a $passwd = '1234.com' ];then
echo 'login successful'
fi

2.猜年龄

#!/bin/bash

age=57
read -p 'num:' num if [ $num -eq $age ];then
echo 'you get it'
elif [ $num -gt $age ];then
echo 'too big'
elif [ $num -lt $age ];then
echo 'too samll'
fi

3.查询成绩

[root@bogon ~]# cat score.sh
#!/bin/bash read -p 'please your score:' score if [ $score -ge 90 ];then
echo 'very good!'
elif [ $score -ge 70 -a $score -lt 90 ];then
echo 'good!'
elif [ $score -ge 60 -a $score -lt 70 ];then
echo 'just like'
else
echo 'poor'
fi

4.for循环打印1235

[root@bogon ~]# cat for.sh
#!/bin/bash for i in {1..5}
do
if ((i == 4));then
continue
#break
fi
echo '=======' $i
done

脚本4的执行结果:

[root@bogon ~]# ./for.sh
======= 1
======= 2
======= 3
======= 5

5.改进版的猜年龄

[root@bogon ~]# cat oldboy.sh 

oldboy=57
while :
do
read -p 'input your age:' age
if [ -z $age ];then
continue
fi
if [ $age -eq $oldboy ];then
echo "bingo"
break
elif [ $age -lt $oldboy ];then
echo "little"
elif [ $age -gt $oldboy ];then
echo "big"
else
echo "bye"
fi
done

脚本5结果:

[root@bogon ~]# ./oldboy.sh
input your age:45
too samll
input your age:65
too big
input your age:57
you get it
[root@bogon ~]#

6.查看文件类型

[root@bogon ~]# cat aa.sh
#!/bin/bash while :
do
read -p 'input your file:' file
if [ -z $file ];then
continue
elif [ $file = 'quit' ];then
break
fi
if [ -b $file ];then
echo "$file is block file"
elif [ -d $file ];then
echo "$file is directory file"
elif [ -f $file ];then
echo "$file is regular file"
else
echo "$file unkown"
fi
done

脚本6结果:

[root@bogon ~]# sh aa.sh
input your file:/etc
/etc is directory file
input your file:/pm
/pm unkown
input your file:quit

7.打印乘法口诀表

[root@bogon ~]# cat cheng.sh
#!/bin/bash for ((i=1;i<=9;i++))
do
for ((j=1;j<=i;j++))
do
echo -n "$i*$j=$[$i*$j]"
done
echo
done

脚本7结果:

[root@bogon ~]# ./cheng.sh
1*1=1
2*1=22*2=4
3*1=33*2=63*3=9
4*1=44*2=84*3=124*4=16
5*1=55*2=105*3=155*4=205*5=25
6*1=66*2=126*3=186*4=246*5=306*6=36
7*1=77*2=147*3=217*4=287*5=357*6=427*7=49
8*1=88*2=168*3=248*4=328*5=408*6=488*7=568*8=64
9*1=99*2=189*3=279*4=369*5=459*6=549*7=639*8=729*9=81

8.批量创建用户

[root@bogon ~]# cat add.sh
#!/bin/bash for i in {1..5};
do
useradd user$i && echo "user$i create successful"
done

脚本8执行结果:

[root@bogon ~]# sh add.sh
user1 create successful
user2 create successful
user3 create successful
user4 create successful
user5 create successful

9.批量删除用户

[root@bogon ~]# cat del.sh
#!/bin/bash for i in {1..5};
do
userdel -r user$i && echo "user$i delete successful"
done

脚本9执行结果:

[root@bogon ~]# sh del.sh
user1 delete successful
user2 delete successful
user3 delete successful
user4 delete successful
user5 delete successful

10.循环叠加打印数字,并睡眠1s

[root@bogon ~]# cat conut.sh
#!/bin/bash count=1
while ((count < 10))
do
echo '==========>' $count
sleep 1
((count+=1))
done

执行结果:

[root@bogon ~]# sh conut.sh
==========> 1
==========> 2
==========> 3
==========> 4
==========> 5
==========> 6
==========> 7
==========> 8
==========> 9

11.批量ping  ip

[root@bogon ~]# cat ping.sh
#!/bin/bash for i in {1..100};
do
ping -c1 192.168.16.$i &> /dev/null
if [ $? -eq 0 ];then
echo "192.168.16.$i OK"
echo "192.168.16.$i" >> /tmp/ip.txt
fi
done

12.模仿登录用户小工具

[root@bogon ~]# cat login.sh
#!/bin/bash user='buer'
passwd='1234.com'
while $tag
do
read -p 'input your name:' name
read -p 'input your passwd:' pas
if [[ $name = $user ]] && [[ $pas = $passwd ]];then
echo 'login successful'
while $tag
do
read -p '>>:' cmd
if [[ $cmd = 'quit' ]];then
tag=false
else
$cmd
fi
done
fi
done

执行结果:

[root@bogon ~]# sh login.sh
input your name:buer
input your passwd:1234.com
login successful
>>:ls
aa.sh a.txt del.sh oldboy.sh 模板 下载
add.sh buer.sh for.sh ping.sh 视频 音乐
age.sh cheng.sh initial-setup-ks.cfg score.sh 图片 桌面
anaconda-ks.cfg conut.sh login.sh 公共 文档
>>:pwd
/root
>>:quit
[root@bogon ~]#

shell之流程控制的更多相关文章

  1. shell编程--流程控制for,do-while,if-then,break,continue,case等

    2.5 流程控制 2.5.1 if语法 1.语法格式 if condition then     statements [elif condition     then statements. ..] ...

  2. Shell工具| 流程控制

    1. 流程控制 if 判断 ()[ 条件判断式 ],中括号和条件判断式之间必须有空格 ()if后要有空格 [kris@hadoop datas]$ vim if.sh #!/bin/bash -eq ...

  3. shell编程流程控制

    前言: 在linux shell中,通常我们将一些命令写在一个文件中就算是一个shell脚本了,但是如果需要执行更为复杂的逻辑判断,我们就需要使用流程控制语句来支持了. 所谓流程控制既是通过使用流程控 ...

  4. 10、shell编程+流程控制+分支嵌套

    SHELL 编程     shell 是一个命令解释器,侦听用户指令.启动这些指令.将结果返回给用户(交互式的shell)     shell 也是一种简单的程序设计语言.利用它可以编写一些系统脚本. ...

  5. linux shell 之流程控制 if if else while

    (1)流程控制不可以为空: (2)if [ $(ps -ef | grep -c "ssh") -gt 1 ]; then echo "true"; fi 条件 ...

  6. shell 10流程控制

    if 判断 if #shell #!/bin/sh a=5 if [[ $a > 3 ]];then echo "$a>3" fi #写成一行 if [[ $a < ...

  7. Linux学习 -- Shell编程 -- 流程控制

    if语句 单分支 if [ 条件判断式 ]; then 程序 fi 或者 if [ 条件判断式 ] then 程序 fi 例子: 双分支 if [ 条件判断式 ] then 程序 else 程序 fi ...

  8. linux shell编程流程控制

    条件选择 单分支条件 多分支条件 选择执行if语句 单分支 if 判断条件;then 条件为真的分支代码 fi 双分支 if 判断条件; then 条件为真的分支代码 else 条件为假的分支代码 f ...

  9. Shell命令和流程控制

    Shell命令和流程控制 在shell脚本中可以使用三类命令: 1)Unix 命令: 虽然在shell脚本中可以使用任意的unix命令,但是还是由一些相对更常用的命令.这些命令通常是用来进行文件和文字 ...

随机推荐

  1. anaconda虚拟环境操作

    1.首先在所在系统中安装Anaconda.可以打开命令行输入conda -V检验是否安装以及当前conda的版本. 2.conda常用的命令. 1)conda list 查看安装了哪些包. 2)con ...

  2. jmeter接口测试--响应结果Unicode转码成中文

    jmeter接口测试-响应结果Unicode转码成中文 一般情况下,接口返回数据都会经过加密,所以有时相应结果会显示为Unicode,因此,需添加BeanShell PostProcessor,加入代 ...

  3. 牛客 小a与星际探索

    链接:https://ac.nowcoder.com/acm/contest/317/C来源:牛客网 小a正在玩一款星际探索游戏,小a需要驾驶着飞船从1号星球出发前往n号星球.其中每个星球有一个能量指 ...

  4. 贝叶斯网(1)尝试用Netica搭建简单的贝叶斯网并使用贝叶斯公式解释各个bar的结果

    近来对贝叶斯网十分感兴趣,按照博客<读懂概率图模型:你需要从基本概念和参数估计开始>给出的第一个例子,试着搭建了一个student网. (1)点击绿F,对条件概率表予以输入(包括两个祖先节 ...

  5. day02 智能合约

    上午 1>部署智能合约网络 语法 require 2>利用第三方的节点 同步到以太坊 3>智能合约部署的步骤: 1.查看区块 2.发布合约 deploy后台经历的事情:就是部署合约的 ...

  6. 以太坊remix IDE安装步骤

    Remix 以太坊Solidity IDE搭建与初步使用 以太坊: 因为以太坊为开源社区,虽然东西很优秀,但是组件十分的杂乱,因此首先简单介绍下以太坊的一些常用组件: Geth: Geth是由以太坊基 ...

  7. JavaWeb笔记(十二)日志

    日志 日志信息根据用途与记录内容的不同,分为调试日志.运行日志.异常日志等. Java常用记录日志 logger log4j log4j2 logback 其中除了logger使用的概率较小,因此主要 ...

  8. 基于phonegap,html5,ratchet,handlebars等技术的微表情APP

    该app是由很多有意思的微表情构成的,支持40种表情,并且每种表情都有不同的状态,主要有搜索表情,分享表情,摇一摇换表情等功能.目前只支持安卓版.由前期构思,到技术选型,到界面设计,到编码测试,再到发 ...

  9. 子组件通过$emit触发父组件的事件时,参数的传递

    子组件.vue <template> <div> <el-table :data="comSchemaData" highlight-current- ...

  10. Struts2-part1

    作者:禅楼望月(http://www.cnblogs.com/yaoyinglong) 1. Struts2应用的开发步骤: ① 在web.xml中配置核心的Filter来拦截用户的请求. <w ...