1.特殊变量

$0:这个程序的执行名字
$n:
这个程序的第n个参数值,

$*:所有参数列表。如"$*"用「"」括起来的情况、以"$1 $2 … $n"的形式输出所有参数。 
$@:所有参数列表。如"$@"用「"」括起来的情况、以"$1" "$2" … "$n" 的形式输出所有参数。

$#: 这个程序的参数个数
$$ :
这个程序的PID
$!:
执行上一个指令的
PID
$?:
执行上一个指令的返回值

2.条件测试

1)判断表达式 
if test  (
表达式为真
)
if test !
表达式为假

test 
表达式表达式2               两个表达式都为真
test 
表达式表达式2               两个表达式有一个为真
2
)判断字符串
test 
字符串                       字符串的长度非零
test 
字符串                       字符串的长度为零
test 
字符串1 =字符串2                字符串相等
test 
字符串1!=字符串2                字符串不等
3
)判断整数
test 
整数eq 整数2                 整数相等
test 
整数ge 整数2                 整数1大于等于整数2
test 
整数gt 整数2                 整数1大于整数
2
test 
整数le 整数2                 整数1小于等于整数
2
test 
整数lt 整数2                 整数1小于整数
2
test 
整数ne 整数2                 整数1不等于整数

4
)判断文件

test  File1 
ef  File2              两个文件具有同样的设备号和i结点号
test  File1 
nt  File2              文件1比文件
test  File1 
ot  File2              文件1比文件
test 
b File                        文件存在并且是块设备文件
test 
c File                        文件存在并且是字符设备文件
test 
d File                        文件存在并且是目录
test 
e File                        文件存在
test 
f File                        文件存在并且是正规文件
test 
g File                        文件存在并且是设置了组ID
test 
G File                        文件存在并且属于有效组
ID
test 
h File                        文件存在并且是一个符号链接(同-L

test 
k File                        文件存在并且设置了sticky
test 
b File                        文件存在并且是块设备文件
test 
L File                        文件存在并且是一个符号链接(同-h
test 
o File                        文件存在并且属于有效用户ID
test 
p File                        文件存在并且是一个命名管道

test 
r File                        文件存在并且可读
test 
s File                        文件存在并且是一个套接字
test 
t FD                          文件描述符是在一个终端打开的
test 
u File                        文件存在并且设置了它的set-user-id
test 
w File                        文件存在并且可写
test 
x File                        文件存在并且可执行

 

注意:

   在shell中,test测试语句等同于中括号判断条件,但中括号两边必须有空格存在。如下:

[ -e /var/log/syslog ] 等同与test -e /var/log/syslog

3.if 条件语句 
语法格式:
if
条件
then
  
命令1
else
  
命令
2
fi
if
可以进行多层嵌套。一个if语句一定要跟一个fi。表示该层条件结束,否则会造成语法错误结合。

4.
多重条件测试语句case
语句格式:

case
i n
模式
1 }
 
命令
1
  ...
; ;
模式2

 
命令2
  ...
;;

esac
多重条件语句是以case开始以esac结束 中间可以有多个条件列表。功能是测试字串和和里面的模式有没有匹配的,有就执行里面的命令列表。模式也可以是*号表示任意字串,每个模式里面的最后要心;;双引号结束,否则会发生语法错误。
5.while
循环
while
命令
do
 
命令1
 
命令
2
  . . .
done
6.for
循环

语法格式:
for
变量名 in 列表

do
 
命令1
 
命令
2
   ...
done
当变量值在列表里, for循环即执行一次所有命令,使用变量名访问列表中取值。命令可为任何有效的shell命令和语句。变量名为任何单词。In列表用法是可选的,如果不用它, for循环使用命令行的位置参数。in列表可以包含替换、字符串和文件名
.
7.
循环控制语句

break
命令不执行当前循环体内break下面的语句从当前循环退出.
continue
命令是程序在本循体内忽略下面的语句,从循环头开始执行.