Chinaunix首页 | 论坛 | 博客
  • 博客访问: 59420
  • 博文数量: 37
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 390
  • 用 户 组: 普通用户
  • 注册时间: 2014-10-14 12:25
文章分类

全部博文(37)

文章存档

2014年(37)

我的朋友

分类: LINUX

2014-11-25 15:12:17

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) |
给主人留下些什么吧!~~