zoukankan      html  css  js  c++  java
  • 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
    *****************
  • 相关阅读:
    models F Q查询
    Django models 多对多 操作
    Cookies与session的区别
    Form表单验证
    图片上传
    Django进阶
    sql 单个字段去重查询 distinc 和 group by的效率问题
    Django知识点整理
    Web应用请求和响应 HTTP相关
    Django中的几种重定向方式
  • 原文地址:https://www.cnblogs.com/immortalBlog/p/14698817.html
Copyright © 2011-2022 走看看