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

bash特性之逻辑运算和shell脚本的编写

[复制链接]

尚未签到

发表于 2018-8-26 13:47:04 | 显示全部楼层 |阅读模式
  bash特性之多命令执行:
  ~]#  command1  $(command2)
  ~]#  command1  |  command2  ....  进程之间通信(IPC)
  顺序执行结构:
  ~]#  command1  ; command2  ;......
  选择执行结构:
  逻辑运算
  与:逻辑乘法, && ,双目运算符
  0:success(成功) --->true
  1-225:failure(失败) --->false
  True  &&  true  =true
  True  &&  false  =false
  False  &&  true  =false
  False  &&  false  =false
  “与”运算的短路逻辑运算:只要第一个操作为false,则其逻辑运算的结果一定为false
  command1  &&  command2
  如果command1能够成功执行,则command2会被执行
  如果command1执行失败,则command2不会被执行
  !command1  &&  aommand2
  如果command1能够成功执行,则command2不会被执行
  如果command1执行失败,则command2才会被执行
  或:逻辑加法, || ,双目运算符
  True  ||  true  =true(成功)
  True  ||  false  =true
  False  ||  true  =true
  False  ||  false  =false(失败)
  “或”的短路逻辑运算,只要第一个操作系统为true,则其逻辑运算的结果一定为true
  command1  ||  command2
  只要command1能够成功执行,command2就没有必要执行了
  只有当command1执行失败的时候,command2才会被执行
  !command1  ||  aommand2
  如果command1能够成功执行,则command2会被执行
  如果command2执行失败,则command2不会被执行
  非:逻辑取反, ! ,单目运算符
  !STRING:读取命令历史空间的内容
  !True   =   false
  !False  =  true
  !Command
  !command1  &&  aommand2  相对于  command1  ||  command2
  !command1  ||  aommand2  相对于  command1  &&  command2
  摩根定律:
  !(A  &&  B)= !  A  看,||  !  B
  !(A  ||  B)= !  A  &&  !  B
  逻辑运算符号优先级:
  ! >  &&  >  ||
  异或:双目运算符
  比对两个操作数是否不同,如果不同,则逻辑运算结果为真,如果相同,则逻辑运算结果为假
  Shell脚本编程:
  什么叫编程:编写程序源代码,为了能够让用户在使用计算机的时候,可以让计算机以非交互式的方式完成某些任务,需要将这些任务编制称为一个文件,让计算机顺序读取,从而实现功能。
  编程语言:
  高级语言:
  根据源代码的处理方式:
  编译运行语言:
  源代码 ---> 编译器(编译) ---> 汇编器(汇编) ---> 链接器(库的链接)(不是必须) --->     可以直接执行的二进制文件
  解释运行语言:
  源代码 ---> 直接启动跟源代码对应的解释器程序,由解释器边解释边执行
  根据其编程过程中的功能的实现是调用库还调用外部程序文件
  完整编程语言:
  利用库或编程组件进行编程
  脚本编程语言:
  解释器
  Shell脚本,调用shell程序,其次调用需要的外部命令文件,命令解释器,提供了单一功能的编程接口,过程式编程逻辑的支持
  根据程序的编写范式:指令 + 数据 = 程序    程序 = 算法 + 数据结构
  过程式编程语言:
  以指令(算法)为中心,围绕指令(算法)的实现设计数据和数据结构,数据为指令服务
  算法或指令的实现形式:
  顺序执行
  选择执行
  循环执行
  对象式编程语言:
  以数据为中心,将数据实例化为类,围绕着数据的需求来部署命令,
  类,属性,方法
  低级语言:
  汇编语言
  Shell脚本编程
  过程式编程语言:解释运行的语言,依赖于外部程序文件的运行语言
  Shell脚本是什么:
  1. 纯文本文档
  2. 根据用户的需求来解决用户问题的大量命令的组合体
  3. “执行幂等性”------任何命令多次执行的结果是一致的
  很多命令都不具备“执行幂等性”,在shell脚本中需要使用大量的程序逻辑来判断某个命令是否满足其运行条件,以避免在运行过程中出现严重错误
  Shell脚本中代码内容:
  1. 首行必须是shebang(解释器路径),必须占据绝对行首,在执行时,启动相应的解释器以解释脚本内诸多的命令,
  #!/bin/bash(首行样本,前边不能有空格)
  #!/bin/sh
  #!/usr/bin/python
  #!/usr/bin/per1
  2. 在shell脚本中,除了shebang之外,以#占据绝对行首的内容,均为注释行,解释器会忽略这样的内容
  3. 解释器会忽略脚本中所有的空白行
  4. 大量的命令和关键字(if,else,then,while,for,....)
  注意:shell脚本一旦运行,是在当前的shell中根据shebang的指示,开启一个解释器(子shell)来解散执行代码内容,shell脚本的内容是在一个子shell进程中实现的,
  我们可以利用文本编辑工具来编写shell脚本
  推荐使用:VIM
  约定下,脚本文件名的后缀为.sh,也可以不加
  脚本的运行方法:
  1. 为脚本文件赋予执行权限,直接运行此文件
  注意:如果在执行脚本时,只写脚本文件名不给出路径的话,必须确保PATH变量中保存的路径下,能找到该脚本文件,
  2. 直接使用解释器运行脚本,将脚本作为解释器命令的参数:
  Bash后边加个绝对路径


运维网声明 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-556897-1-1.html 上篇帖子: shell脚本编程之循环控制语句(continue/break/sleep) 下篇帖子: Linux学习笔记:bash特性之多命令执行,shell脚本
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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