7. Shell中的内置变量: Shell中提供了一些以$开头的内置变量,见下表:
变量名 | 描述 |
$? | 表示Shell命令的返回值 |
$$ | 表示当前Shell的pid |
$- | 表示当前Shell的命令行选项 |
$! | 最后一个放入后台作业的PID值 |
$0 | 表示脚本的名字 |
$1--$9 | 表示脚本的第一到九个参数 |
${10} | 表示脚本的第十个参数 |
$# | 表示参数的个数 |
$*,$@ | 表示所有的参数,有双引号时除外,"$*"表示赋值到一个变量,"$@"表示赋值到多个。 |
所有的内置变量都比较容易理解,因此这里仅给出$*和$@的区别用法: /> set 'apple pie' pears peaches /> for i in $* > do > echo $i > done apple pie pears peaches /> set 'apple pie' pears peaches /> for i in $@ > do > echo $i > done apple pie pears peaches
/> set 'apple pie' pears peaches /> for i in "$*" #将所有参数变量视为一个 > do > echo $i > done apple pie pears peaches /> set 'apple pie' pears peaches /> for i in "$@" > do > echo $i > done apple pie #这里的单引号将两个单词合成一个. pears peaches 8. 引用: Shell中提供三种引用字符,分别是:反斜杠、单引号和双引号,它们可以使Shell中所有元字符失去其特殊功能,而还原其本意。见以下元字符列表:
元字符 | 描述 |
; | 命令分隔符 |
& | 后台处理Shell命令 |
() | 命令组,创建一个子Shell |
{} | 命令组,但是不创建子Shell |
| | 管道 |
< > | 输入输出重定向 |
$ | 变量前缀 |
*[]? | 用于文件名扩展的Shell通配符 |