`
jias_je
  • 浏览: 40554 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

linux shell 条件控制

 
阅读更多

以下的总结大部分copy这个地址http://www.cnblogs.com/chengmo/archive/2010/10/14/1851434.html上看到的关于linux shell编程中条件控制上的介绍,看了一些shell条件控制上的介绍,还是这个较为亲切:

 

首先要强调一点,关于分号的使用

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

   之前看到有的地方用';',有的地方又不用,这下让我们这些c系和java系的倍感亲切,没事你就多加几个;;;吧。

 

1 if 语句(if then fi)

结构:

if 条件测试语句

then

action

[elif 条件

action

else

action

]

fi

 

实例:

#!/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;

 

其中if和fi配对,if else 变成了ifelse,这个和c的宏定义很像 #ifdef #endif颇类似,

2  for … in 语句

结构:

for 变量 in seq字符串

do

action

done                                                                                                                            

 

实例:

#!/bin/sh

#seq 10命令将产生 1 2...10序列 

for i in $(seq 10); do
    echo $i;
done;

 

这儿要说明的一点是 in后面的所谓list其实是以空格分开的,如 "abc" 3 "jias",这和一般的list表示是有些区别的,我们正常的理解list应该长这个样子是   "abc",3,"jias"

 

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

结构:

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

do

action

done;

实例:

#!/bin/sh

for((i=1;i<=10;i++));do
    echo $i;
done;

 

这个和javascript循环就很像了。但强烈建议 echo 后面的内容或变量最好放在 " "内

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

结构:

while 条件语句

do

action

done;

实例1:

#!/bin/sh
i=10;

#当变量大于5时成立
while [[ $i -gt 5 ]];do 
    echo $i;
    ((i--));
done;

 

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

#!/bin/sh

#从文本里每次读一行,read是关键字,read也可以接受控制台的输入,不一定读文件

while read line;do
    echo $line;
done < /etc/hosts;

这里也可以学到读取文件的方式 文件名为  /etc/hosts 主机配置文件

 

5 until循环语句

 

结构:

until 条件

do

action

done

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

 

实例:

#!/bin/sh

a=10;

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

echo $a;

((a--));

done;

 

6 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

 

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多为控制台的提示输入,这个在用到一些服务器时经常会配到这类风格的东西,select in后面和for in后面的list结构都是一样的

 

#在ubuntu下做以上测试,如果遇到 Syntax error: Bad for loop variable

解决方法是 取消dash
sudo dpkg-reconfigure dash
在选择项中选No,即可。

 

分享到:
评论

相关推荐

    linux shell学习资料

    《Linux Shell编程艺术》可能会详细讲述Shell的语法特性,包括变量、条件语句、循环结构、函数定义、输入/输出重定向等。这本书可能会深入探讨如何利用Shell的高级特性,如正则表达式、管道、进程控制和信号处理,来...

    linux_shell实例精解

    2. **Shell语法**:讲解变量、条件表达式、流程控制(如if、for、while循环)、函数等基本语法元素,帮助读者构建脚本的基础框架。 3. **文件与目录操作**:如何创建、删除、移动、复制文件和目录,以及文件查找、...

    linux shell 视频教学

    条件语句(if-else)和循环结构(for、while)是控制流程的重要组成部分,让脚本能根据不同的条件执行不同的命令序列。此外,你还将学习如何使用case语句实现多分支选择。 函数在Shell编程中同样重要,它们可以封装...

    Linuxshell编写demo

    本文将深入探讨Linux Shell编写的基础知识,包括基本概念、常用命令、变量与参数、流程控制以及函数的使用。 首先,Shell是一个命令解释器,它接收用户输入的命令并执行。在Linux系统中,常见的Shell有Bash(Bourne...

    Linuxshell大作业.pdf

    8. 循环与条件判断:文档中出现循环控制结构(while、do...done)和条件判断结构(if、elif、else),这是Shell编程中常用的控制逻辑。 9. 脚本使用交互式输入:文档显示脚本需要用户的交互式输入,例如读取用户名...

    LinuxShell编程基础.pdf

    Linux Shell 编程基础包括了解 Shell 的基本概念、Shell 变量、条件语句、循环语句、函数等。掌握这些基础知识后,可以编写出更加复杂的 Shell 脚本,实现自动化任务、数据处理、系统管理等功能。 1. Shell 变量 ...

    linux shell 编程经典 教程

    Linux Shell编程是Linux系统管理与自动化任务处理的重要组成部分。Shell是一种命令行解释器,它提供了与操作系统交互的接口,允许用户执行系统命令、编写脚本并进行文件操作。本教程将深入探讨Linux Shell编程的经典...

    LinuxShell脚本编程实例

    Linux Shell脚本编程实例 Linux Shell脚本编程实例是指使用Linux Shell...Linux Shell脚本编程实例是Linux Shell脚本编程的基础,涵盖了 Linux Shell脚本编程的所有方面,包括变量、控制结构、函数、环境变量等等。

    Linux Shell Scripting Cookbook Second Edition

    之后是脚本内容,可以包括变量赋值、条件判断、循环控制、函数定义以及各种Linux命令。 Shell脚本能够处理多种文本和数据,包括字符串和数字的比较、文件的读写、文本的搜索和替换等。这些操作在进行数据处理和日志...

    linux shell脚本攻略源代码

    Linux Shell脚本是一种在Linux操作系统环境下执行的命令行脚本,它允许用户通过编写一系列的命令来自动化系统任务。Shell脚本是Linux环境中的强大工具,尤其对于系统管理员和开发者而言,能有效提高工作效率。本资源...

    linux shell编程手册

    3. **流程控制结构**:Shell脚本支持条件语句(如`if`、`if-else`、`case`)和循环语句(如`for`、`while`、`until`)。这些控制结构使我们能够根据特定条件执行不同代码块,实现复杂的逻辑。 4. **函数与别名**:...

    Linux Shell 脚本攻略

    **Linux Shell 脚本攻略** 在信息技术领域,Linux Shell脚本是系统管理员和程序员们进行自动化任务处理的重要工具。Shell脚本允许用户通过编写简单的命令序列来执行一系列复杂的操作,极大地提高了工作效率。本攻略...

    LINUX SHELL 脚本攻略

    Linux Shell脚本攻略是一本针对Linux操作系统下Shell脚本编写的指导书籍。Shell脚本是利用Shell编程语言来控制和自动化命令序列的脚本,常用于系统管理、服务器管理、自动化任务处理等领域。本书的第三版包含了全面...

    linux shell 编程教材配套PPT

    4. **控制结构**:条件语句(if-else、case)和循环结构(for、while、until),用于实现基于条件的程序流程控制。 5. **函数**:如何定义和调用Shell函数,提高代码复用性。 6. **参数处理**:脚本接收命令行参数...

    linux_shell从初学到精通

    Linux Shell是Linux操作系统中用于与系统交互的一种命令行接口,它是Linux系统中极其重要的组成部分。Shell不仅是一个命令解释器,还是一种强大的编程语言,能够帮助用户自动化日常的系统管理任务。本教程“Linux ...

    linuxshell专题讲座.docx

    每个shell命令和脚本都有其执行权限,通常由文件的权限位控制。在Linux中,`chmod`命令用于改变文件的权限,而`chown`和`chgrp`则用于更改文件的所有者和组。此外,使用`setuid`和`setgid`位可以允许普通用户执行...

    linux shell 脚本入门

    Linux Shell脚本是Linux系统中用于自动化任务的强大工具,它基于Bash或其他Shell解释器,允许用户编写一系列命令,以实现批处理、任务调度或任何需要自动化的工作流程。本PDF文档"shell-script-entry.pdf"提供了18页...

    linux shell 编程1

    2. **控制结构**:包括条件语句(如`if-else`)和循环语句(如`for`、`while`)。这些结构允许程序根据不同的条件执行不同分支或重复执行某些代码。 3. **函数**:用于封装可重用的代码块。在Shell中,可以使用`...

    Linux shell 脚本攻略

    **Linux Shell脚本攻略概述** Linux Shell脚本是Linux操作系统中一种强大的自动化工具,它允许用户通过编写脚本来执行一系列命令,实现系统管理和任务自动化。本书《Linux Shell脚本攻略》(第2版)深入浅出地介绍...

    Linux shell 详细教程

    **Linux Shell 详细教程** Linux Shell,作为操作系统与用户交互的主要接口,是Linux系统中不可或缺的一部分。它不仅是一个命令行解释器,同时也是一种强大的编程语言,允许用户通过编写脚本执行自动化任务。本教程...

Global site tag (gtag.js) - Google Analytics