码迷,mamicode.com
首页 > 系统相关 > 详细

linux 笔记--扩展正则表达式,bash脚本—变量,条件判断,算术运算

时间:2015-07-29 06:49:34      阅读:287      评论:0      收藏:0      [点我收藏+]

标签:linux

  • 正则表达式:有两类,一:basic regexp  二:extended(扩展正则表达式)  他们的部分元字符不一样,意义也不相同

  • grep:使用基本正则表达式或定义的模式中过滤文本的命令,-E;使用扩展正则表达式  -A 数字:不仅显示匹配到的行,还显示后面几行  -B 数字:不仅显示匹配到的行,还显示前几行  -C 数字:不仅显示匹配到的行,还显示前后个几行

  • 扩展正则表达式:

  • 其中 . [] [^] * ^ $ \< \>与grep是相同的, ? 与 \?:意思相同,可以不写\  +:其前字符至少出现一次  {m,n} ():不使用\ 括号内表示一个整体 |:或者的意思  (注:grep -E = egrep 扩展表达式,fgrep:不支持正则表达式)

  • shell 编程 :脚本编程

  • 编程语言:机器语言(0 1代码) 汇编语言 高级语言

  • 静态语言:c c++ java c# 编译型语言,在执行前必须完全转化完成才可执行,强类型语言(变量在使用前必须先声明格式,甚至还要初始化)

  • 动态语言:php python shell perl 解程型语言,边转化边执行,弱类型语言(变量用时不需要区分类型,默认为字符串)

  • 面向过程:解决问题的过程本身(shell c)

  • 面向对象:把要实现的一个项目抽象成一个对象,并定义对象之间的动作,操作(java python perl c++)

  • 内存:编址的储存单元

  • 变量:内存空间,(变量赋值:变量名=值)

  • 变量命名要求:

  • 1.只能包含字母,数字和下划线并且不能数字开头

  • 2.不应该跟系统中已有的环境变量重名

  • 3.最好做到见名见意的效果

  • 变量类型:储存数据的格式,整型,浮点型,布尔型(真假) 要事先确定数据的存储格式和长度

  • 逻辑运算:与  或  非  异或

  • 与:1  0 = 0  0  1 = 0  1  1 = 1  0  0 = 0 (相当与电路中的与门电路)

  • 或:1  0 = 1  0  1 = 1  1  1 = 1  0  0 = 0  (相当与电路中的非门电路)

  • 非:!(0) = 1  !(1) = 0  (单目运算符)

  • 异或:1  0 = 1  0  1 = 1  1  1 =0  0  0 = 0  (相同为假,不同为真)

  • 短路逻辑:短路与:当第一个条件为假时,就跳过第二条件表达式,不执行。 短路或:当第一个条件为真时,跳过第二个条件表达式,不执行。

  • bash 变量类型:环境变量  本定变量(局部变量,反则不对) 位置变量  特殊变量(系统变量)

  • 引用变量:${VARNAME} 括号可省略 echo “ .....${VARNAME}....”(要引用变量时用双引号,不引用时用单引号)

  • 本地:VARNAME=VALUE 作用域:整个bash进程引用

  • 局部:local VARNAME=VALUE 作用域:只对当前代码段有用

  • 环境变量:作用域:当前shell进程及其子进程,export VARNAME=VALUE  也可以 VARNAME=VALUE  export VALUE

  • 脚本在执行时会启动一个子shell进程,命令行中启动的脚本会继承当前shell环境变量,系统自动执行的脚本(非命令行启动)就需要自我定义需要的环境变量

  • 位置变量:$1  $2  $3....

  • 特殊变量:$? 上一个命令执行状态返回值(echo $?)  (注:程序执行可能有两类返回值执行状态返回代码 0-255 0:为执行正确的返回值 1 2 127 :为系统预留,其它都是执行错误的返回值)

  • /dev/null:软件设备(模拟)  bit backet

  • 撤销变量:unset VARNAME  ($VARNAME撤销变量中的值)(脚本结束后脚本中的变量也会撤销)

  • 查看当前shell中的变量:set (所有变量)

  • 查看当前shell中的环境变量:printenv,env,export

  • 向已有的变量添加变量:ANIMALS=VARNAME (ANIMALS=$ANIMALS:VARNAME)  (export PATH=....:$PATH)也可以添加到前面(PATH=$PATH:....)

  • 脚本:命令的堆砌,按实际需要结合命令流程控制机制实现的源程序

  • shebang:魔数   #!/bin/bash

  • 脚本执行:

  • 1.把执行的路径加入PATH

  • 2.直接加入路径执行

  • 3.解释器加文件名

  • bash中如何实现条件判断:

  • 判断类型:1.整数判断 2.字符串判断 3.文件判断(文件是否存在)

  • 判断表达式:

  • 1.[ expression ]

  • 2.[[expression]]

  • 3.test expression

  • bash命令间的逻辑关系:

  • 逻辑与:&&

  • 逻辑或:||

  • (都符合短路逻辑)

  • 整数比较(多目):

  • -eq:判断两个整数是否相等($A -eq $B)  -ne:判断两个整数是不等的  -gt:判断一个数大于另一个数  -lt:判断一个数是否小于另一个数  -qe:大于或等于  -le:小于或等于

  • 条件判断,控制结构

  • 单分支的if语句:

  • if 判断条件; then

  • statement1

  • statement2....

  • fi

  • 双分支的if语句:

  • if 判断条件; then

  • statement1

  • statement2....

  • else

  •     statement1

  • fi

  • shell中的算术运算:

  • 1.let $c=$A+$B

  • 2.$[ ]:C=$[$A+$B]

  • 3.$(( )):C=$(($A+$B))

  • 4.expr 运算表达式中各个操作数及运算符要有空格而且要是用命令引用:C=`expr $A + $B`


本文出自 “笨鸟先辉” 博客,请务必保留此出处http://benniaoxianhui.blog.51cto.com/10463960/1679198

linux 笔记--扩展正则表达式,bash脚本—变量,条件判断,算术运算

标签:linux

原文地址:http://benniaoxianhui.blog.51cto.com/10463960/1679198

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!