[转载]Bourne Shell及shell编程 六
时间:2005-11-26 来源:ghostzhu
版权声明:
本文内容为大连理工大学LINUX选修课讲义,欢迎大家转载,但禁止使用本材料进行
任何商业性或赢利性活动。转载时请保留本版权声明。
作者:何斌武,[email protected],大连理工大学网络中心,April 1999.
[请点击阅读全文]
——by ghostzhu
5. 有关shell的专门讨论
(1)shell程序的调试
切记:程序员(人)总是会犯错误的,而计算机是不会错的。
使用-x进行跟踪执行,执行并显示每一条指令。
(2)命令组
用小括号将一组命令括起来,则这些命令会由子shell来完成;而{command_list;}则在
当
前shell中执行。这两者的主要区别在于其对shell变量的影响,子shell执行的命令不
会
影响当前shell中的变量。
$ NUMBER=2
$ (A=2;B=2;NUMBER=`expr $A + $B`; echo $NUMBER)
4
$ echo $NUMBER
2
$ { A=2;B=2;NUMBER=`expr $A + $B`; echo $NUMBER; }
4
$ echo $NUMBER
4
总结:
在本章中讲述了Bourne Shell的基本知识,使用shell变量,shell script基础。这些概
念
对于理解学习Korn Shell, csh以及其他script编程都是非常有用的。
很多OS都有不少语言及一些script功能,但很少有象UNIX SHELL这样灵活强大的scrip
t
脚
本语言能力。
对于系统管理员或程序员来说,熟练地使用shell script将对日常工作(系统维护及管
理
)
非常有用,如果你想作一个合格的系统管理员,强烈建议你进一步深入的了解和使用
shell.
另外,对于系统管理员来说,PERL也是一个必不可少的script编程语言,尤其是对于处
理
文本格式的各种文件,PERL具有shell, awk, sed, grep等的功能,但使用起来更为灵
活
,
功能也更强大。大家可以参考“Perl By Examples"来学习和使用PERL。
--
使用 Bash shell 脚本进行功能测试[转]
在使您的应用程序成型过程中节省时间和精力
Angel Rivera ([email protected])
软件工程师,VisualAge TeamConnection, IBM
2001 年 3 月
-------------------------------------------------------
创建脚本
功能测试是软件开发的一个关键部分 -- 而已经装入 Linux 的 Bash 可以帮您轻而易举地
完成功能测试。在本文中,Angel Rivera 将说明如何运用 Bash shell 脚本通过行命令来
执行 Linux 应用程序的功能测试。由于此脚本依赖于命令行的返回码,因而您不能将这种
方法运用于 GUI 应用程序。
功能测试是开发周期的一个阶段,在这个阶段中将测试软件应用程序以确保软件的函数如
预期的那样,同时能正确处理代码中错误。此项工作通常在单个模块的单元测试结束之后
,在负载/重压条件下整个产品的系统测试之前进行的。
市场上有许多测试工具提供了有助于功能测试的功能。然而,首先要获取它们,然后再安
装、配置,这将占用您宝贵的时间和精力。Bash 可以帮您免去这些烦琐的事从而可以加快
测试的进程。
使用 Bash shell 脚本进行功能测试的优点在于:
Bash shell 脚本已经在 Linux 系统中安装和配置好了。不必再花时间准备它。
可以使用由 Linux 提供的文本编辑器如 vi 创建和修改 Bash shell 脚本。不需要再为创
建测试程序而获取专门的工具。
如果已经知道了如何开发 Bourne 或 Korn shell 脚本,那对于如何运用 Bash shell 脚
本已经足够了。对您来说,学习曲线已不存在了。
Bash shell 提供了大量的编程构造用于开发从非常简单到中等复杂的脚本。
将脚本从 Korn 移植到 Bash 时的建议
如果已有现成的 Korn shell 脚本,而想要将它们移植到 Bash,就需要考虑下列情况:
Korn 的 "print" 命令在 Bash 中不能使用;而是改为使用 "echo" 命令。
需要将脚本的第一行:
#!/usr/bin/ksh
修改成:
#!/bin/bash
创建 Bash shell 脚本进行功能测试
这些基本的步骤和建议适用于许多在 Linux 上运行的客户机/服务器应用程序。
记录运行脚本的先决条件和主要步骤
将操作分成若干个逻辑组
基于一般方案制定执行步骤
在每个 shell 脚本中提供注释和说明
做一个初始备份以创建基准线
检查输入参数和环境变量
尝试提供 "usuage" 反馈
尝试提供一个"安静"的运行模式
当出现错误时,提供一个函数终止脚本
如可能,提供可以执行单个任务的函数
当显示正在生成的输出时,捕获每个脚本的输出
在每个脚本内,捕获每个行命令的返回码
计算失败事务的次数
在输出文件中,突出显示错误消息,以便于标识
如有可能,"实时"生成文件
在执行脚本的过程中提供反馈
提供脚本执行的摘要
提供一个容易解释的输出文件
如有可能,提供清除脚本及返回基准线的方法