文档介绍:第三章 Shell编程
本章概要
什么是Shell脚本
正则表达式与grep命令
用Bash Shell编程
用bash Shell编程
shell编程预备知识
shell变量
读取用户的输入
算术运算
流程控制
函数
一个shell脚本可以包含一个或多个命令。shell脚本主要用于处理自动循环或大的任务。
一个任务可能是:
将文件分类;
向文件插入文本;
迁移文件;
从文件中删除行;
清除系统过期文件;
系统一般的管理维护工作;
等等。
shell编程预备知识
一个典型的“Hello World”程序
#!/bin/bash
#name:
echo "Hello World"
脚本的第一行通知shell使用系统上的Bourne Again shell解释器。在这个例子中,bash是在/bin目录下。
如果bash是在不同的路径下,要将全路径写清。
#!被称为幻数,内核根据它来确定用哪个程序来翻译脚本中的行。这一行必须是脚本顶端第一行。通常称为sh#行。
加注释需要此行的第一个字符为#,解释器对此行不予解释。一般我们在第二行注释中写入脚本文件名。
一个Bash shell程序由一组Linux命令、bash shell命令、编程结构和注释组成。
当创建文件时,文件并没有被自动授予执行权限。如果要运行脚本,就必须增加其执行权限,同时确保正确建立脚本路径,这样只用文件名就可以运行它了。
$chmod +x
运行shell脚本的方式
一种方式是以shell脚本程序的文件名做参数,用“.”命令来执行脚本程序中的命令,如下所示:
$ .
另一种方式是将shell脚本程序文件的属性改为“可执行”,然后在shell提示符下键入该文件名运行它。
$ chmod 700 ./
$
如返回错误信息:
sh: not found.
再试:
$ ./
Hello World
另一个例子
上述脚本通过将目录下文件名截断,清除/usr/adm /下信息,并删除/usr/local/apps/log下所有注册信息。
shell变量
为使shell编程更有效,系统提供了一些shell变量。shell变量可以保存诸如路径名、文件名或者一个数字这样的变量名。shell将其中任何设置都看做文本字符串。
有两种变量,本地和环境。严格地说可以有4种,但其余两种是只读的,可以认为是特殊变量,它用于向s h e l l脚本传递参数。
☼本地变量☼环境变量
☼位置变量☼特定参数变量
在BASH中不需要定义变量。没有“int i”这样的定义过程。如果想用一个变量,只要它没有在前面被定义过,就直接可以用,使用该变量的第一条语句应该是对它赋初值;
BASH中的变量名必须以字母或下划线开头,其余字符可以是字母、下划线和数字,不能含有保留字,不能含有“-”等保留字符,也不能含有空格。名字是大小写敏感的。
如果不赋初值,该变量是空( 注意:是 NULL,不是 0 )。
变量赋值格式
要设置一个本地变量,格式为:
$variable_name=value
更为标准的变量设置方式是:
${variable_name=value}
用花括号括起来,可以防止shell误解变量值。
注意:如果取值包含空格,必须使用双引号括起来。
此外,BASH还可使用内置命令declare创建变量。不带任何参数,declare将列出所有已设置的变量。
declare variable=value