设为首页 收藏本站
查看: 752|回复: 0

我的shell脚本编程

[复制链接]

尚未签到

发表于 2018-8-24 11:04:46 | 显示全部楼层 |阅读模式
  对于shell脚本编程特点来说它是
  过程式编程语言、脚本类型语言、解释型语言。
  在写脚本的时候总是会遵循三种执行结构:顺序执行结构、选择执行结构、循环执行结构。
  顺序执行即:以从左到右,从上到下顺序执行所有的语句(命令)
  选择执行结构:依照给定条件的逻辑判断结果或者依照可选的取值范围,进而选择某个分支中的语句来执行;
  有if:分支选择标准;逻辑判断的结果;
  case:分支选择标准;根据可选的取值;
  循环执行结构:对于某特定语句,重复执行0次,1次或多次;
  有for:遍历指定的列表
  while:根据逻辑判断的结果
  until:根据逻辑判断的结果
  select:死循环,利用循环机制提供选择列表
  ----------------------------------------------------------
  if结构通常来说有双分支和多分支结构
  无非就是在if下又添加了elif  例如
  if CONDITION1 ; then
  STATEMENT
  ...
  elif CONDITION2 ; then
  STATEMENT
  ...
  elif CONDITION3 ; then
  STATEMENT
  ...
  ...
  else
  STATEMENT
  ...
  fi
  case 语句使用来 在给出不同的参数时做出不同的结果
  case 变量引用 in
  模式1)
  分支1
  ;;
  摸式2)
  分支2
  ;;
  ...
  *)
  默认分支
  ;;
  esac
  在这里的模式可有很多种匹配方式
  1.普通的文本字符
  2.globbing风格的通配符
  *:任意长度任意字符
  ?:任意的单个字符
  []:范围内的任意单个字符
  [^]:范围外的任意单个字符
  3.| :或
  for 循环有两种格式
  1.遍历列表
  for VAAR_NAME in LIST ; do
  循环体
  done
  这个列表LIST的可以:
  1):直接写出
  2): 纯整数列表
  seq:输出一个整数列表
  seq [FIRST [INCREMENT]] LAST
  3) :花括号展开
  {FIRST..LAST}
  {0..100..3}  显示0-100中能被3整除的数字
  4) : 命令的执行结果返回值
  5):GLOBBING(通配符)
  6): 某些变量的引用:$@,$*
  2.控制变量的格式
  for (( 表达式1; 表达式2; 表达式3 )); do
  ((循环体))
  done
  表达式1:为变量赋初始值
  表达式2:循环的退出条件
  表达式3:变量值的变换规律
  while、until循环:
  while CONDITION ; do
  循环体
  done
  进入循环的条件:CONDITON一直为真;
  退出循环条件:CONDITON为假
  -------------------
  until CONDITION ; do
  循环体
  done
  进入循环的条件:CONDITON一直为假;
  退出循环条件:CONDITON为真
  注意:对于while和until两个循环结构来讲,如果要实施变量增量操作,必须手动给出;
  例如:利用while和until循环结构,计算100以内所有整数和;
  #!/bin/bash
  #
  declare -i I=1
  while [ $I -le 100 ] ; do
  let SUM+=$I
  let I++
  done
  对于循环语句 还有一个无限循环的用法
  while true ;do
  循环体
  done
  until false ;do
  循环体
  done
  在此类的循环结构中,必须适当的使用continue和break,以保证循环不会一直持续下去;
  continue:
  continue [n]
  提前技术第n层的本次循环,直接进入下一轮条件判断,若符合循环进入条件,则开启下一轮循环;
  break:
  break [n]
  提前结束第n层循环;不再继续后续循环;
  还有一个实现遍历功能的while、until循环 用于对文件的每一行读取操作
  while read LINES ; do
  循环体
  done < /PANTH/FROM/SOMEFILE
  until ! read LINES ; do
  循环体
  done < /PATH/FROM/SOMEFILE
  select
  select循环主要用于创建一个菜单式列表,供用户进行选择;
  列表是按照数字顺序排列的,我们只要选择数字即可;
  一般来讲,select与case一起使用;
  select是一个无限循环结构,因此,必须在循环体中使用break命令以退出循环,或者可以使用exit命令直接终止脚本。
  select NAME [in 词语 ... ;] do 命令; done
  select NAMl6E [in lsit ] ; do
  命令
  done
  对于和用户交互式的命令read
  
  read命令:
  read [-a 数组] [-p 提示符] [-t 超时] [名称 ...]
  名称一般为变量名或数组名;如果不写名称,则系统会将read读到的信息保存在REPLY变量中;
  注意:在使用read命令的时候,通常会使用-t选项来规定超时时间;一旦使用-t选项定义了超时时间,我们必须在后面判断给定的变量是否为空,如果为空需要为变量提供默认值;
  取随机数  8以内的
  echo $[$RANDOM%8]
  


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-555903-1-1.html 上篇帖子: 安装zabbix agent shell 脚本 下篇帖子: Linux之shell脚本(2)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表