转载请标明:http://www.cnblogs.com/winifred-tang94/

if条件语句语法:

if [ 条件表达式 ]

then

代码

else

代码

fi

注意:在上面的if条件语句中,if和 [ 之间要有空格,而条件表达式和两边的 [ ] 都要有空格,条件表达式不能紧挨着 [ 和 ]。

if条件表达式以fi结束。

Eg.

结果出现了以下问题:

原因是因为开头在#!后还要有一个/,加上/后解释器错误没有了,代码如下:

可是仍然有没有那个文件或目录的错误。对于这个错误我觉得是echo后的表达式有问题,于是注销了表达式,改输出small和bigger,结果程序运行正确,输出了small或者bigger。

所以对于echo后的表达式,我把表达式加上双引号,结果运行成功,没有问题了。

利用case表达式进行条件判断:

case 变量 in

str1)

命令串;;

str2)

命令串;;

*)

Eg.

刚才之所以出错,是因为代码没有正确结尾,case条件语句在shell中应该以esca结尾。

又出现错误如下:

原因:

*后面的)为中文符号,将它改为英文符号,并且case条件语句的结束应该为esca而不是easc,修正后如下:

就正确了,正确结果如下:

在shell脚本中使用for循环

shell中可以使用三种循环:

A、for循环

第一种语法形式:
for var in list

do

命令串

done

注意上面的list的形式可以使用空格分隔的$1 $2 $3,或者空格分隔的值1 2 3。

第二种语法形式:

for var

do

命令串

done

在这种形式中,list被省略了,那么这时list就是指命令行参数,每次循环的var都是一个命令行参数。

eg.输出命令行参数的和

注意上面shell程序中echo命令的参数 -e是为了让\c 和\b生效,其中\c是表示输出加数后不换行,\b是退格的意思删除多余的+号。

运行脚本后出现错误:

原因:

expr不能喝test指令的-gt婚后在一起用,要不然将expr改为test,要不然将-gt改为>=

,值得注意的是>=前面要使用\。

仍然出错为:

原因为:

sum求和时,等号两端不能有空格

改为:

运行后结果为:

B、while循环

语法格式:
while 条件表达式

do

命令行串;

done

eg.输出命令行每个参数

shift命令将命令行参数左移,是原来处于第二位的参数变成第一位然后输出。

结果为:

注意while循环的条件表达式也要用空格将条件表达式与 [ 和 ]分隔开来。

如果要在while中使用另一个变量n,要用 -n 的形式来表示在循环体中使用的一元表达式:

当然如果while中不添加-n也有一样的结果:

C、until循环

语法格式如下:

until 条件表达式

do

命令串;

done

在shell脚本中进行条件控制以及使用循环的更多相关文章

  1. shell脚本中,for基于列表进行循环的实现方法

    需求描述: 在写脚本中需要这么个需求,需要对一个列表中的值进行循环 比如,列表中的值mysqld,zookeeper,hbase 简单来说,for基于列表值的循环. 脚本测试过程: 1.测试脚本 #! ...

  2. shell脚本中的条件测试if中的-z到-d的意思

    文件表达式 if [ -f  file ]    如果文件存在if [ -d ...   ]    如果目录存在if [ -s file  ]    如果文件存在且非空 if [ -r file  ] ...

  3. 【转】shell脚本中echo显示内容带颜色

    shell脚本中echo显示内容带颜色显示,echo显示带颜色,需要使用参数-e.格式如下:   echo -e "\033[41;36m something here \033[0m&qu ...

  4. shell脚本中echo显示内容带颜色

    转自:http://www.cnblogs.com/lr-ting/archive/2013/02/28/2936792.html shell脚本中echo显示内容带颜色显示,echo显示带颜色,需要 ...

  5. shell脚本中常见的一些特殊符号和作用详解

    这篇文章主要介绍了shell脚本中常见的一些特殊符号和它的作用详解,总结的很简洁,容易看懂,需要的朋友可以参考下   在编写Shell脚本时,我们需要会用到各种各样的特殊符号,通过这些特殊符号可以使我 ...

  6. shell脚本进阶之条件测试与条件语句

       接着上篇博客,今天整理一下关于条件测试和条件语句方面的知识. shell脚本进阶之条件测试    在编写shell脚本时,经常需要对一些条件进行判断,可以使用测试命令test辅助完成测试过程.t ...

  7. Shell脚本中使用function(函数)示例

    这篇文章主要介绍了Shell脚本中使用function(函数)示例,本文着重讲解的是如何在shell脚本中使用自定义函数,并给出了两个例子,需要的朋友可以参考下   函数可以在shell script ...

  8. [转帖]Shell脚本中的break continue exit return

    Shell脚本中的break continue exit return 转自:http://www.cnblogs.com/guosj/p/4571239.html break结束并退出循环 cont ...

  9. shell脚本中给字符串添加颜色

    shell脚本中echo显示内容带颜色显示,echo显示带颜色,需要使用参数-e 格式如下: echo -e "\033[字背景颜色:文字颜色m字符串\033[0m" 例如: ec ...

随机推荐

  1. 【CITE】C# 如何 实现一个窗体和另一个窗体始终保持相对的位置

    C# 如何 实现一个窗体和另一个窗体始终保持相对的位置,任由一个窗体移动,当点击按钮时,弹出的另一个窗体也与之保持相对位置(如左上角)你根据第一个窗体的location去算第二个窗体的location ...

  2. Mustache.js使用笔记(内容属于转载总结)

    1.Mustache的语法很简单,用两个大括号标记要绑定的字段即可,“{{}}” Mustache主要的渲染方法为Mustache.render(),该方法有两个参数,第一个为要渲染的模版, 也就是例 ...

  3. JavaScript表单编程

    一. form的方式 1.直接定位方式 document.getElementById(id);</br> document.getElementsTagName(tagName);< ...

  4. append appendChild appendTo区别

    1.append和appendChild的区别 append是jquery文档操作用法 ① append() 方法在被选元素的结尾(仍然在内部)插入指定内容. $(selector).append(c ...

  5. (20)odoo中的action

    ---------更新时间18:06 2016-09-18 星期日15:05 2016-03-14 星期一18:07 2016-02-19 星期五---------* 窗口动作   <?xml ...

  6. poj----(1470)Closest Common Ancestors(LCA)

    Closest Common Ancestors Time Limit: 2000MS   Memory Limit: 10000K Total Submissions: 15446   Accept ...

  7. 130. Surrounded Regions -- 被某字符包围的区域

    Given a 2D board containing 'X' and 'O', capture all regions surrounded by 'X'. A region is captured ...

  8. Java 集合系列 10 Hashtable详细介绍(源码解析)和使用示例

    java 集合系列目录: Java 集合系列 01 总体框架 Java 集合系列 02 Collection架构 Java 集合系列 03 ArrayList详细介绍(源码解析)和使用示例 Java ...

  9. 20145236 冯佳 《Java程序设计》第3周学习总结

    20145236 <Java程序设计>第3周学习总结 教材学习内容总结 第四章 认识对象 一.面向对象和面向过程 •面向对象是相对面向过程而言 •面向对象和面向过程都是一种思想 •面向过程 ...

  10. 《Pro AngularJS》学习小结-01

    <Pro AngularJS>该书以一个SportsStore案例为主线铺开. 一.开发环境设置 该书中所用的数据库data server开发环境是Deployed,从来没听说过,而且作者 ...