测试工程师UnixShell编程入门.doc
《测试工程师UnixShell编程入门.doc》由会员分享,可在线阅读,更多相关《测试工程师UnixShell编程入门.doc(30页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、测试工程师Unix Shell编程入门(一)2006年5月17日10:48星期三测试编程Unix Shell提供了强有力的功能,通过Unix Shell提供的功能,用户可以指挥Unix完成许多自动任务。对于软件测试工程师来说,如果能够合理使用Unix Shell提供的功能,可以为极大程度地减轻测试环境维护、测试实施的工作量。例如,假设我要对某个应用进行性能调优测试,该应用部署在Unix服务器上,且使用一个配置文件。在测试过程中,我们需要不断调整配置文件的内容,以观察配置文件修改后系统性能表现的变化情况。为了保留配置文件修改的痕迹,我们需要在每次配置文件修改完成后,将原先的配置文件重新命名。假如
2、配置文件修改了7次,则第七次修改后的所有配置文件列表应该为:config.7config.6config.5config.4config.3config.2config.1config再次修改后,文件列表变为:config.8config.7config.6config.5config.4config.3config.2config.1config其中,config.8文件就是原来的config.7文件,config.7文件就是原来的config.6文件这是一个并不复杂的任务,但如果每次都需要手工完成这个任务的话,还是很费时费力的。通过Unix Shell,可以简单地实现该问题的自动解决。下面
3、的shell脚本就可以完成该任务:#!/bin/sh# vim: set sw=4 ts=4 et:ver=0.1help() cat ) TERM 终端类型,常用的有vt100,ansi,vt200,xterm等 示例:$PS1=test:;export PS1 test: PS1=$;export PS1 $echo $MAIL /var/mail/username 保留字符及其含义 $ shell变量名的开始,如$var &line; 管道,将标准输出转到下一个命令的标准输入 # 注释开始 & 在后台执行一个进程 ? 匹配一个字符 * 匹配0到多个字符(与DOS不同,可在文件名中间使用,
4、并且含.) $- 使用set及执行时传递给shell的标志位 $! 最后一个子进程的进程号 $# 传递给shell script的参数个数 $* 传递给shell script的参数 $ 所有参数,个别的用双引号括起来 $? 上一个命令的返回代码 $0 当前shell的名字 $n (n:1-) 位置参数 $ 进程标识号(Process Identifier Number, PID) file 输出重定向 fiile 输出重定向,append 转义符及单引号: $echo $HOME $PATH /home/hbwork /opt/kde/bin:/usr/local/bin:/bin:/usr
5、/bin:/usr/X11R6/bin: $echo $HOME $PATH $HOME $PATH $echo $HOME $PATH $HOME /opt/kde/bin:/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin:/home/hbw ork/bin 其他: $dir=ls $dir $alias dir ls $dir ls filelist ls filelist wc -l filelist wc -l filelist sleep 5; echo 5 seconds reaches; ls -l ps ax &line;egrep ine
6、td find / -name core -exec rm ; & filename=date +%Y%m%d.log 测试工程师Unix Shell编程入门(三)2006年6月24日17:45星期六测试编程shell变量 变量:代表某些值的符号,如$HOME,cd命令查找$HOME,在计算机语言中可以使用变量可以 进行多种运算和控制。 Bourne Shell有如下四种变量: .用户自定义变量 .位置变量即 shell script之参数 .预定义变量(特殊变量) .环境变量(参考shell定制部分) (1)用户自定义变量(数据的存储) $ COUNT=1 $ NAME=He Binwu 技
7、巧:因为大部分UNIX命令使用小写字符,因此在shell编程中通常使用全大写变量, 当然这并不是强制性的,但使用大写字符可以在编程中方便地识别变量。 变量的调用:在变量前加$ $ echo $HOME /home/hbwork $ WEEK=Satur $ echo Today is $WEEKday Today is $echo Today is $ WEEK day Today is Saturday Shell变量赋值从右从左进行(Linux Shell/bash从左向右赋值!) $ X=$Y Y=y $ echo $X y $ Z=z Y=$Z $ echo $Y $ 使用unset命
8、令删除变量的赋值 $ Z=hello $ echo $Z hello $ unset Z $ echo $Z $ 有条件的命令替换 在Bourne Shell中可以使变量替换在特定条件下执行,即有条件的环境变量替换。 这种变量替换总是用大括号括起来的。 .设置变量的默认值 在变量未赋值之前其值为空。Bourne Shell允许对变量设置默认值,其格式如 下: $ variable:-defaultvalue 例: $ echo Hello $UNAME Hello $ echo Hello $ UNAME:-there Hello there $ echo $UNAME #变量值并未发生变化
9、$ UNAME=hbwork $ echo Hello $ UNAME:-there Hello hbwork $ .另一种情况:改变变量的值,格式如下: $ variable:=value 例: $ echo Hello $UNAME Hello $ echo Hello $ UNAME:=there Hello there $ echo $UNAME #变量值并未发生变化 there $ .变量替换中使用命令替换 $USERDIR=$ $MYDIR:-pwd .在变量已赋值时进行替换 $ variable:+value .带有错误检查的有条件变量替换 $ variable:?value 例
10、: $ UNAME= $ echo $ UNAME:?UNAME has not been set UNAME: UNAME has not been set $ echo $ UNAME:? UNAME: parameter null or not set (2)位置变量(Shell参数) 在shell script中位置参数可用$1.$9表示,$0表示内容通常为当前执行程序的文件名。 .防止变量值被替换 readonly variable .使用export命令输出变量,使得变量对子shell可用,当shell执行一下程序时,shell 将为其设置一个新的环境让其执行,这称之了subshe
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 测试 工程师 UnixShell 编程 入门
限制150内