SHELL脚本是按照从上到下,从左到右的顺序执行的;其中,# 表示注释
脚本的执行方式
1. sh script.sh | bash script.sh | ./script.sh:在一个新建的子shell(子进程)中执行脚本,其中./script.sh的方式要求脚本具有执行权限
2. source script.sh | . script.sh:在当前shell(父进程)中执行脚本
脚本的参数
$0 - 代表命令本身
$1...$n - 代表第1~n位的参数
$# - 代表参数个数
$* - 代表参数列表,参数之间用分隔符连接,构成一个字符串
$@ - 代表参数列表,参数互相独立,构成N个字符串
shift - 偏移量,shift N 表示从头开始去掉N个参数,然后重新构成参数列表
test命令的测试功能
字符判断:
-z 若字符串为空,则返回true
-n 若字符串非空,则返回true
= 若字符串相等,则返回true;在LINUX中,=和==是一样的
!= 若字符串不等,则返回true
数字判断:
-eq 数值相等
-ne 数值不等
-gt 数1大于数2
-lt 数1小于数2
-ge 数1大于等于数2
-le 数1小于等于数2
文件类型判断:
-e 文件是否存在
-f 文件存在且是一个档案
-d 文件存在且是一个目录
文件权限判断:
-r 存在且具有读权限
-w 存在且具有写权限
-x 存在且具有执行权限
-s 存在且为非空档案
多重条件:
-a 并且
-o 或
! 取反
可以用中括号(判断符号)代替test命令进行测试,此时中括号的两端必须各有一个空格
使用判断符号是,变量最好用双引号括起来,常量最好用单引号括起来
条件判断 - if
if [ condition ];then
statements
elif [ conditon ];then
statements
else
statements
fi
条件判断 - case
case $VAR in
"value")
statements
;;
*)
statements
;;
esac
不定循环 - while
while [ conditon ]
do
statements
done
不定循环 - until :当condition成立时,终止循环
until [ condition ]
do
statements
done
固定循环 - for
for (( init; limit; step ))
do
statements
done
固定循环 - for...in
for VAR in argument_list
do
statements
done
脚本函数:函数有自己的参数列表,$0, $1 ~ $n
function getName(){
statements
}
阅读(414) | 评论(0) | 转发(0) |