测试路漫漫, 吾将上下求索.
两年多开发经验, 六年整测试经验.
比较熟悉web自动化测试, especially in Ruby & Watir.
正在探讨Agile 测试, Junit testing in Agile.
联系方式:myfengliu@hotmail.com
转贴Linux Shell编程(基础教程)
上一篇 /
下一篇 2010-07-20 08:06:14
/ 个人分类:linux shell
本文网址:
http://bbs.bitscn.com/72875复制51Testing软件测试网j5A dG7\1Y'YAsj3i9UOq R)A\8j01.
Linux 脚本编写基础
`-Wi@L01.1 语法基本介绍
51Testing软件测试网Qe9O^G6YB+T&F&JE1.1.1 开头
51Testing软件测试网7qOO.VM*R 程序必须以下面的行开始(必须放在文件的第一行):
51Testing软件测试网1HT2E@B8v #!/bin/sh
51Testing软件测试网;o2GU0yH 符号#!用来告诉
系统它后面的参数是用来执行该文件的程序。在这个例子中我们使用/bin/sh来执行程序。 当编辑好脚本时,如果要执行该脚本,还必须使其可执行。
K:c2EF5e;]#h.u0 要使脚本可执行: 编译 chmod +x filename 这样才能用./filename 来运行
LLzE?$K;m`)M01.1.2 注释
r O8b
j&x(cS9v+q6N+H0 在进行
shell编程时,以#开头的句子表示注释,直到这一行的结束。我们真诚地建议您在程序中使用注释。如果您使用了注释,那么即使相当长的时间内没有使用该脚本,您也能在很短的时间内明白该脚本的作用及
工作原理。
51Testing软件测试网c4aS!`'V
O_[t1.1.3 变量
D'G5~Ev5p0 在
其他编程语言中您必须使用变量。在shell编程中,所有的变量都由字符串组成,并且您不需要对变量进行声明。要赋值给一个变量,您可以这样写:
51Testing软件测试网z6cc^"{-IX #!/bin/sh
51Testing软件测试网'jX'mXu e1a #对变量赋值:
2X4B!M0A,@M{0 a="hello world"
EfK/eO7rB/~G
S,Ng0 # 现在打印变量a的内容:
51Testing软件测试网;FG4L'o
uX0b echo "A is:"
Xl7M x*Y,ZM
a
Lp0 echo $a
alb1a_({b
v#k0 有时候变量名很容易与其他文字混淆,比如:
51Testing软件测试网6}
C
Q-`&~@8E num=2
'q"AF)]u
w2s0 echo "this is the $numnd"
_QW"|l}4B0 这并不会打印出"this is the 2nd",而仅仅打印"this is the ",因为shell会去搜索变量numnd的值,但是这个变量时没有值的。可以使用花括号来告诉shell我们要打印的是num变量:
51Testing软件测试网/pm0R&vE7d1zp2Z num=2
F)dI:l8l.gw-g]5{0 echo "this is the ${num}nd"
51Testing软件测试网B
{*e2UbJ5@6h 这将打印: this is the 2nd
51Testing软件测试网 K(H,o`OeL9qG1.1.4 环境变量
d-rp`9vz6G!O0 由export关键字处理过的变量叫做环境变量。我们不对环境变量进行讨论,因为通常情况下仅仅在登录
51Testing软件测试网/x2g"qyy脚本中使用环境变量。
bH8H$rq&XG'\1v01.1.5 Shell命令和流程控制
51Testing软件测试网_yTUoX 在shell脚本中可以使用三类命令:
fe HM/?0 1)Unix 命令:
51Testing软件测试网4]~3g4ywmf%TW'T{ X s 虽然在shell脚本中可以使用任意的unix命令,但是还是由一些相对更常用的命令。这些命令通常是用来进行文件和文字操作的。
51Testing软件测试网5LEN(]4xc%~_ 常用命令语法及功能
3m&sw'N)TbK0 echo "some text": 将文字内容打印在屏幕上
"v$a/uz2J
?8f0 ls: 文件列表
9w7ZXy1\;dO?0 wc –l filewc -w filewc -c file: 计算文件行数计算文件中的单词数计算文件中的字符数
&?lpSVf{#v |2\9F0 cp sourcefile destfile: 文件拷贝
A2\%o3s#s#Wa5h0 mv oldname newname : 重命名文件或移动文件
51Testing软件测试网:}6p:@Q&?1_ij rm file: 删除文件
51Testing软件测试网0zm?0DUtf'I~ grep 'pattern' file: 在文件内搜索字符串比如:grep 'searchstring' file.txt
6q7t0@-U5iFvW0 cut -b colnum file: 指定欲显示的文件内容范围,并将它们输出到标准输出设备比如:输出每行第5个到第9个字符cut -b5-9 file.txt千万不要和cat命令混淆,这是两个完全不同的命令
51Testing软件测试网K9W aD5q cat file.txt: 输出文件内容到标准输出设备(屏幕)上
51Testing软件测试网D"e\ s'b4k|^V file somefile: 得到文件类型
#YKP-K
o|B|0 read var: 提示用户输入,并将输入赋值给变量