当前位置: > shell编程 >

shell学习笔记

时间:2014-11-01 10:34来源:linux.it.net.cn 作者:it
  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
    els
    code 2
    fi   

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

    case $变量名  in
      第n个变量值)
    code 1
    ::
    .....
    *)
      coden
    exit 1
    esac
(责任编辑:IT)
------分隔线----------------------------
栏目列表
推荐内容