/*********************************************************************
* Author : Samson
* Date : 08/01/2013
bash shell脚本编程学习总结:
变量:(1)环境变量:能够进行修改;
(2)内部变量:系统提供,不能修改;
$#:得到参数个数
$?:shell程序内部执行shell的返回值
$0:shell程序的名称
$1~$9:参数1~9的值
$*:全部参数组成的字符串
$$
//这个程式的PID
$!
//执行上一个背景指令的PID
$@
//跟$*类似,但是可以当作数组用 。
(3)用户变量:写shell时用户编写定义的;
注意:用户变量在shell定义时:在赋值号前后不能有空格;如:var1="test1"
shell脚本的的几种执行:
(1)shell解释器 shellscriptname.sh,此种情况下shellscriptname.sh不用加X执行权限;
(2)直接在shell script的目录下执行:./shellscriptname.sh,此种执行方法的前提是此shellscriptname.sh文件具有x执行权限;
表达式比较:
命令语法如下:
test expression
or
[ expression ]
test命令支持下面4种类型的比较:
(1)字符串的比较的expression中的操作符:
= 是否相等
!= 是否不相等
-n 字符串长度是否大于0
-Z 字串是否等于0或空
(2)数字比较expression中的操作符:
-eq 是否相等
-ge 是否>=
-le 是否<=
-ne 是否不等于
-gt 是否大于
-lt 是否小于
(3)文件操作符expression中的操作符:
-d 文件是否为目录
-f 文件是否为普通文件
-r 文件是否设置了读权限
-s 文件的长度是否大于0
-w 文件是否具有写权限
-x 文件是否具有执行权限
-e 文件是否存在
(4)逻辑操作符expression中的操作符:
! 对一个逻辑表达式求反
-a 对两个逻辑表达式执行与操作 AND
-o 对两个逻辑表达式执行或操作 OR
判断语句:
if [ expression ]; then
statements
elif [ expression ]; then
statements
else
statements
fi
分支语句:
case $varname in
str1|str2)
statements;;
str3|str4)
statements;;
*)
statements;;
esac
循环语句:
(1)
for curvar in list
do
statements
done
(2)
while expression
do
statements
done
until expression
do
statements
done
break语句:可终止一个重复执行的循环
exit语句:退出一个shell程序
函数:
func()
{
statements
}
调用:func param1,param2,param3
在一个shell脚本程序中载入另一个shell程序:. card_error.sh