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 流程控制的更多相关文章

  1. Shell 流程控制-if for case while until break continue

    Shell 流程控制 和Java.PHP等语言不一样,sh的流程控制不可为空,如(以下为PHP流程控制写法): <?php if (isset($_GET["q"])) { ...

  2. 九、Shell 流程控制

    Shell 流程控制 和Java.PHP等语言不一样,sh的流程控制不可为空,如(以下为PHP流程控制写法): <?php if (isset($_GET["q"])) { ...

  3. 吴裕雄--天生自然ShellX学习笔记:Shell 流程控制

    和Java.PHP等语言不一样,sh的流程控制不可为空,如(以下为PHP流程控制写法): <?php if (isset($_GET["q"])) { search(q); ...

  4. 『忘了再学』Shell流程控制 — 33、if条件判断语句(一)

    目录 1.单分支if条件语句 2.双分支if条件语句 (1)示例1 (2)示例2 什么是流程控制? 普通理解:Shell编写的程序是顺序执行的,也就是说第一命令先执行,然后接着执行第二条命令,然后再下 ...

  5. 『忘了再学』Shell流程控制 — 39、特殊流程控制语句

    目录 1.特殊流程控制语句介绍 2.exit语句 3.break语句 4.continue语句 1.特殊流程控制语句介绍 Shell程序或者说其他的程序,都是顺序执行的,也就是第一行执行完再执行第二行 ...

  6. SHELL编程笔记(二)之shell流程控制

    Shell控制流程结构 本章内容有:   退出状态   While.for和until loops循环   If then else语句   脚本中动作   菜单 条件控制语句 If then els ...

  7. linux shell学习之shell流程控制

    在linux shell编程中,流程控制结构与语句,也算是shell脚本中的重点了,不了解的朋友,跟随脚本小编一起来学习下吧. linux控制流结构学习. 一,shell控制流结构 1.控制结构   ...

  8. linux shell 流程控制(条件if,循环【for,while】,选择【case】语句实例 --转载

    http://www.cnblogs.com/chengmo/archive/2010/10/14/1851434.html nux shell有一套自己的流程控制语句,其中包括条件语句(if),循环 ...

  9. linux shell 流程控制

    导读 和Java.PHP等语言不一样,linux shell有一套自己的流程控制语句,其中包括条件语句(if),循环语句(for,while),选择语句(case).下面我将通过例子介绍下,各个语句使 ...

  10. Linux Shell——流程控制

    1. 创建交互式脚本 使用 echo命令的选项 关于各种命令的使用,可以使用man 命令来查看命令的详细用法介绍.例如,我想看下 echo 的用法和各种选项.可以执行 man echo.执行结果如下: ...

随机推荐

  1. lucene 查询+分页+排序

    lucene 查询+分页+排序 1.定义一个工厂类 LuceneFactory 1 import java.io.IOException; 2 3 import org.apache.lucene.a ...

  2. struts升级到最高版本后遇到的问题。关于actionmessage传递问题。

    Struts2升级到最新版本遇到的一些问题 首先是更换对应的jar,如asm.common.ongl.struts等等.更换后发现系统启动不了,按照网上的介绍,先后又更新了slf4j-log4j12- ...

  3. js中的true,false盲点

    上一篇博客提到了一个js的小问题,我当时的解释不太清晰,后面请教胡大大才弄明白js中的处理. js里面检查true和false的过程是这样的: 所以'0'在逻辑判断里面,是被当做true. if('0 ...

  4. 【原】tinker dex文件格式的dump工具tinker-dex-dump

    序言 Tinker是微信推出的热更新开源项目,同其它热更新方案相比具有补丁包小,支持类,so,资源文件的替换等优点.其中在类替换的方案里自主研发了DexDiff算法,使得补丁包变的更小.DexDiff ...

  5. ClickOnce部署疑难杂症:更新时部署与应用程序标识不一致问题。要安装此应用程序,请修改此文件的清单版本或卸载之前存在的应用程序。

    使用ClickOnce部署winform应用程序.无论是安装或者自动更新都极为方便,但有时候一些疑难杂症也令人头疼 1.注意每次部署完成之后 setup.exe无需覆盖,只需要在Application ...

  6. 2017 01 16 校内小测 ZXR专场

    我等蒟蒻爆零之后,问LincHpin大爷:“此等神题可有甚么来头?” LincHpin:“此三题皆为当年ZXR前辈所留.” 固名之,ZXR专场,233~~~ T1 勤奋的YouSiki 这个题在BZO ...

  7. mongo数据库时间存储的问题

    题记:项目中要加的内容,可以实现对设备的预定,被某个用户预定后的设备就不能再被其他用户所使用了,用户预定的时候就需要输入预定时间,web前端用到了boostrap的date的一个插件,非常好用,接下来 ...

  8. ACM第二题 生理周期

    人生来就有三个生理周期,分别为体力.感情和智力周期,它们的周期长度为23天.28天和33天.每一个周期中有一天是高峰.在高峰这天,人会在相应的方面表现出色.例如,智力周期的高峰,人会思维敏捷,精力容易 ...

  9. 【angular】angular实现简单的tab切换

    html: <div class="list-group" ng-repeat="tab in menuList"> <a href=&quo ...

  10. CoreJavaE10V1P3.6 第3章 Java的基本编程结构-3.6 字符串 String

    String类(java.lang.String)就是Unicode字符序列,例如:"Java\u2122" 3.6.1 Substring 提取子串 String greetin ...