if语法 :
 
if [ expression ] 
   then
   commands
elif [ expression2 ]
   then
   commands
else
   commands
fi
 
 
 
case 语法:
 
case string1 in
   str1)
    commands;;
   str2)
    commands;;
   *)
    commans;;
esac
 
 
 
循环语句 for 语法: 
 
for  var in list

do

    commands
  done

 
  在此形式时,对在list中的每一项,for语句都执行一次,list可以使包括几个单词的、由空格隔开的变量,也是可以直接输入的几个值,每执行一次循环,var都被赋予list中的当前值,直到最后一个为止;
 
 
第二种形式:
 
for var
do
  commands;
done 
使用这种形式时,对变量var中的 每一项,for语句都执行一次,此时,外壳程序假定变量 var
中包含外壳程序在命令行的所有位置参数;
 
 
 
 
while 循环语句:
 
while expression
 do 
   commands;
 done
 
 
 
until循环语句:
 
只是条件为假的时候,才会去执行until语句

until expression

do
  commands 
done 
 
 
 
shift 语句:
  shift 命令用来将存储在位置参数中的当前值左移一个位置;
 
  
   $1=-r  $2=file1  $3=file3
 执行shift命令:
   shift
 你会得到:
$1 = file1 $2 = file2 
 
也可以指定每次偏移的位数:
 shift 2     // 意味着每次移动两个位置;
 
 
while [ "$1" ]
d o
if [ "$1" = "-i" ] then
  infile = " $ 2 "
   shift 2
elif  [ "$1" = "-o" ]
   then   
   outfile = " $ 2 "
   shift 2
else
   echo "Program $0 does not recognize option $1"
fi
done
  tr a-z A-Z <$infile >$outfile      // 将小写转化诶大写, 输入的文字是;  // 
 
 
 
 
select  选择语句:
 
 
select menuitem [in list_of_items]
do
   commands;
done
 
当select语句执行时,shell为在list_of_items 中的每一项创建一个标有数字的菜单项;;
list_of_items 可以是包含几个条目的变量, 就像是choose1 choose2,或者直接在命令中输入的选择项;
 
select menuitem in choice1 choice2 choice3
 
如果没有list_of_items ,select语句则使用命令行的位置参数,就像for表达式一样;
 
 
 
 
repeat 语句:  
  
 repeat 语句只存在于tcsh中,在pdksh 和bash中没有相似的语句。 repeat 语句用来使一个单
一的语句执行指定的次数,erpeat语句如下:
   repeat count commands;
下面给出repeat语句的一个例子。它读取命令行后的一串数字。并根据数字在屏幕上分行输出句号.
 

#
foreach num ($*)
   repeat $num echo -n "."
   echo ""
end
任何repeat 语句都可以用while 或 f o r语句重写。  repeat语句只是更加方便而已。

 
 
 
子函数: 
  外壳函数可以定义自己的函数,就像C或是其他语言一样,使用函数的最大好处
就是使得程序更为清晰,可读, 
fname(){
   shell commands;
}
 
 
使用函数的时候:
fname  per1 per2 per3 
 

