shell编程 之 流程控制(条件语句和循环语句)
1 if ...else...
基本格式:
if condition
then
commend
else
commend
fi
当然也可以写到一行,用[ ]表明边界,用;表示分行。比如: if [ $(ps -ef | grep -c "ssh") -gt 1 ]; then echo "true"; fi 判断条件用方括号括起来表示分界,意思是统计当下进程中
带’ssh‘的字符串数量,如果这个数量大于1,那就输出true,结束。
还有带elif的格式,如下:
if condition
then
commend
elif condition1
then
commend1
else
commend2
fi
实例:
a=10
b=20
if [ $a == $b ] #此处方括号和内部的内容之间必须有空格
then
echo "a 等于 b"
elif [ $a -gt $b ] #这种写法也可以改写成test $a -gt $b
then
echo "a 大于 b"
elif [ $a -lt $b ]
then
echo "a 小于 b"
else
echo "没有符合的条件"
fi
#注意,c=[ $a -lt $b ];echo $c 得不到任何输出值,它不和python一样,true和false不能被打印出来,实在是想试试的话,可以用[ $a -lt $b ] && echo hehe(||)也行(得到hehe就表示前面是ture) a=1
b=2
[ $a -lt $b ] && echo hehe1 #且,第一个为true的话,第二个仍需判断,这样才能知道总体是true还是false
[ $a -gt $b ] || echo hehe2 #或,第一个是true的话,第二个不用执行就能得到总体的返回值是true
2 for循环
基本格式:for i in item1 item2
do
commend
done
写成一行的时候仍然是分号隔开:for i in item1 item2; do commend; done
实例:
for loop in 1 2 3 4 5
do
echo "The value is: $loop"
done #结果是
#The value is:1
#The value is:2 ...一直到5
有一点得注意,for i in " a string",输出的i将会是:a string,这里和python不一样,这里不会把字母一个一个拆开迭代。
3 while循环
只要符合条件就一直执行。一般格式为:
while condition #condition 不写,或者写true,就可以导致无限循环。
do
commend
done
实例; #得到的输出是1,2,3,4,5,let用于计算多个表达式,不需要加上变量指示符号$,自加操作:let no++ ,自减操作:let no-- 。简写形式 let no+=10,let no-=20,分别等同于 let no=no+10,let no=no-20。
int=1
while(( $int<=5 )) #写成:[ $int -le 5 ]也行
do
echo $int
let "int++"
done
4 until循环
一直循环到有一个ture为止。和wihile正好相反
untill condition
do
commend
done
实例:
a=0 until [ ! $a -lt 10 ] #除非a大于等于10否则一直运行
do
echo $a
a=`expr $a + 1`
done
5 多选择语句
就是在多个语句中选一个,注意引号,换行。
实例:
aNum=3
case $aNum in #变量aNum可以是数字或者字符串abc等
1) echo '你选择了 1'
;; #俩分号
2) echo '你选择了 2'
;;
3) echo '你选择了 3'
;;
4) echo '你选择了 4'
;;
*) echo '你没有输入 1 到 4 之间的数字'
;;
esac #esca是反过来的
6 跳出循环
break命令跳出所有循环。
实例:
while :
do
echo -n "输入 1 到 5 之间的数字:"
read aNum
case $aNum in
1|2|3|4|5) echo "你输入的数字为 $aNum!"
;;
*) echo "你输入的数字不是 1 到 5 之间的! 游戏结束" #*表示除了12345以外的其他情况
break #直接跳出并且终止这个程序
;;
esac
done
continue 跳出这一层循环
实例:
while :
do
echo -n "输入 1 到 5 之间的数字: "
read aNum
case $aNum in
1|2|3|4|5) echo "你输入的数字为 $aNum!"
;;
*) echo "你输入的数字不是 1 到 5 之间的!"
continue #如果输入的值不是1-5之间的数,contiuune会直接调到” echo -n “输入1到5之间的数字”
echo "游戏结束"
;;
esac
done
shell编程 之 流程控制(条件语句和循环语句)的更多相关文章
- 自动化运维:(2)Shell 编程的流程控制
一. if语句 1.单分支if语句——单一条件,只有一个输出 #!/bin/bash # 单if语句的使用场景 if [ "$1" == "nan" ] the ...
- Linux学习笔记(18) Shell编程之流程控制
1. if语句 (1) 单分支if条件语句 格式为: # 注意条件判断式两端的空格if [ 条件判断式 ];then 程序员 fi 或者 if[ 条件判断式 ] then 程序 fi 例:判断分区使用 ...
- shell编程之流程控制
-d 判断该文件是否存在,并且是否为目录文件 -e 判断该文件是否存在 -f 判断该文件是否存在,并且是否为普通文件 形式 [ -e /home/cao/test.txt ] -r 文件 判断该文 ...
- shell脚本之流程控制
shell脚本之流程控制 shell脚本之流程控制 条件语句 条件判断 循环语句for,while,until for循环 while循环 until循环 循环控制语句continue 循环控制语 ...
- 【Shell 编程基础第二部分】Shell里的流程控制、Shell里的函数及脚本调试方法!
http://blog.csdn.net/xiaominghimi/article/details/7603003 本站文章均为李华明Himi原创,转载务必在明显处注明:转载自[黑米GameDev街区 ...
- linux下的Shell编程(3)shell里的流程控制
if 语句 if 表达式如果条件命令组为真,则执行 then 后的部分.标准形式: if 判断命令,可以有很多个,真假取最后的返回值 then 如果前述为真做什么 [ # 方括号代表可选,别真打进去了 ...
- shell脚本 3 流程控制
shell流程控制 流程控制是改变程序运行顺序的指令.linux shell有一套自己的流程控制语句,其中包括条件语句(if),循环语句(for,while),选择语句(case).下面我将通过例子介 ...
- Java编程基础——流程控制
Java编程基础——流程控制 摘要:本文主要介绍Java编程中的流程控制语句. 分类 流程控制指的是在程序运行的过程中控制程序运行走向的方式.主要分为以下三种: 顺序结构:从上到下依次执行每条语句操作 ...
- Shell命令和流程控制
Shell命令和流程控制 在shell脚本中可以使用三类命令: 1)Unix 命令: 虽然在shell脚本中可以使用任意的unix命令,但是还是由一些相对更常用的命令.这些命令通常是用来进行文件和文字 ...
随机推荐
- eclipse新建maven项目默认jre为1.5的问题
在maven的settings.xml中添加如下内容解决 <profiles> <profile> <id>jdk-1.8</id> <activ ...
- JAVA核心技术I---JAVA基础知识(对象与类)
一:规范 将每一个类存在一个单独的源文件中 Employee.java public class Employee { private int age; private float salay; pr ...
- [JVM-3]Java垃圾回收(GC)机制和垃圾收集器选择
哪些内存需要回收? 1.引用计数法 这个算法的实现是,给对象中添加一个引用计数器,每当一个地方引用这个对象时,计数器值+1:当引用失效时,计数器值-1.任何时刻计数值为0的对象就是不可能再被使用的.这 ...
- 【英文文档】Solidifier for Windows Installation Guide
Page 1Solidifier for Windows Installation Guide Page 2McAfee, Inc.McAfee® Solidifier for Windows In ...
- HDU 1030(三角数阵 数学)
题意是问在给定的三角形数阵中从一个数到另一个数所要跨过的边数. 最初的时候很迷,除了发现每层的数字个数与层数间的关系和每层数最后一个数与层数的关系外什么也没看出来,打算先求出数字所在的层数,然后计算到 ...
- 01-maya基础
maya基础 1,ctrl shift m 切换面板工具栏. 2,空格键+ 右键 :快速的切换视图. 3,在一视图上单击空格键,可放大显示. 4, 工程的创建 1,创建工程:文件--项目窗口,建完后, ...
- Javaweb学习笔记——(十二)——————JSP指令:page指令、include指令、taglib指令,JavaBean,内省,EL表达式
JSP指令JSP指令分类 JSP有三大指令: *page指令 *include指令 *taglib指令 在JSP中没有任何指令是必须的. 但基本上每个JSP都是使用page指令============ ...
- 九、uboot 代码流程分析---relloc_code
执行完 board_init_f 后,重新跳转回 _main 中执行. 9.1 relloc_code 前 9.1.1 gd 设置 在调用board_init_f()完成板卡与全局结构体变量 gd 的 ...
- 关于MySQL常用的查询语句
一查询数值型数据: SELECT * FROM tb_name WHERE sum > 100; 查询谓词:>,=,<,<>,!=,!>,!<,=>,= ...
- ubuntu安装matlab
https://blog.csdn.net/qq_36982160/article/details/78397514 https://blog.csdn.net/weixin_40294256/art ...