`

SHELL编程-流程控制

 
阅读更多

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;

 

image

条件测试有:[[]],[],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;

image

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;

image

 

 

  • 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;

运行结果:

image

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

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

 

转载自:http://www.cnblogs.com/chengmo/archive/2010/10/14/1851434.html

分享到:
评论

相关推荐

    Linux Shell编程-流程控制与循环(MD笔记)

    Linux Shell编程-流程控制与循环(MD笔记)

    Shell编程-流程控制-if语句

    ### Shell编程-流程控制-if语句 在Shell脚本编程中,流程控制是实现复杂逻辑的关键部分之一。其中,`if`语句是最基本也是最重要的流程控制结构之一,用于根据不同的条件来决定程序的执行路径。本文将详细介绍如何在...

    linux-Shell编程视频教程

    11.1 Shell编程-正则表达式.mp4 11.2.1 Shell编程-字符截取命令-cut命令.mp4 11.2.2 Shell编程-字符截取命令-printf命令.mp4 11.2.3 Shell编程-字符截取命令-...11.5.4 Shell编程-流程控制-while循环与until循环.mp4

    linux下shell编程--流程控制

    本文将深入探讨Shell编程中的流程控制,包括`for`、`while`、`until`循环,以及`case`条件选择和`select`交互式选择。此外,还将介绍一些关键的控制关键字和函数定义,以及`read`、`readonly`和`expr`表达式等相关...

    shell编程-unix

    《shell编程-unix》是一本专为Unix系统中的shell编程爱好者和专业人士精心编写的指南。本书全面深入地探讨了shell编程的各种技巧和核心概念,旨在帮助读者提升在Unix环境中利用shell脚本解决问题的能力。 第一部分...

    shell脚本入门-流程控制-Shell脚本中常用流程控制机制及其应用介绍

    本文介绍了Shell脚本中几种常用的流程控制结构,包括if语句、case语句、for循环、while循环以及until循环,每种结构都给出了具体的使用场景和实例说明,旨在帮助初学者快速掌握Shell脚本的基本流程控制方法。...

    Linux从零入门实战-Shell编程-b64_c3VuJTIwYm95-it720.pdf

    **Linux Shell编程简介** 在深入探讨Linux Shell编程之前,我们先来理解一下Shell的基本概念。Shell,简单来说,就是Linux系统中的用户界面,它为用户提供了一种与操作系统内核交互的方式。内核负责处理硬件资源和...

    shell编程--用户信息管理(模拟).doc

    【shell编程--用户信息管理(模拟)】 shell编程在Linux操作系统中扮演着重要角色,它是一种解释型的脚本语言,常用于自动化任务和系统管理。在这个课程设计中,学生被要求模拟用户信息管理,这涉及到对Linux系统中...

    shell编程入门经典--LINUX与UNIX Shell编程指南 (中文pdf版)

    3. **流程控制**:讲解if、else、for、while等条件和循环语句的用法。 4. **函数**:如何定义和调用自定义函数,以实现代码复用。 5. **输入/输出重定向**:如何改变命令的标准输入、输出和错误输出,实现文件操作...

    shell编程-基础.doc

    ### Shell 编程基础知识 ...这些知识点涵盖了 Shell 编程的基础内容,包括脚本创建、命令执行、变量定义与使用、条件判断、流程控制等方面。对于初学者来说,熟练掌握这些概念是进一步深入学习 Shell 编程的重要基础。

    商业编程-源码-Shell编程源代码 propsheethandler.zip

    Shell编程是一种在Unix/Linux操作系统环境下进行系统管理与自动化任务处理的脚本语言。...深入研究这个项目不仅可以提升对Shell编程的理解,还能学习到如何在实际业务中应用Shell脚本来优化流程,提高效率。

    Linux命令行与shell脚本编程- 控制脚本案例

    "Linux命令行与shell脚本编程- 控制脚本案例"这个主题深入探讨了如何利用这些工具来提升工作效率。以下是对相关知识点的详细说明: 1. **Linux命令行**:Linux命令行界面,也称为终端或控制台,是用户与系统交互的...

    02-SHELL编程之流程控制和循环语句

    3. 根据逻辑和语法结构来编写脚本(条件判断或者流程控制) 步骤: vim ping.sh #!/bin/bash # Name:ping.sh # Path:/shell02/ # Usage:/shell02/ping.sh # ... #获取远程主机的IP地址(定义变量让用户自己输入) ...

    商业编程-源码-Shell编程源代码 appbar_source.zip

    4. **流程控制**:在处理复杂任务时,Shell的流程控制结构如条件判断和循环是必不可少的。例如,通过`if`和`case`结构实现条件分支,通过`for`、`while`和`until`进行循环。 5. **脚本调试与错误处理**:良好的脚本...

Global site tag (gtag.js) - Google Analytics