Linux的shell编程(chenfeiyao8)
http://chenfeiyao8.blog.51cto.com
3. shell程序设计(基础部分)
其实作为命令语言交互式地解释和执行用户输入的命令只是shell功能的一个方面,shell还可以用来进行程序设计,它提供了定义变量和参数的手段以及丰富的程序控制结构.使用shell编程类似于DOS中的批处理文件,称为shell script,又叫shell程序或shell命令文件.
1.shell基本语法
shell的基本语法主要就是如何输入命令运行程序以及如何在程序之间通过shell的一些参数提供便利手段来进行通讯.
(1)输入输出重定向
在Linux中,每一个进程都有三个特殊的文件描述指针:标准输入(standard input,文件描述指针为0)、标准输出(standard output,文件描述指针为1)、标准错误输出(standard error,文件描述指针为2).这三个特殊的文件描述指针使进程在一般情况下接收标准输入终端的输入,同时由标准终端来显示输出,Linux同时也向使用者提供可以使用普通的文件或管道来取代这些标准输入输出设备.在shell中,使用者可以利用“>”和“<”来进行输入输出重定向.如:
command>file:将命令的输出结果重定向到一个文件.
command>&file:将命令的标准错误输出一起重定向到一个文件.
command>>file:将标准输出的结果追加到文件中.
command>>&file:将标准输出和标准错误输出的结构都追加到文件中.
拥有帝国一切,皆有可能。欢迎访问phome.net
command
(2)管道pipe
pipe同样可以在标准输入输出和标准错误输出间做代替工作,这样一来,可以将某一个程序的输出送到另一个程序的输入,其语法如下:
command1| command2[| command3...]
也可以连同标准错误输出一起送入管道:
command1| &command2[|& command3...]
(3)前台和后台
在shell下面,一个新产生的进程可以通过用命令后面的符号“;”和“&”来分别以前台和后台的方式来执行,语法如下:
command
产生一个前台的进程,下一个命令须等该命令运行结束后才能输入.
command &
产生一个后台的进程,此进程在后台运行的同时,可以输入其他的命令.
2.shell程序的变量和参数
像高级程序设计语言一样,shell也提供说明和使用变量的功能.对shell来讲,所有变量的取值都是一个字符串,shell程序采用$var的形式来引用名为var的变量的值.
Shell有以下几种基本类型的变量:
(1)shell定义的环境变量
shell在开始执行时就已经定义了一些和系统的工作环境有关的变量,这些变量用户还可以重新定义,常用的shell环境变量有:
HOME:用于保存注册目录的完全路径名.
PATH:用于保存用冒号分隔的目录路径名,shell将按PATH变量中给出的顺序搜索这些目录,找到的第一个与命令名称一致的可执行文件将被执行.
TERM:终端的类型.
UID:当前用户的标识符,取值是由数字构成的字符串.
PWD:当前工作目录的绝对路径名,该变量的取值随cd命令的使用而变化.
PS1:主提示符,在特权用户下,缺省的主提示符是“#”,在普通用户下,缺省的主提示符是“contentrdquo;.
拥有帝国一切,皆有可能。欢迎访问phome.net
PS2:在shell接收用户输入命令的过程中,如果用户在输入行的末尾输入“\”然后回车,或者当用户按回车键时shell判断出用户输入的命令没有结束时,显示这个辅助提示符,提示用户继续输入命令的其余部分,缺省的辅助提示符是“>”.
(2)用户定义的变量
用户可以按照下面的语法规则定义自己的变 |