linux shell 有一套自己的流程控制语句,其中包括条件语句(if),循环语句(for,while),选择语句(case)。下面我将通过例子介绍下,各个语句使用方法。

一、shell条件语句(if用法)

if语句结构 [if/then/elif/else/fi]

if 条件测试语句

then

action

[elif 条件

action

else

action

]

fi

如果对于:条件测试语句不是很清楚,可以参考:linux shell 逻辑运算符、逻辑表达式详解

shell命令,可以按照分号分割,也可以按照换行符分割。如果想一行写入多个命令,可以通过“’;”分割。

如:

[chengmo@centos5 ~]$ a=5;if [[ a -gt 4 ]] ;then echo 'ok';fi;

ok

实例:(test.sh)

#!/bin/sh

scores=40;

if [[ $scores -gt 90 ]]; then

echo "very good!";

elif [[ $scores -gt 80 ]]; then

echo "good!";

elif [[ $scores -gt 60 ]]; then

echo "pass!";

else

echo "no pass!";

fi;

条件测试有:[[]],[],test 这几种,注意:[[]] 与变量之间用空格分开。

二、循环语句(for,while,until用法):

for循环使用方法(for/do/done)

语法结构:

1.for … in 语句

for 变量 in seq字符串

do

action

done

说明:seq字符串 只要用空格字符分割,每次for…in 读取时候,就会按顺序将读到值,给前面的变量。

实例(testfor.sh):

#!/bin/sh

for i in $(seq 10); do

echo $i;

done;

seq 10 产生 1 2 3 。。。。10空格分隔字符串。

2.for((赋值;条件;运算语句))

for((赋值;条件;运算语句))

do

action

done;

实例(testfor2.sh):

#!/bin/sh

for((i=1;i<=10;i++));do

echo $i;

done;

  • while循环使用(while/do/done)

while语句结构

while 条件语句

do

action

done;

实例1:

#!/bin/sh

i=10;

while [[ $i -gt 5 ]];do

echo $i;

((i--));

done;

运行结果:========================

sh testwhile1.sh

10

9

8

7

6

实例2:(循环读取文件内容:)

#!/bin/sh

while read line;do

echo $line;

done < /etc/hosts;

运行结果:===================

sh testwhile2.sh

# Do not remove the following line, or various programs

# that require network functionality will fail.

127.0.0.1 centos5 localhost.localdomain localhost

  • until循环语句

语法结构:

until 条件

do

action

done

意思是:直到满足条件,就退出。否则执行action.

实例(testuntil.sh):

#!/bin/sh

a=10;

until [[ $a -lt 0 ]];do

echo $a;

((a—));

done;

结果:

sh testuntil.sh

10

9

8

7

6

5

4

3

2

1

0

三、shell选择语句(case、select用法)

case选择语句使用(case/esac)

语法结构

case $arg in

pattern | sample)

# arg in pattern or sample

;;

pattern1)

# arg in pattern1

;;

*)

#default

;;

esac

说明:pattern1 是正则表达式,可以用下面字符:

* 任意字串

? 任意字元

[abc] a, b, 或c三字元其中之一

[a-n] 从a到n的任一字元

| 多重选择

实例:

#!/bin/sh

case $1 in

start | begin)

echo "start something"

;;

stop | end)

echo "stop something"

;;

*)

echo "Ignorant"

;;

esac

运行结果:======================

testcase.sh start

start something

  • select语句使用方法(产生菜单选择)

语法:

select 变量name in seq变量

do

action

done

实例:

#!/bin/sh

select ch in "begin" "end" "exit"

do

case $ch in

"begin")

echo "start something"

;;

"end")

echo "stop something"

;;

"exit")

echo "exit"

break;

;;

*)

echo "Ignorant"

;;

esac

done;

运行结果:

说明:select是循环选择,一般与case语句使用。

以上是shell的流程控制语句,条件,循环,选择。 欢迎讨论交流!

作者:程默,

www.cnblogs.com/chengmo/archive/2010/10/14/1851434.html

