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"…)的形式保存所有输入的命令行参数。