• Shell脚本书写总结


    脚本开头必须有:
    #!/bin/sh
    脚本结束后用:
    chmod +x filename
        修改脚本使用权限
    变量定义:
    变量名=值
    在变量名之前加一个$,就可以取出变量值:
    **********************************
    #!/bin/sh
    #对变量赋值:
    a="hello world"

    # 打印变量a的值:
    echo "A is:" $a
    **********************************
    **********************************

    num=2
    echo "this is the ${num}nd"
    ***********************************
    管道 |
    重定向 <  > >>
    反短斜线
      使用反短斜线可以将一个命令的输出作为另外一个命令的一个命令行参数。
    流程控制
    if ....; then
        ....
    elif ....; then
          ....
    else
          ....
    fi
    条件测试:
    [ -f "somefile" ] :判断是否是一个文件
    [ -x "/bin/ls" ] :判断/bin/ls是否存在并有可执行权限
    [ -n "$var" ] :判断$var变量是否有值
    [ "$a" = "$b" ] :判断$a和$b是否相等


    case表达式可以用来匹配一个给定的字符串,而不是数字
    case ... in
    ...) do something here ;;
    esac
    我们利用这一点写了一个叫做smartzip的脚本,该脚本可以自动解压bzip2, gzip 和zip 类型的压缩文件:
    {file命令可以辨别出一个给定文件的文件类型,如:file lf.gz,该命令输出结果为:
    lf.gz: gzip compressed data, deflated, original filename,
    last modified: Mon Aug 27 23:09:18 2001, os: Unix
    }


    #!/bin/sh
    ftype=`file "$1"`
    case "$ftype" in
    "$1: Zip archive"*)
      unzip "$1" ;;
    "$1: gzip compressed"*)
      gunzip "$1" ;;
    "$1: bzip2 compressed"*)
      bunzip2 "$1" ;;
    *) error "File $1 can not be uncompressed with smartzip";;
    esac

      您可能注意到我们在这里使用了一个特殊的变量$1。该变量包含了传递给该程序的第一个参数值。也就是说,当我们运行:


    smartzip articles.zip
    $1 就是字符串 articles.zip
     
      select 表达式是一种bash的扩展应用,尤其擅长于交互式使用。用户可以从一组不同的值中进行选择。
    *********************************
    select var in ... ; do
     break
    done
    .... now $var can be used .... 
    *********************************
    *********************************

    while ...; do
    ....
    done 
    *********************************
    引号 (单引号和双引号) 将防止这种通配符扩展:
    ****************
    #!/bin/sh
    echo $SHELL
    echo "$SHELL"
    echo '$SHELL'
      运行结果为:
    /bin/bash
    /bin/bash
    $SHEL
    *****************
  • 相关阅读:
    JAVA处理Clob大对象
    计院生活第二章 深入虎穴(上)
    我的2008
    Quartz入门到精通
    DOM4J使用教程
    JNI简介及实例
    《JavaScript凌厉开发 Ext详解与实践》3月5日开始上架销售
    计院生活第二章 深入虎穴(下)
    Access转Sql Server问题
    提高网站可用性的10个小技巧
  • 原文地址:https://www.cnblogs.com/immortalBlog/p/14698817.html
Copyright © 2020-2023  润新知