Linux Shell 流程控制语句实例相关推荐

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

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

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

    linux shell有一套自己的流程控制语句,其中包括条件语句(if),循环语句(for,while),选择语句(case).下面我将通过例子介绍下,各个语句使用方法. 一.shell条件语句(if ...

  3. linux shell 流程控制

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

  4. Linux入门 30_Linux中shell执行流控制语句实例详解

    1.for-do循环语句 for语句的作⽤为循环执⾏指定动作,其语句结构如下: for 定义变量 do 使⽤变量,执⾏动作 done 结束标志 for语句的基本格式有以下四种: 1)in后使用罗列方法 ...

  5. shell 流程控制语句

    case语句 case $变量名 in"值1")如果变量的值等于值1,则执行程序1 ;;"值2")如果变量的值等于值2,则执行程序2 ;;...省略其他分支.. ...

  6. 3.Linux Shell流程控制

    1.if/else结构 if condition thenstatements elif condition thenstatements elsestatements fi 2.条件 与C语言不同的 ...

  7. Linux shell编程学习实例与参数分析(一)

    第一章:shell基础 ●umask   --查看当前用户创建文件或文件夹时的默认权限 eg: [test@szbirdora 1]$umask 0002 [test@szbirdora 1]$ls ...

  8. Linux shell脚本编程实例

    1.编写一个shell脚本,它把第二个位置参数及其以后的各个参数指定的文件拷贝到第一个位置参数指定的目录中. #!/bin/bashdir=$1 shift #将位置参数移动一位(即原先的第二个位置参 ...

  9. Linux Shell脚本操作学习指南

    目录 Shell文件的规范 Shell文件的创建和运行 Shell文件语法 Shell传递参数 Shell参数校验 Shell数组 Shell运算符 Shell输出指令echo和printf Shel ...

  10. linux脚本判断流程控制,linux shell awk 流程控制语句(if,for,while,do)详细介绍

    在linux awk的 while.do-while和for语句中允许使用break,continue语句来控制流程走向,也允许使用exit这样的语句来退出.break中断当前正在执行的循环并跳到循环 ...

最新文章

  1. linux自动挂载方法,Linux操作系统下硬盘手工和自动挂载的方法
  2. react 禁止微信调整字体大小
  3. 【zookeeper+Dubbo】Dubbo与SpringBoot整合的三种方式
  4. 01-Vue博客后台管理页面框架搭建
  5. c#Ice开发之环境配置(一)
  6. createbitmap 旋转90度_Android Bitmap图片两种方案旋转90度的方法代码
  7. 对java的final,finally,finalize应用场景,你用对了吗
  8. kibana的query string syntax 笔记
  9. 鸿蒙 电视盒子,目前最强的电视盒子:性价比最高的5款电视盒子
  10. 3.Timing Constraints
  11. element-ui快速使用(使用element-ui做一个表格)
  12. python的分支语句if基本用法
  13. 盘点我用过的导出Excel的方法
  14. oracle11g exp 00028,解决Linux系统下exp导入EXP-00028异常
  15. 猪哥学习群直播第一期:人工智能在银行电信企业中的应用
  16. 广州大学城热水解锁卡dump
  17. 中国各大论坛链接地址(部分需要邀请码,稍感遗憾)!
  18. 漏洞预警| vm2 任意代码执行漏洞
  19. Chrome谷歌浏览器的WeChat微信模拟器,既可以设置模拟很多型号的手机设备Mozilla
  20. 单片机外设系列之一时钟芯片DS1302

热门文章

  1. angular之service、factory预provider区别
  2. Python核心编程学习日记之模块
  3. 说说低功耗的那些事儿
  4. 过滤DataTable中的指定字段重复的行
  5. Lightroom 教程,如何将照片从 Lightroom 移至Photoshop,在 Ps 中合并图像?
  6. 如何在 Mac 上给文件、文件夹和磁盘重新命名?
  7. mac电脑上的效率工具:alfred 4
  8. Office LTSC 2021 for Mac
  9. 两种方式从Mac计算机上的启动板菜单中删除应用程序?
  10. 如何查看macOS中的GPU使用情况