脚本编程技术
2016-06-14 20:12
246 查看
1、什么是脚本
是一个包含一些列命令序列的文本文件。当运行这个脚本文件时,文件中包含的命令序列将得到自动执行。
![](https://images2015.cnblogs.com/blog/717936/201606/717936-20160614184652620-1871873700.png)
基本结构:#!指明后面用什么解析器来执行。
由解析器和命令组成
变量:shell脚本允许用户设置和实用自己的变量,变量可以使数字或字符串,用户无需指定其类型,也无需在使用前定义。
![](https://images2015.cnblogs.com/blog/717936/201606/717936-20160614185409557-620418855.png)
注意:在赋值号的左边和右边不用空格号,#表示注释
将doc格式的脚本转换为Linux格式下才能运行,要用dos2unix +文件名.sh命令来转换,在本光盘下的dos2unix-3.1-37.el6.i686.rpm
2.3 参数
同c程序一样,shell脚本中也可以使用命令行参数
$#:传入脚本的命令行参数个数
$*:所有命令行参数值,在各个参数值之间留有空格
$0:命令本身(shell文件名)
$1:第一个命令行参数
$2:第二个命令行参数
![](https://images2015.cnblogs.com/blog/717936/201606/717936-20160614190431667-1214190094.png)
运行之:
![](https://images2015.cnblogs.com/blog/717936/201606/717936-20160614190526745-1681606016.png)
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
![](https://images2015.cnblogs.com/blog/717936/201606/717936-20160614192153979-1256493127.png)
![](https://images2015.cnblogs.com/blog/717936/201606/717936-20160614192351042-1754720140.png)
2.5.2 for 语句
shell脚本提供了for命令,用于创建类似于C语言编程中for语句一样的循环。使用格式:
for var in list(注意var会取list里面的每一项)
do
commands
done
![](https://images2015.cnblogs.com/blog/717936/201606/717936-20160614193917088-620429011.png)
2.5.3 while语句
shell脚本提供了while命令,用于创建类似于C语言编程中while语句一样的循环。使用格式:
while condition
do
commands
done
![](https://images2015.cnblogs.com/blog/717936/201606/717936-20160614194115213-1113608583.png)
2.6 sed编辑器
sed(stream editor):流式编辑器又名行编辑器,每次只编辑一行,使用格式如下:
sed [操作选项] ‘命令’ 文件名
常用操作选项:
-n:指定处理后只显示改行
-e:进行多项编辑任务
-i:直接修改读取的文件内容,而不是由屏蔽输出
常用命令选项:
p 打印匹配行
a 新增
c 替代一行
d 删除定位行
s 替代一行中的某些部分
![](https://images2015.cnblogs.com/blog/717936/201606/717936-20160614194726073-425682265.png)
![](https://images2015.cnblogs.com/blog/717936/201606/717936-20160614195128807-2126429930.png)
3、awk分析器
它是一个强大的文本分析工具,它把文件逐行的读入,以空格为默认分隔符将每行分割为多个字段
使用方式:
![](https://images2015.cnblogs.com/blog/717936/201606/717936-20160614195458135-551648244.png)
last -n 5表示最近5次登录系统的用户。$1表示第一个字段,默认以空格号为分隔符,-F用于指定分隔符
![](https://images2015.cnblogs.com/blog/717936/201606/717936-20160614195900010-967777945.png)
![](https://images2015.cnblogs.com/blog/717936/201606/717936-20160614200100479-98374961.png)
打印第一列等于root的那一行的信息
![](https://images2015.cnblogs.com/blog/717936/201606/717936-20160614200453417-269675958.png)
Qcd分析
![](https://images2015.cnblogs.com/blog/717936/201606/717936-20160614200719104-1542968209.png)
,关闭终端,重新打开,主要是使环境变量生效。它主要是帮助我们去记忆我们经常要用到的一些目录。
![](https://images2015.cnblogs.com/blog/717936/201606/717936-20160614200859057-287472772.png)
保存当前目录。
然后使用qcd -l 把记录的目录列出来
![](https://images2015.cnblogs.com/blog/717936/201606/717936-20160614201004370-86884000.png)
-e
表示进入到第一个目录。
是一个包含一些列命令序列的文本文件。当运行这个脚本文件时,文件中包含的命令序列将得到自动执行。
![](https://images2015.cnblogs.com/blog/717936/201606/717936-20160614184652620-1871873700.png)
基本结构:#!指明后面用什么解析器来执行。
由解析器和命令组成
变量:shell脚本允许用户设置和实用自己的变量,变量可以使数字或字符串,用户无需指定其类型,也无需在使用前定义。
![](https://images2015.cnblogs.com/blog/717936/201606/717936-20160614185409557-620418855.png)
注意:在赋值号的左边和右边不用空格号,#表示注释
将doc格式的脚本转换为Linux格式下才能运行,要用dos2unix +文件名.sh命令来转换,在本光盘下的dos2unix-3.1-37.el6.i686.rpm
2.3 参数
同c程序一样,shell脚本中也可以使用命令行参数
$#:传入脚本的命令行参数个数
$*:所有命令行参数值,在各个参数值之间留有空格
$0:命令本身(shell文件名)
$1:第一个命令行参数
$2:第二个命令行参数
![](https://images2015.cnblogs.com/blog/717936/201606/717936-20160614190431667-1214190094.png)
运行之:
![](https://images2015.cnblogs.com/blog/717936/201606/717936-20160614190526745-1681606016.png)
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
![](https://images2015.cnblogs.com/blog/717936/201606/717936-20160614192153979-1256493127.png)
![](https://images2015.cnblogs.com/blog/717936/201606/717936-20160614192351042-1754720140.png)
2.5.2 for 语句
shell脚本提供了for命令,用于创建类似于C语言编程中for语句一样的循环。使用格式:
for var in list(注意var会取list里面的每一项)
do
commands
done
![](https://images2015.cnblogs.com/blog/717936/201606/717936-20160614193917088-620429011.png)
2.5.3 while语句
shell脚本提供了while命令,用于创建类似于C语言编程中while语句一样的循环。使用格式:
while condition
do
commands
done
![](https://images2015.cnblogs.com/blog/717936/201606/717936-20160614194115213-1113608583.png)
2.6 sed编辑器
sed(stream editor):流式编辑器又名行编辑器,每次只编辑一行,使用格式如下:
sed [操作选项] ‘命令’ 文件名
常用操作选项:
-n:指定处理后只显示改行
-e:进行多项编辑任务
-i:直接修改读取的文件内容,而不是由屏蔽输出
常用命令选项:
p 打印匹配行
a 新增
c 替代一行
d 删除定位行
s 替代一行中的某些部分
![](https://images2015.cnblogs.com/blog/717936/201606/717936-20160614194726073-425682265.png)
![](https://images2015.cnblogs.com/blog/717936/201606/717936-20160614195128807-2126429930.png)
3、awk分析器
它是一个强大的文本分析工具,它把文件逐行的读入,以空格为默认分隔符将每行分割为多个字段
使用方式:
![](https://images2015.cnblogs.com/blog/717936/201606/717936-20160614195458135-551648244.png)
last -n 5表示最近5次登录系统的用户。$1表示第一个字段,默认以空格号为分隔符,-F用于指定分隔符
![](https://images2015.cnblogs.com/blog/717936/201606/717936-20160614195900010-967777945.png)
![](https://images2015.cnblogs.com/blog/717936/201606/717936-20160614200100479-98374961.png)
打印第一列等于root的那一行的信息
![](https://images2015.cnblogs.com/blog/717936/201606/717936-20160614200453417-269675958.png)
Qcd分析
![](https://images2015.cnblogs.com/blog/717936/201606/717936-20160614200719104-1542968209.png)
,关闭终端,重新打开,主要是使环境变量生效。它主要是帮助我们去记忆我们经常要用到的一些目录。
![](https://images2015.cnblogs.com/blog/717936/201606/717936-20160614200859057-287472772.png)
保存当前目录。
然后使用qcd -l 把记录的目录列出来
![](https://images2015.cnblogs.com/blog/717936/201606/717936-20160614201004370-86884000.png)
-e
表示进入到第一个目录。
![](https://images2015.cnblogs.com/blog/717936/201606/717936-20160614201101510-1632981699.png)
相关文章推荐
- 下载Google Play中的APK
- 《hihoCoder太阁最新面经算法竞赛4》题目解析【含源代码】
- PHP连接数据_insert_id介绍
- python 学习2
- C++ explicit关键字详解
- 飞机游戏程序
- Ubuntu环境下完美安装python模块numpy,scipy,matplotlib
- PHP封装数据库连接
- python scikit-learn计算tf-idf词语权重
- 219. Contains Duplicate II [easy] (Python)
- JAVA实现坦克大战1.0版本
- maven+spring+junit测试程序时时出现NoSuchMethodError错误
- Java 正则表达式的详细介绍以及实例演示
- Java输入流的学习例子
- Java设计模式-Proxy代理模式
- 用16G内存在Java
- 5A - Chat Servers Outgoing Traffic
- 离线安装eclipse的svn插件
- 主成分分析法原理与MATLAB实现
- C++之继承类中的this指针