Shell 语法 if 、 case 、for 、 while、 until 、select 、repeat、子函数的更多相关文章

  1. shell编程——流控制case和select

    在shell编程里有时候需要出现交换界面,让使用者来选择要执行的功能,如下面所示,这时候就需要用到case和select进行配合 请选择功能: 1) 退出 2) 系统升级 3) 防火墙配置 4) to ...

  2. Linux Shell系列教程之(十三)Shell分支语句case … esac教程

    本文是Linux Shell系列教程的第(十三)篇,更多Linux Shell教程请看:Linux Shell系列教程 分支语句非常实用,基本上高级语言都支持分支语句(python 没有),大多数都使 ...

  3. shell语法基础

    一.变量 1.linux大小写敏感,变量取名要注意大小写.可以通过变量名前面加$来访问变量的内容.可以通过使用read命令来将用户输入的值赋给一个变量. 2.给变量赋值时,如果字符串中包含空格,就必须 ...

  4. mysql语法之case when then与列转行

    mysql语法中case when then与列转行的使用场景非常丰富. case语句类似java中条件分支语句的作用,可以类比java中的switch语句或者if语句来学习. 其语法如下: case ...

  5. shell语法使用

    这两天初次接触shell编程,所谓shell编程其实就是用一定的语法将各种基本的命令组合起来,让shell程序去解释执行.如果对windows的dos有了解,可以这样理解,其实shell脚本文件和.b ...

  6. shell语法(二)

    Shell脚本语法 条件测试:test. [ ] 命令test或[可以测试一个条件是否成立,如果测试结果为真,则该命令的Exit Status为0,如果测试结果为假,则命令的Exit Status为1 ...

  7. shell脚本中case的用法

    shell脚本中case选择语句可以结合read指令实现比较好的交互应答操作,case接收到read指令传入的一个或多个参数,然后case根据参数做选择操作. case的语法如下 case $char ...

  8. Shell语法规范

    ver:1.0 博客:https://www.cnblogs.com/Rohn 本文介绍了Shell编程的一些语法规范,主要参考依据为谷歌的Shell语法风格. 目录 背景 使用哪一种Shell 什么 ...

  9. 转:bash shell 语法1

    1 Shell介绍 Shell的作用是解释执行用户的命令,用户输入一条命令,Shell就解释执行一条,这种方式称为交互式(Interactive),Shell还有一种执行命令的方式称为批处理(Batc ...

随机推荐

  1. Effective Objective-C 2.0 — 第8条:理解“对象等同性”这一概念

    第8条:理解“对象等同性”这一概念 若想检测对象的等同性,请提供“isEqual”与 hash 方法 相同的对象必须具有相同哈希码,但是两个哈希码相同的对象却未必相同. 不要盲目地逐个检测每条属性,而 ...

  2. jsp总结

    JSP 定义:    1)Java Server Page, Java EE 组件,本质上是 Servlet.    2)运行在 Web Container.接收 Http Request,生成 Ht ...

  3. Web Site 开发学习

    http://web-source.net/web_design_languages.htm#.Vw4uaeRJmt9 http://www.make-a-web-site.com/web-desig ...

  4. [整理]iis7.5下部署MVC5

    IIS7.5下部署MVC5 测试环境服务器部署 windows server 2008 r2 1.安装iis 7.5 2.安装 .net framework4.5.1并注册 cd C:\Windows ...

  5. 采用ETL with RDBMS模式来实现ETL

    目前Teradata数据仓库的ETL作业采用ELT方式, 因为loading太重了, 需要将ETL压力转移到专门的ETL Server上. 对于ETL工具, 市场上已有很成熟的商业/开源工具, 比如I ...

  6. Js设置及获取Cookie的方法

    Login页面设置Cookie: <script type="text/javascript"> if(json.result=="true") { ...

  7. .Net程序员必须要知道的东西之HttpModules与HttpHandlers介绍

    一.ASP.NET对请求处理的过程: 当客户端请求一个*.aspx文件的时候,这个请求会被inetinfo.exe进程截获,它判断文件的后缀(aspx)之后,将这个请求转交给ASPNET_ISAPI. ...

  8. C语言中可变参数函数实现原理

    C函数调用的栈结构 可变参数函数的实现与函数调用的栈结构密切相关,正常情况下C的函数参数入栈规则为__stdcall, 它是从右到左的,即函数中的最右边的参数最先入栈.例如,对于函数: void fu ...

  9. 元素间距属性(scrollLeft,scrollWidth,clientWidth,offsetWidth,padding,margin)

    scrollHeight: 获取对象的滚动高度.scrollLeft:设置或获取位于对象左边界和窗口中目前可见内容的最左端之间的距离scrollTop:设置或获取位于对象最顶端和窗口中可见内容的最顶端 ...

  10. HDU 5128 The E-pang Palace(2014广州赛区现场赛B题 计算几何)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5128 解题报告:在一个平面上给出n个点的坐标,用这n个点作为矩形的四个顶点,作两个矩形,要求两个矩形不 ...