• 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
    *****************
  • 相关阅读:
    编译预处理指令:文件包含指令、宏定义指令、条件编译指令
    多文件协作,extern、static、头文件
    函数间参数传递的3种方式
    函数的定义与调用
    编码标准:ASCII、GBK、Unicode(UTF8、UTF16、UTF32)
    插入字符
    Windows Vista for Developers——第四部分:用户帐号控制(User Account Control,UAC)
    C# 获取QQ好友列表信息的实现
    C# 获取QQ群数据的实现
    QQ登陆功能的实现2
  • 原文地址:https://www.cnblogs.com/immortalBlog/p/14698817.html
Copyright © 2020-2023  润新知