环境变量
$HOME home目录地址
$PATH
$PS1 命令提示符
$PS2 二级提示符>
$0 shell脚本的名字
$# 传递给脚本的参数
$$ 脚本的进程号
参数变量
$1,$2.....脚本程序的参数
$* 在一个变量中列出所有的参数,各个参数之间用环境变量IFS中的第一个字符分隔开,如果IFS被修改,那么$*将命令行分割为参数的方式就将随之改变
$@ 不适用IFS变量,所以即使IFS为空,参数也不会挤在一起。所以大多是时候使用此变量。
条件
test或者[命令
例如:
if test -f fred.c
then
...
fi
或者
if [ -f fred.c ]
then
...
fi
上面两个脚本都是在判断fred.c是不是一个文件。
字符串比较
s1 = s2 如果s1和s2相同结果为真
s1 != s2 如果s1和s2不相同为正
-n string 如果string不为空则为真
-z string 如果字符串为空则为真
算数比较
expression1 -eq e2 如果两个表达式相等则为真
e1 -nq e2 不等则为真
e1 -gt e2 大于则为真
e1 -ge e2 大于等于为真
e1 -lt e2 小于为真
e1 -le e2 小于等于为真
!e1 表达式为假则为真
文件条件测试
-d file 如果文件是一个目录
-e file 如果文件存在
-f file 如果是普通文件,-e和-f类似,通常用-f
-g file 如果文件的set-group-id位被设置则结果为真
-r file 如果文件可读则结果为真
-s file 如果文件的大小不为0则为真
-u file 如果文件的set-user-id位被设置则结果为真
-w file 如果文件可写则结果为真
-x file 如果文件可执行则结果为真
2015年1月9日看到2.6.3章节。