6. Shell 流程控制
1. 条件选择流程
1.1 if
#!/bin/bash
# if 格式
#if condition
#then
# command1
# command2
# ...
# commandN
#fi
# 如果写出一行一般格式如下:
# if [ condition ]; then command1; fi
num1=10
num2=20
if [ $num1 -lt $num2 ]
then
echo 'true'
fi
if [ $num1 -lt $num2 ] ; then echo 'true'; fi
if test $num1 -lt $num2 ; then echo 'true'; fi
1.2 if else
#!/bin/bash
# if else 格式
#if condition
#then
# command1
# ...
#else
# command1
# ...
#fi
num1=10
num2=20
if [ $num1 -gt $num2 ]
then
echo 'true'
else
echo 'false'
fi
1.3 if else-if else
#!/bin/bash
# if else-if else 格式
#if condition
#then
# command1
# ...
#elif condition
# command1
# ...
#then
# command1
# ...
#else
# command1
# ...
#fi
num1=10
num2=20
if [ $num1 -eq $num2 ]
then
echo '=='
elif [ $num1 -gt $num2 ]
then
echo 'true'
else
echo 'false'
fi
2. 循环控制
2.1 for
#!/bin/bash
#格式
#for var in item1 item2 ... itemN
#do
# command1
# command2
# ...
# commandN
#done
#
#for var in item1 item2 ... itemN; do command1; command2… done;
loop_val=(1 2 3 4 5)
for val in ${loop_val[@]}
do
echo $val
done
for val in ${loop_val[@]} ; do echo $val; done
for str in 'This is a string'
do
echo $str
done
2.2 while
#!/bin/bash
#while condition
#do
# command
#done
index=1
while [ $index -le 5 ]
do
echo $index
let "index++"
done
2.3 until 循环
#!/bin/bash
#until condition
#do
# command
#done
index=1
until [ $index -gt 5 ]
do
echo $index
let "index++"
done
2.4 case
esac(就是case反过来)作为case语句的结束标记,每个case分支用右圆括号,用两个分号表示break。
#!/bin/bash
#case 值 in
#模式1)
# command1
# ...
# ;;
#模式2)
# command1
# ...
# ;;
#esac
echo '输入 1 到 4 之间的数字:'
echo '你输入的数字为:'
read aNum
case $aNum in
1) echo '你选择了 1'
;;
2) echo '你选择了 2'
;;
3) echo '你选择了 3'
;;
4) echo '你选择了 4'
;;
*) echo '你没有输入 1 到 4 之间的数字'
;;
esac
3. 跳出循环
3.1 break命令
while :
do
echo -n "输入 1 到 5 之间的数字:"
read aNum
case $aNum in
1|2|3|4|5) echo "你输入的数字为 $aNum!"
;;
*) echo "你输入的数字不是 1 到 5 之间的! 游戏结束"
break
;;
esac
done
3.2 continue命令
while :
do
echo -n "输入 1 到 5 之间的数字: "
read aNum
case $aNum in
1|2|3|4|5) echo "你输入的数字为 $aNum!"
;;
*) echo "你输入的数字不是 1 到 5 之间的!"
continue
echo "游戏结束"
;;
esac
done
6. Shell 流程控制的更多相关文章
- Shell 流程控制-if for case while until break continue
Shell 流程控制 和Java.PHP等语言不一样,sh的流程控制不可为空,如(以下为PHP流程控制写法): <?php if (isset($_GET["q"])) { ...
- 九、Shell 流程控制
Shell 流程控制 和Java.PHP等语言不一样,sh的流程控制不可为空,如(以下为PHP流程控制写法): <?php if (isset($_GET["q"])) { ...
- 吴裕雄--天生自然ShellX学习笔记:Shell 流程控制
和Java.PHP等语言不一样,sh的流程控制不可为空,如(以下为PHP流程控制写法): <?php if (isset($_GET["q"])) { search(q); ...
- 『忘了再学』Shell流程控制 — 33、if条件判断语句(一)
目录 1.单分支if条件语句 2.双分支if条件语句 (1)示例1 (2)示例2 什么是流程控制? 普通理解:Shell编写的程序是顺序执行的,也就是说第一命令先执行,然后接着执行第二条命令,然后再下 ...
- 『忘了再学』Shell流程控制 — 39、特殊流程控制语句
目录 1.特殊流程控制语句介绍 2.exit语句 3.break语句 4.continue语句 1.特殊流程控制语句介绍 Shell程序或者说其他的程序,都是顺序执行的,也就是第一行执行完再执行第二行 ...
- SHELL编程笔记(二)之shell流程控制
Shell控制流程结构 本章内容有: 退出状态 While.for和until loops循环 If then else语句 脚本中动作 菜单 条件控制语句 If then els ...
- linux shell学习之shell流程控制
在linux shell编程中,流程控制结构与语句,也算是shell脚本中的重点了,不了解的朋友,跟随脚本小编一起来学习下吧. linux控制流结构学习. 一,shell控制流结构 1.控制结构 ...
- linux shell 流程控制(条件if,循环【for,while】,选择【case】语句实例 --转载
http://www.cnblogs.com/chengmo/archive/2010/10/14/1851434.html nux shell有一套自己的流程控制语句,其中包括条件语句(if),循环 ...
- linux shell 流程控制
导读 和Java.PHP等语言不一样,linux shell有一套自己的流程控制语句,其中包括条件语句(if),循环语句(for,while),选择语句(case).下面我将通过例子介绍下,各个语句使 ...
- Linux Shell——流程控制
1. 创建交互式脚本 使用 echo命令的选项 关于各种命令的使用,可以使用man 命令来查看命令的详细用法介绍.例如,我想看下 echo 的用法和各种选项.可以执行 man echo.执行结果如下: ...
随机推荐
- 关于Update语句的锁
关于Update语句的锁 环境:MSSQL2005,在Read Committed级别 语句A:begin tranUpdate Table Set f1='xxx' where f2='ttt' ...
- VIM 多行输入 数字递增 新方法 循环记录法
采用的是mario register这个方法,然后,把一段 auto-increament 操作记录下来,然后playback 循环往复多次.就达到了,每行都递增的目的. 我写的文字如下: vim 输 ...
- HDU 2073 无限的路
Problem Description 甜甜从小就喜欢画图画,最近他买了一支智能画笔,由于刚刚接触,所以甜甜只会用它来画直线,于是他就在平面直角坐标系中画出如下的图形: 甜甜的好朋友蜜蜜发现上面的图还 ...
- 详解android的号码匹配
什么是号码匹配,个人理解,即判断两组号码是否属于同一个号码.在实际使用过程中,接触到的号码会涉及到区号,国家编码以及IP号码等,这个时候就用到了号码匹配.两个内容不一样的号码,如+86***和1795 ...
- 关闭Windows 2008下面应用程序出错后的提示
写了一个服务器端程序,没有能处理所有的错误,总有一些错误会抛出到系统中去.于是写了一个进程守护者,一旦发现服务器端退出,可以在第一时间重新启动服务器,也算是一种折中的方案吧.理论上讲应该是可行的,但是 ...
- Linux:备份
一.每日备份数据 该脚本backupday.sh用来每日备份你需要备份的文件或目录 使用办法 1)打开脚本修改要备份的目录或文件和备份到的目录(如从A备份到B) 2)修改后运行脚本 需要备份数据时,直 ...
- 【翻译】Asp.net Core介绍
ASP.NET Core is a significant redesign of ASP.NET. This topic introduces the new concepts in ASP.NET ...
- 【转】经典!python中使用xlrd、xlwt操作excel表格详解
最近遇到一个情景,就是定期生成并发送服务器使用情况报表,按照不同维度统计,涉及python对excel的操作,上网搜罗了一番,大多大同小异,而且不太能满足需求,不过经过一番对源码的"研究&q ...
- SR-IOV简介
转载:http://docs.oracle.com/cd/E38902_01/html/E38873/glbzi.html SR-IOV 技术是一种基于硬件的虚拟化解决方案,可提高性能和可伸缩性.SR ...
- Jmeter之基本介绍
初学Jmeter,以下是我常用的功能,总结一下. 1.Thread Group线程组 线程组,即:虚拟用户组