欢迎来到天天文库
浏览记录
ID:22371325
大小:77.00 KB
页数:12页
时间:2018-10-28
《korn shell 脚本入门》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、KornShell脚本入门 什么是Shell? IBM®AIX®操作系统和其他的类UNIX操作系统一样,都需要通过某种方式与内核进行通信。这项任务正是通过使用Shell来实现的。您可以使用各种不同的Shell,但本文重点关注于KornShell。KornShell是AIX所使用的缺省Shell。 当您登录到AIX中时,将以某个目录的提示符作为开始。缺省目录通常是您的home目录。之所以将其称为home目录,是因为该目录的结构通常如下所示:$/home/jthomas: 当登录时,您将处于命令行或者命令提示符处。这正
2、是您输入UNIX命令的地方。您可以输入与UNIX内核进行交互的Shell命令。这些命令可能简单到只有一行(比如查看日期),也可能为多行,而这取决于您所进行的操作。清单1提供了一些示例命令。 清单1.示例命令$dateFriMay 122:59:28EDT2008$uptime10:59PM up259days, 9:44, 5users, loadaverage:3.81,14.27,13.71$hostnamegonzo 有关Shell命令的最棒的一项功能是,您可以将多个命令组合在一个称为脚本的文件中,它允许您依次运行多个命令。当您
3、必须一次又一次重复地运行相同的命令时,使用脚本非常合适。您可以将这些命令放到一个KornShell脚本中,而无需反复地键入这些命令。 编写您的第一个KornShell脚本 KornShell脚本中的第一行是Shell自身。它被表示为下面的形式:#!/bin/ksh 要在AIX中编写KornShell脚本,您需要使用一种文本编辑器。vi是一种使用最广泛、且随处可见的文本编辑器。开始接触时可能会觉得有点麻烦,但随着使用vi的次数的增多,您将熟练地掌握它。关于如何使用vi文本编辑器,人们撰写了很多相关的书籍。 要开始编写您的第一个Kor
4、nShell脚本,首先需要打开vi编辑器,并添加Shell名称作为第一行。完成这项操作之后,您需要构建某种类型的脚本标头,用来告诉编写脚本的用户,该脚本将执行什么操作,以及该脚本的编写时间。您可以对脚本进行任意地命名,但通常使用扩展名.ksh来表示KornShell脚本。您并不是必须要这样做,但这是一种很好的做法。镑符号(#)可用于对脚本进行odeforusernamein$(cat$PASS up259days, 10:47, 5users, loadaverage:4.71,10.44,12.62$echo$?0$IBMksh:IBM
5、: notfound.$echo$?127$aixksh:aix: notfound.$echo$?127$ls-l/etc/passp;1 这个命令允许您列出该文件。然而,您并不是真的在意这个文件是否存在。对于您来说,重要的是获得该命令的返回代码。大于符号>允许您对该命令的输出进行重定向。在本文稍后的内容中,您将了解更多有关重定向输出的信息。 清单8显示了如何在脚本中使用$?。 清单8.在脚本中使用$?#BeginCodePASSe done fi 我尝试了列出该文件,而不是实际地进行检查,以判断该文件是否存在。如
6、果您可以列出该文件,则表示该文件存在。如果您无法列出该文件,则上一页1234下一页——感谢阅读这篇文章,..,表示该文件不存在。在AIX中可以通过使用ls¨Clfilename命令列出文件。这项操作使得您可以通过检查$?变量来测试AIX命令是否成功执行。 标准输入、输出和错误 您真的需要了解这些内容。一般说来,主要存在三个输入和输出源。在AIX中,它们分别称为STDIN、STDOUT和STDERR。STDIN指的是您可能从键盘获得的输入。STDOUT是执行一个命令时打印到屏幕上的输出。STDERR则对应于一个命令失败时的屏幕输
7、出。STDIN、STDOUT和STDERR的文件描述符分别映射到数值0、1和2。 如果希望检查一个命令成功或者失败,那么您可以进行类似清单9中的操作。 清单9.将输出重定向到STDOUT和STDERR$date>/dev/null21 #Anyoutputfromthismandshouldneverbeseenif[[$?=0]];then printThedatemandandfailedfi 这段代码运行了AIX中的date命令。您应该不会看到任何来自STDOUT(文件描述符1)或者STDERR(文件描述符2)的输出
8、。然后,您使用条件型if语句,以检查该命令的返回代码。如前所述,如果该命令返回零,那么该命令的执行是成功的;如果它返回的是非零,那么它的执行是失败的。 函数 在KornShell脚本中,单
此文档下载收益归作者所有