Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1611852
  • 博文数量: 245
  • 博客积分: 10378
  • 博客等级: 上将
  • 技术积分: 2571
  • 用 户 组: 普通用户
  • 注册时间: 2009-03-27 08:19
文章分类

全部博文(245)

文章存档

2013年(4)

2012年(8)

2011年(13)

2010年(68)

2009年(152)

分类: LINUX

2009-03-27 08:53:11

  1. 什么是shell? redhat 9下都有什么shell?
    可以和内核进行通信的只有三种类型的程序:shell  kde/gnome aplication,shell是命令解释器,redhat9下都有shell: bash、ash、tsh等
  2. 什么是shell脚本?shell脚本要运行,需要什么条件?shell脚本都有什么语法和规则?
     如果学学习过dos下的批处理命令的话就会对shel非常的熟悉,shell脚本就是命令的集合,但又一些扩展的东西,比如加入了编程语言种的跳转、循环、条件判断等,shell种的变量不需要定义就可以直接使用哪个。
  3. shell中的变量?
    shell的变量在申明的是偶就可以直接的使用, 定义的合适为 : 变量名=变量值 ,如果变量值中出现空格,可以将变量值用引号括起来, 应用: $(变量名),shell中的特殊变量:$#  脚本传递的参数个数,$* 显示脚本传递的所有参数 $$ 脚本运行的当前pid号,$? 显示最后推出的状态 0为正确 1为发生错误,$1 : 引用传递的参数。 shell中的变量可以定义类型,可以使用declare 命令 格式为: declare[-afirx] 变量名   -a 定义为数组 -f 定义为函数  -i  定义为整数  -r 定义为只读  -x 定义为透过环境的输出变量, 从键盘读取参数可以采用: read  变量名
  4. 关于shell学习中的变量测试:
    条件测试又两种方式: test  condition  
                                        [  conditon ] 
           需要主要的是[],方括号的两边各加一个空格,
    测试文件状态: 
    -e  是否存在   -d 是否为目录   -f 是否文件存在  -L 是否为文件连接符
    -s 文件非空   -r 是否可读   -w是否可写  -x是否可执行 
    [  -e /dir ] && echo "exitst" ,这里要注意的是逻辑连接符,它的意思是如果前边的条件测试成立,然后才执行后边的命令,如果不成立,则不执行后边的命令。

    字符串测试命令:

    测试格式为: test str operate str    ; test str_operate str
                         [ str_operate str ]        [  str  operate  str ]
    其中的stroperate  operate 可以为 :
    =  两个字符串相等     !=  两个字符串不相等    -z  字符串为空   -n  字符串非空

    数值的测试条件: 
    格式为: test  num1  operate num2   [  num1 operate  num2] 
      operate 可为:   -eq   -ne   -gt  -lt  -ge   -le  

    多重条件判断:

    -a     :  test -x file -a -r file      ;    -o    test -x file -o  -w file   ;  !:   test ! -x file  
  5. if 循环结构:

    if  [   ]  ;then
    code1
    else
    code 2
    fi  

    if [] ;then
    code1
    elif [] ; then
    code2
    .....
    else
    coden
    fi   
  6. 多重跳转 case

    case $变量名  in
     " 第n个变量值")
    code 1
    ::
    .....
    *)
      coden
    exit 1
    esac
阅读(912) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~