Shell编程概述(1)


1.1 Shell编程概述

shell程序是一个包含UNIX命令的普通文件,这个文件的许可权限至少应该为可读和可执行。在shell提示符下键入文件名就可执行shell程序,数据可以通过三种方式传送到shell程序

-环境变量

-命令行参数

-用户的输入


shell是一个命令解释器,它会解释你在命令提示符下输入的命令。但是,你可能有一组想要多次执行的命令。shell提供了一种功能,让你将这组命令存放在一个文件中,然后你可以象unix系统提供的其他程序一样执行这个文件。这个命令文件就叫做shell程序或者shell脚本。当你运行这个文件,它会象你在命令行输入这些命令一样地执行这些命令。

为了让shell读取你的shell程序并且执行,shell必须能够读取并能够执行每一行命令。因此,shell脚本的许可权限必须被设置为可读和可执行。为了让shell可以找到你的程序,你可以选择输入完全路径名,或者将这个脚本的路径放在于你的PATH环境变量指定的路径列表中。许多的用户会在他们的HOME目录下创建一个bin目录来存放他们自己开发的script,然后将$HOME/bin加入到他们的PATH环境变量中。

你可以写出非常复杂的shell脚本,因为shell支持变量,命令行参数,交互式输入,tests判断)),branches分支),和loops循环)。

1.2 shell程序举例

$ cat myprog

#this is the program myprog

date

ls –F

$ myprog

要创建一个shell程序,考虑进行以下步骤:

$ vi myprog 一个包含shell命令的程序。

#this is the program myprog

date

ls –F

$ chmod +x myprog 增加文件的执行模式

$ myprog

Thu Jul 11 11:10 EDT 1994

F1 f2 memo/ myprog*

首先使用一个文本编辑器来创建一个shell程序myprog。在程序执行之前,这个文件必须被赋予可执行的权限。然后在命令提示符下输入这个程序名。如上例所示,当myprog执行的时候,一个子shell会被创建。这个子shell会从shell程序文件myprog读取输入而不是从命令行。这个shell中的每个命令的执行都会创建一个子shell。一旦所有的命令都被执行,所有的子shell会中止,然后会返回到原始的父shell。

Shell程序中的注释:

推荐在shell程序中提供注释语句来注明程序的内容。注释由一个#符号开始。Shell不会去执行任何在#之后的语句。#能够出现在命令行的任何位置。

注意:你不可以给shell程序取名为test因为test是一个内部的shell命令。


相关内容