1、什么是脚本

是一个包含一些列命令序列的文本文件。当运行这个脚本文件时,文件中包含的命令序列将得到自动执行。

脚本编程技术_shell脚本

基本结构:#!指明后面用什么解析器来执行。

由解析器和命令组成

变量:shell脚本允许用户设置和实用自己的变量,变量可以使数字或字符串,用户无需指定其类型,也无需在使用前定义。

脚本编程技术_sed_02

注意:在赋值号的左边和右边不用空格号,#表示注释

将doc格式的脚本转换为Linux格式下才能运行,要用dos2unix +文件名.sh命令来转换,在本光盘下的dos2unix-3.1-37.el6.i686.rpm

2.3 参数

同c程序一样,shell脚本中也可以使用命令行参数

$#:传入脚本的命令行参数个数

$*:所有命令行参数值,在各个参数值之间留有空格

$0:命令本身(shell文件名)

$1:第一个命令行参数

$2:第二个命令行参数

脚本编程技术_命令行参数_03

运行之:

脚本编程技术_sed_04

 

2.4数学计算

shell脚本提供了一个专门的命令expr来计算数学表达式,例如expr 5+1,但是当要把计算的结果赋值给其他变量的时候,还必须使用反引号。var=’expr 20/10‘

2.5.1 if语句

shell脚本最基本的流程控制语句if-then格式:

if [ condition ](特别提醒:方括号左右两边必须有空格,eg:if [ 5 -gt 4 ])

then

  commands

else

  commands

fi

条件比较

比较操作              整数操作                      字符串操作

相同                    -eq                             =

不同                    -ne                             !=

大于                    -gt                              >

小于                     -lt                             <

大于等于                -ge                       

小于等于                -le

为空                      -z

不为空                   -n

脚本编程技术_shell脚本_05

脚本编程技术_命令行参数_06

2.5.2 for 语句

shell脚本提供了for命令,用于创建类似于C语言编程中for语句一样的循环。使用格式:

for var in list(注意var会取list里面的每一项)

do

  commands

done

脚本编程技术_sed_07

2.5.3 while语句

shell脚本提供了while命令,用于创建类似于C语言编程中while语句一样的循环。使用格式:

while condition

do

  commands

done

脚本编程技术_shell脚本_08

2.6 sed编辑器

sed(stream editor):流式编辑器又名行编辑器,每次只编辑一行,使用格式如下:

sed [操作选项] ‘命令’  文件名

常用操作选项:

-n:指定处理后只显示改行

-e:进行多项编辑任务

-i:直接修改读取的文件内容,而不是由屏蔽输出

常用命令选项:

p 打印匹配行

a 新增

c 替代一行

d 删除定位行

s 替代一行中的某些部分

脚本编程技术_命令行参数_09

脚本编程技术_sed_10

3、awk分析器

它是一个强大的文本分析工具,它把文件逐行的读入,以空格为默认分隔符将每行分割为多个字段

使用方式:

脚本编程技术_命令行参数_11

last -n 5表示最近5次登录系统的用户。$1表示第一个字段,默认以空格号为分隔符,-F用于指定分隔符

脚本编程技术_sed_12

脚本编程技术_shell脚本_13

打印第一列等于root的那一行的信息

脚本编程技术_命令行参数_14

Qcd分析

脚本编程技术_命令行参数_15

,关闭终端,重新打开,主要是使环境变量生效。它主要是帮助我们去记忆我们经常要用到的一些目录。

脚本编程技术_命令行参数_16

保存当前目录。

然后使用qcd -l 把记录的目录列出来

脚本编程技术_命令行参数_17

-e

表示进入到第一个目录。

脚本编程技术_sed_18