linux第二节SHELL脚本

来源:互联网 发布:一级建筑师网络培训 编辑:程序博客网 时间:2024/06/08 05:08

1.SHELL脚本的创建过程

   SHELL脚本就是放在一个文件中的一系列Llinux命令和实用程序。
   SHELL脚本固定格式如下:
  
  
   #!/bin/bash
   #注释
   命令
   ...
  
   #!用来解释脚本文件,#开头为注释,如果一行未完,可以在行尾加上“\”字符,表示与下一行合并为一行。
  
  
2.SHELL中的特殊字符

   1.通配符
    通配符主要用于模式匹配,例如文件名匹配、字符串查找等。常用如下:
    星号(*),匹配0个或多个字符。
    问号(?),匹配任意单字符。
    方括号([]),匹配方括号中限定的任意一个字符
    感叹号(!),表示方括号列出的字符以外的其他字符。
    
   2.引号
    引号分为双引号、单引号和反引号,除美元符号($)、反引号(’)、和反斜线(\)仍保留其特殊功能外,其余字符均作为普通字符对待。 
    
    
   3.输入输出重定向符
    输入重定向符“<”的作用是把命令的标准输入重新定向到指定文件;输出重定向符“>”的作用是把命令的标准输出重新定向到指定文件。
    
    此外还有输出附加定向符“>>”,它的作用是将命令的输出附加到指定文件的后面,而不破坏文件原有的内容。
    
    
3.SHELL变量

   SHELL是一种解释型语言,使用变量时不需要事先进行声明,对一个变量赋值,实际上就是定义了这个变量。
   例如对STR赋值::
       STR="Hello word"    //////注意等号两边不能有空格。
   变量赋值之后,就可以使用美元符号($)对其进行引用如下:::
     echo $STR
   由于SHELL变量是没有类型的,所以用户在使用同一个变量,可以存放字符,也可以存放整数。 
   
   使用unset命令清楚已经定义的变量。
     unset STR
     
   为了使SHELL编程更为有效,系统还提供了一些特殊的变量,如下所示。
   $0: 脚本名称
   $#: 命令行参数的个数
   $*: 所有的命令行参数
   $[1-n]: 第1-n个命令行参数
   $$: 当前进程的表示符
   $!: 后台运行的最后一个进程的标示符
   $?: 命令的退出状态,0表示没有错误
   
4.条件测试
   test命令通常用来计算一个条件表达式的值,在条件语句和循环语句中经常被用来判断是否满足某些条件。格式如下:
   test 条件
   或
   [条件]   /////使用方括号时,要注意在条件两边加上空格。
   1.字符串测试
       主要操作符如下:
         =:两个字符串相等。
         !=:两个字符串不等。
         -z:字符串为空。
         -n:字符串不为空。
         
   2.数值测试
       主要操作符如下:
           -eq: 两个数相等
           -ne:两个数不相等
           -gt:第一个数大于第二个数
           -lt:第一个数小于第二个数
           -le:第一个数小于等于第二个数
           -ge:第一个数大于等于第二个数
  
  3.文件状态测试
            文件测试主要用来测试文件的类型以及访问权限等,操作符包括如下:
               -f:是否为普通文件
               -d:是否为目录
               -c:是否为字符设备文件
               -b:是否为块设备文件
               -s:文件大小是否为零
               -r:用户对文件是否有读权限
               -w:用户对文件是否有写权限
               -x:用户对文件是否有执行权限
  
  4.逻辑操作
     逻辑操作包括如下:
     -a: 逻辑与                  
     -o: 逻辑或
     !:  逻辑非
   
   
5.控制结构

    1.if语句
      if语句用来实现条件分支结构,它的一般格式如下:
      if 条件1
         then
       命令1
      elif 条件2
        then
        命令2
      else
        命令3
      fi             ////if语句以它的反写fi结尾
     
    2.case语句
    格式如下:
        case 字符串 in
           模式1)
              命令1
              ;;
           模式2)
              命令2
              ;;
             ...
            *)
                命令n
                ;;
        esac                  ///结尾也是反case
       
    3.for循环
    使用for循环,中的变量名来遍历列表中的所有取值,当变量值在列表中时,即执行一次所有命令。
    for循环的一般格式如下:
         for 变量名 in[列表]
         do
           命令 1
           命令 2
           ...
         done   
   
   
  4.while循环
  while循环的一般格式如下:
  while 条件
  do
     命令1
     命令2
     。。。
  done 
  
  5.until循环
     一般格式如下:   //与while 区别不成立时执行do语句
     until 条件
      do
         命令 1
         命令 2
         ...
      done
     
  6.break语句
    break语句用来跳出循环过程,如果用在多层循环之中,可以指定跳出的循环个数,如果在两层循环中,使用break 2刚好跳出整个循环。
   
  7.continue语句
   continue语句用来跳过循环中后面的语句,直接开始下一次循环。 
   
   
6.SHELL函数
   与很多高级语言一样,SHELL中也允许定义函数
   格式如下:
      [function] 函数名()
      {
         命令
       }
      
          
   
   
   
   
   
   
   
      
    
    
    
    
    
    
    
    
    

0 0
原创粉丝点击