您当前的位置: 首页 > 

梁云亮

暂无认证

  • 2浏览

    0关注

    1211博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

Shell中的流程控制

梁云亮 发布时间:2020-02-25 16:57:48 ,浏览量:2

()和{}

()和{}都是对一串命令进行执行,但有所区别:

  • 相同点:()和{}都是把一串的命令放在括号里面,并且命令之间用;号隔开
  • 不同点:()会对一串命令新开一个子shell进行执行,{}对一串命令在当前shell执行 说明:
  • ()最后一个命令可以不用分号,{}最后一个命令必须要用分号
  • ()里的第一个命令和左边括号之间不必有空格,{}的第一个命令和左括号之间必须要有一个空格
  • ()和{}中括号里面的某个命令的重定向只影响该命令,但括号外的重定向则影响到括号里的所有命令

示例: 在这里插入图片描述

条件判断 [ ]

语法:

[ condition ]

注意:

  • 注意condition前后要有空格
  • 条件非空即为true,比如:[ hc ]返回true,[] 返回false。

示例: 在这里插入图片描述 上面代码中的:

  • -w :有写的权限(write)
  • -x : 有执行的权限(execute)
if语句 if 语句的语法:

if [ expression ] then / / … 语句 fi

如果 expression 返回 true,then 后边的语句将会被执行;如果返回 false,不会执行任何语句 注意:

  • 最后必须以 fi 来结尾闭合 if
  • expression 和方括号([ ])之间必须有空格,if后要有空格
  • then关键字必须单独一行

示例: 在这里插入图片描述 在这里插入图片描述

if … else语句的语法:

if [ expression ] then / / … 语句1 else / / … 语句2 fi

如果 expression 返回 true,那么 then 后边的语句将会被执行;否则,执行 else 后边的语句。 示例: 在这里插入图片描述 在这里插入图片描述 示例:判断文件是否存在,存在读取,不存在创建 在这里插入图片描述 在这里插入图片描述

if … elif语句的语法:

if [ expression 1 ] then / / … 语句1 elif [ expression 2 ] then / / … 语句2 elif [ expression 3 ] then / / … 语句3 else / / … 语句4 fi

哪一个 expression 的值为 true,就执行哪个 expression 后面的语句;如果都为 false,那么不执行任何语句。 示例: 在这里插入图片描述 在这里插入图片描述

case语句

case 语句用来匹配一个值或一个模式,如果匹配成功,执行相匹配的命令。 一旦模式匹配,则执行完匹配模式相应命令后不再继续其他模式。如果无一匹配模式,使用星号 * 捕获该值,再执行后面的命令。

case 语句格式如下:

case 值 in 模式1) command1 command2 command3 ;; 模式2) command1 command2 command3 ;; *) command1 command2 command3 ;; esac

注意:

  • case行尾必须为单词in,每一个模式匹配必须以右括号“)”结束
  • 取值可以为变量或常数
  • 双分号;;表示命令序列结束,相当于java中的break
  • 最后的*)表示默认模式,相当于java中的default

示例: 在这里插入图片描述 在这里插入图片描述

for循环

语法:

for 变量 in 列表 do command1 command2 … commandN done

列表是一组值(数字、字符串等)组成的序列,每个值通过空格分隔。每循环一次,就将列表中的下一个值赋给变量。 in 列表是可选的,如果不用它,for 循环使用命令行的位置参数。

示例 在这里插入图片描述 中间遍历字符串时,不能获取字符串中的每一个元素,只能将字符串当成一个整体处理 在这里插入图片描述 示例: 在这里插入图片描述 for后面的分号可有可无。

while循环

语法:

while command do Statement(s) to be executed if command is true done

示例: 在这里插入图片描述 示例: 在这里插入图片描述 while 后面的分号可有可无。

跳出循环 break 命令

break 命令允许跳出所有循环(终止执行后面的所有循环)。 示例: 在这里插入图片描述 在这里插入图片描述

continue 命令

continue 命令与 break 命令类似,但它不会跳出所有循环,仅仅跳出当前循环。 示例: 在这里插入图片描述 在这里插入图片描述

关注
打赏
1665409997
查看更多评论
立即登录/注册

微信扫码登录

0.0401s