Linux Shell 流程控制

发表于:2015-10-15 09:04

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:程默    来源:51Testing软件测试网采编

  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;
  条件测试有:[[]],[],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;
  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;
  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
21/212>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号