Linux操作系统与服务配置
上QQ阅读APP看书,第一时间看更新

3.3.3 Shell程序和Shell变量

1.建立和运行Shell程序

简单地说Shell程序就是一个包含若干行Shell或者Linux命令的文件。Shell程序有如下一些基本元素:(#!/bin/bash必需的,指出Shell的类型)、#注释、变量、控制。

像编写高级语言程序一样,编写一个Shell程序需要一个文本编辑器.如vi等。在文本编辑环境下,依据Shell的语法规则,输入一些Shell/Linux命令行,形成一个完整的程序文件。执行Shell程序文件有以下几种方法:

①#sh file。

②# . /file(要求文件有执行权限。如果没有,需要先执行 chmod 755 file)。

③#source file。

2.Shell中的特殊符号

(1)注释符#

#!/bin/bash中的“#”除外。

(2)美元符$

与反斜杠转义符相反,使其后的普通字符作为变量名,如$a表示变量a的值。变量字符长度超过1个时,用{}括起来。

(3)单引号

被单引号引起的字符全部做普通字符。

【例3.3】使用单引号的例子。

[root@localhost /]#echo 'my $SHELL

(4)双引号

双引号中的内容,除$、转义符(\)、倒引号(`)这3个保留特殊功能,其他字符均做普通字符。

(5)倒引号(数字【1】键左侧的键)

倒引号内的字符串当作Shell命令行解释执行,得到的结果取代整个倒引号括起来的部分。

(6)反斜线

反斜线是转义字符,它能把特殊字符变成普通字符。在某个字符前面利用反斜杠(\)能够阻止Shell把后面的字符解释为特殊字符。

3.Shell变量

本地变量:局部变量只在创建它们的Shell中使用,可以在Shell程序内任意使用和修改。

环境变量:可以在创建它们的Shell及其派生出来的任意子程序中使用。有些变量是用户创建的,其他的则是专用的(比如PATH、HOME)。它是系统环境的一部分,不必去定义,可以在Shell程序中使用,也能在Shell中进行修改。

内部变量:由系统提供。与环境变量不同,用户不能修改。

(1)定义和使用变量

在Linux支持的所有Shell中,都可以用赋值符号(=)为变量赋值。

【例3.4】变量的使用。

(2)常用系统内部变量

$ #:保存程序命令行参数的数目。

$ ?:保存前一个命令的返回码。

$ 0:保存程序名。

$ *:以("$1 $2…")的形式保存所有输入的命令行参数。

$ @:以("$1""$2"…)的形式保存所有输入的命令行参数。