bash的特性之多命令执行:
$()
管道:进程间的通信(IPC)
顺序执行结构:
分号
选择执行结构:(逻辑运算)
与:逻辑乘法,&&
0:success-->true
1-255:failure-->false
true&&true = true
true&&false = false “与”短路逻辑运算:
只要第一个操作数为false,则其逻辑运算的结果一定为false,如果command1能够成功执行,则command2会被执行,如果command1不能成功执行,则command2不会被执行
或:逻辑加法,||两条管道
只有两个结果都为false
ture || false = ture
只要第一个操作数为true,则结果一定为true
如果command1成功执行,command2就没有必要执行
与和或都是双目运算符
非:逻辑取反,!:单目运算符
!string:读取历史命令空间的内容
! command:
! true = false
! command1 $$ command2 相当于 command1 || command2
逻辑运算符号优先级:!> $$ > ||
德摩根定律:
异或:比对两个操作数是否不同,如果不同,组逻辑运算结果为真,如果相同,则逻辑运算结果为假
shell脚本编程:
什么是编程:编写程序源代码
为了能够让用户在使用计算机的时候,可以让计算机以费交互式的方式完成某些任务,需要将这些任务编制成为一个文件,让计算机顺序获取,从而完成任务
编程语言:
高级语言:
根据源代码的处理方式:
编译运行语言:
源代码--编译器(编译)--汇编器(汇编)--【链接器(库的链接)】--可以直接执行的二进制文件
解释运行语言:
源代码--直接启动跟源代码对应的解释器程序,由解释器边编译边执行
根据其汇编过程中的功能的实现是调用哭还是调用外部程序文件分为:
完整编程语言:利用库或编程组件进行编程
脚本编程语言:解释器:
shell脚本:调用shell程序,其次调用需要的外部命令文件:命令解释器
提供了单一功能的编程接口:过程式编辑逻辑的支持
根据程序的编写范式:程序=指令+数据
过程式编程语言:
以指令为中心,围绕指令(算法)的实现设计数据和数据结构,数据为指令服务的
对象式编程语言:
以数据为中心,将数据实例化为类,围绕着数据的需求来部署指令
shell脚本编程
过程式编程语言,解释运行,以来与外部程序文件运行
shell脚本是什么?
纯文本文档
根据用户的需求解决用户问题的大量命令的组合体
执行幂等性(任何命令执行的结果是一样的)
很多命令不具备“执行幂等性”,在shell脚本中就需要使用大量的程序逻辑来判断某个命令是否满足其运行条件,以避免在运行过程中出现严重错误
shell脚本中的代码内容:
1、首行必须是shebang,解释器路径,必须占据绝对行首;在执行时,启动相应的解释器以解释脚本内诸多的命令:
#!/bin/bash
2、在shell中,除了shebang之外,以#占据绝对首行的内容,均为注释行;解释器会忽略这样的航的内容
3、解释会忽略脚本中所有的空白行
4、大量的命令和关键字(if,else,then,do,while,for ...)
注意:shell脚本一旦运行,是在当前的shell中根据shebang的指示、开启一个解释器(子shell)
解释的行代码内容,shell脚本的内容是在一个子shell进程中实现的
我们可以利用编辑来编写shell脚本
nano,vi,vim,emacs,pico,推荐使用vim
约定下,脚本文件名的后缀为.sh,也可以不加
脚本的运行方法:
1、为脚本文件赋予执行权限,直接运行此文件
chmod +x /PATH/TO/SCRIPT_FILE
如果在执行脚本时,只写脚本文件名不写文件路径的话,必须确保PATH变量中保存的路径下能够找到此文件
2、直搜索接使用解释器运行脚本,将脚本作为解释器命令的参数
低级语言:
汇编语言
原文地址:http://12481590.blog.51cto.com/12471590/1913748