阅读shell脚本
基本的shell脚本
一个shell脚本是一个ASCII文件,包含了一系列的命令以及注释。
注释是文档中的文本,用来说明脚本的功能以及每一行脚本执行完后需要完成的功能,注释以#开头。
确定shell脚本类型
脚本最上面一行说明执行脚本的shell程序类型,例如,对于Bourn shell而言,第一行应该是:
#!/bin/sh
内核使用#!来识别用来翻译脚本的程序。
备注:korn shell的第一行应该为#!/bin/ksh,c shell的第一行应该为#!/bin/csh。
不过,并不是所有的shell脚本使用最上面一行来识别shell程序。
一些脚本可以在最上面有一个基本的文本注释。和父shell同样的shell来执行该脚本。一些脚本可能在最上面没有注释。在这种情况下,则使用默认的shell程序来执行该脚本。
创建一个基本的shell脚本
创建一个基本的shell脚本使用以下步骤:
1、使用vi编辑器,创建一个文件,名为my.script,输入命令,后跟tab键,然后以#开头定义注释;
如何做网页
2、使文件可以执行,然后在命令行方式下输入该文件的命令。
$ vi my.script
who # To view who is logged on the system.
date # To view the current date and time
ls -l # To view files in current directory
:wq
$ chmod 755 my.script
$./my.script
Bourne shell编程
用于管理Solaris操作环境的标准管理脚本是bourne shell脚本。
为了成功控制、修改操作环境的行为,系统管理员必须可以读、修改和定制这些不同的shell脚本文件。
通常,所有的Bourne shell脚本包括了一组UNIX命令、Bourne shell内建命令、编程结构和注释。
Bourne shell脚本
要能够阅读,更重要的是理解基本shell脚本的内容,必须能够:
1、能够理解参数如何传给脚本,通过使用特殊的称为位置变量的内建变量传递;
2、能够识别和分析简单的条件结构和流程控制; 精选IT教程
特殊的shell内建变量
位置参数
特殊的shell内建变量称为位置参数,用于从命令行中传递参数给脚本。
在命令行方式下,跟在脚本名称后的用空格分割的每个单词,称为参数,这些参数在shell脚本中称为位置参数。
命令格式
scriptname argument1 argument2 argument3 ...
当脚本执行时,shell自动存储命令行中的第一个参数到位置参数$1中,第二个参数到位置参数$2中,第三个参数到位置参数#3中,依此类推。
重置一个位置参数
set命令用于重置位置参数。
下面示例描述如何使用set命令来设置位置参数。
首先执行带选项-m的who命令,查看输出:
$ who -m
user1 pts/5 Mar 13 11:43 (host1)
$
现在使用cat命令创建shell脚本,命名为my.script3:
$ vi my.script3
#!/bin/sh
set ‘who -m‘
echo Here are the positional variables that have been set: .zuowangye.net#,
echo The first is: $1
echo The second is: $2
echo The third is: $3
echo The fourth is: $4
echo The fifth is: $5
echo The sixth is: $6
echo This script is: $0
$ ^d
使用chmod命令使脚本可以执行:
$ chmod 755 script3
$
执行新脚本:
$ my.script3
Here are the positional variables that have been set:
The first is: user1
The second is: pts/5
The third is: Mar
The fourth is: 13
The fifth is: 11:43
The sixth is: (host1)
This script is: my.script3
$
Bourne shell最多允许使用9个位置参数,$1到$9。脚本名称另外放在参数$0的引用中。 经典教程
位置参数含义
$1到$9引用$1到$9位置参数
$0 引用当前shell脚本名称
另外两个有用的位置参数是$#和$@。
1、$#:返回存储在$1到$9位置参数的命令行参数总数;
2、$@:展开位置参数,显示每个存储的参数;
下面的示例说明脚本中位置参数的作用。
创建名为my.script4的脚本,更改属性为可执行。
$ vi my.script4
#!/bin/sh
echo The script name is: $0
echo
echo The first argument passed is: $1
echo The second argument passed is: $2
echo
echo The highest numbered parameter is: $#
echo The parameters passed to the script are: $@