`
zhanghw0917
  • 浏览: 182826 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

shell 编程 小结

阅读更多
自己在工作中用到的shell知识总结:

1. 变量
  声明:
  declare -ar ARRAYNAME
  declare -r STRING="I think this gay must be crazy !"
  -a 数组
  -r 只读
 
$n $1 表示第一个参数,$2 表示第二个参数 ...
$# 命令行参数的个数
$0 当前程序的名称
$? 前一个命令或函数的返回码
$* 以"参数1 参数2 ... " 形式保存所有参数
$@ 以"参数1" "参数2" ... 形式保存所有参数
$$ 本程序的(进程ID号)PID
$! 上一个命令的PID


2. 数组
  declare -a ARRAYNAME
   ARRAY=(value1 value2 ... valueN)    //数组赋值,各成员之间用 “空格” 分隔

如果没有定义索引号,默认是从0开始

i=5
ARRAYNAME[0]="bitch"     //数组 赋值
ARRAYNAME["$i"]="son"    //数组 赋值
$ARRAYNAME[0]            //第一个元素的值
count="${#ARRAYNAME[@]}" //获取数据成员的个数 //数组的长度
count="${#ARRAYNAME
  • }" //获取数据成员的个数  //数组的长度
  • ${#ARRAYNAME[3]}   //第四个元素的长度
    ${ARRAYNAME[@]}    //数组的全部元素

    unset ARRAYNAME  //删除数组变量,实际上是将ARRAYNAME的值赋空值


    使用循环读出数组中的内容:

    print_arr(){
    count= "${#array[@]}"   //数组的长度
    i=0
    while [ i -lt $count ]
    do
       tmp="$array["$i"]"
       echo "$tmp"
       let i++     //i 加1,确保退出循环的条件
    }


    3. 逐行读取文件中并去除每行中需求的部分,并且放在数组中

    方法一:
    readfile(){
    #$1参数是传入的file的路径
    file=$1
    count=0
            while read line
            do
    #分析每行,获取有用的部分,awk使用separator作为分隔符,将字符串
                    #分隔成几部分,这里我们获取第二部分,注意:引号的使用,单引号,
                    #双引号

    tmp=`echo "$line" | awk -F'separator' '{print $2}'`

                    #消除两边的空格
    tmp=`echo "$tmp" | sed -e 's/^ *//' -e 's/ *$//'`

    if [ "$tmp" != "" ]
    then
    ARR["$count"]="$tmp"
    let count++
    fi
    done < "$file"
    #读取$file 中的内容
    }

    方法二:

    cat "file" | while read line
    do
        echo $line
    done



    4. case 嵌套(相当重要的分号,嵌套时不要忘了)

    例子:

    case  "$char" in
    a)
    case "$num" in

    1|2|3|4|5)            ##另一种写法,很好 
    echo "$num"
    ;;
    0)
    echo "error"
    ;;
    esac                   ##不要忘记了
    ;;                     ## 相当重要的分号,嵌套时不要忘了
    b)
    case "$string" in

    ni|wo|ta)
    echo "do something"
    ;;
    other)
    echo "do something"
    ;;
    esac                   ##不要忘记了
    ;;                     ##不要忘记了
    *)
           echo “do something ”
            ;;[color=blue][/color]
    esac

    5.格式化输出,很笨的方法

    format_print (){
    printf %7s "$1"               
    printf %8s "$2"
    printf %-s "  "
    printf %-s "$3"
    echo ""
    }
    数字代表 所占用的宽度,s表示字符(还有其他的自己找资料),,默认是右对齐,“-”表示右对齐,不足用空格表示,printf命令是不换行的,手工添加换行

    6.函数

    ##定义
    f(){
      name=$1        //传参数
      age=$2
      echo“do something ”
    }

    ##调用

    f “leo” 23    ##参数之间用空格隔开


    7.其他

    调用外部命令获取其返回值

    value=`pwd`
    value=$(pwd)
    string=$(cat file)

    文件开头第一行
    #!/bin/sh
    分享到:
    评论

    相关推荐

      shell 编程小结

      shell 编程小结

      shell 编程指南pdf

      第四部分 基础shell编程 第16章 shell脚本介绍 151 16.1 使用shell脚本的原因 151 16.2 脚本内容 151 16.3 运行一段脚本 152 16.4 小结 153 第17章 条件测试 154 17.1 测试文件状态 154 17.2 测试时使用逻辑操作符 ...

      绝版经典 LINUX与UNIX SHELL编程指南 PDF 高清版 [16.3M]

      第十五章 小结 第四部分 基础SHELL编程 第十六章 SHELL脚本介绍 第十七章 条件测试 第十八章 控制流结构 第十九章 SHELL函数 第二十章 向脚本传递参数 第二一章 创建屏幕输出 第二二章 创建屏幕输入 第二三...

      LINUX与UNIX SHELL编程指南(很全)

      第四部分 基础shell编程 第16章 shell脚本介绍 151 16.1 使用shell脚本的原因 151 16.2 脚本内容 151 16.3 运行一段脚本 152 16.4 小结 153 第17章 条件测试 154 17.1 测试文件状态 154 17.2 测试时使用逻辑操作符 ...

      LINUX与UNIX SHELL编程指南

      第十五章 小结 第四部分 基础SHELL编程 第十六章 SHELL脚本介绍 第十七章 条件测试 第十八章 控制流结构 第十九章 SHELL函数 第二十章 向脚本传递参数 第二一章 创建屏幕输出 第二二章 创建屏幕输入 第二三章 调试...

      Linux与unix shell编程指南

      本书共分五部分,详细介绍了shell编程技巧,各种UNIX命令及语法,还涉及了UNIX下的文字处理以及少量的系统管理问题。本书内容全面、文字简洁流畅,适合Shell编程人员学习、参考。 目 录 译者序 前言 第一部分 shell ...

      Shell编程下的AWK语法小结

      shel awk 学习:Shell编程下的AWK语法小结

      Linux shell 编程

      本书共分五部分,详细介绍了shell编程技巧,各种UNIX命令及语法,还涉及了UNIX下的文字处理以及少量的系统管理问题。本书内容全面、文字简洁流畅,适合Shell编程人员学习、参考。 目 录 译者序 前言 第一部分 shell...

      LINUX与UNIX SHELL编程指南 高清PDF

      本书共分五部分,详细介绍了shell编程技巧,各种UNIX命令及语法,还涉及了UNIX下的文字处理以及少量的系统管理问题。本书内容全面、文字简洁流畅,适合Shell编程人员学习、参考。 目 录 译者序 前言 第一部分 shell...

      Linux与UNIX Shell编程指南.rar

      第十五章 小结 第四部分 基础SHELL编程 第十六章 SHELL脚本介绍 第十七章 条件测试 第十八章 控制流结构 第十九章 SHELL函数 第二十章 向脚本传递参数 第二一章 创建屏幕输出 第二二章 创建屏幕输入 第二三章 调试...

      Linux与Unix Shell编程指南(PDF格式,共30章)

      本书共分五部分,详细介绍了shell编程技巧,各种UNIX命令及语法,还涉及了UNIX下的文字处理以及少量的系统管理问题。本书内容全面、文字简洁流畅,适合Shell编程人员学习、参考。 目 录 译者序 前言 第一部分 ...

      shell编程中的字符串截取方法小结

      一、Gnu Linux shell 截取字符变量的前8位,有方法如下: 1.expr substr “$a” 1 8 2.echo $a|awk ‘{print substr(,1,8)}’ 3.echo $a|cut -c1-8 4.echo $ 5.expr $a : ‘\(.\\).*’ 6.echo $a|dd bs=1 count=8 2&gt;...

      Linux与UNIX Shell编程指南.

      第十五章 小结 第四部分 基础SHELL编程 第十六章 SHELL脚本介绍 第十七章 条件测试 第十八章 控制流结构 第十九章 SHELL函数 第二十章 向脚本传递参数 第二一章 创建屏幕输出 第二二章 创建屏幕输入 第二三章 调试...

      linux shell 编程教程

      linux shell编程 教程大全 目 录 译者序 前言 第一部分 shell 第1章 文件安全与权限 1 1.1 文件 1 1.2 文件类型 2 1.3 权限 2 1.4 改变权限位 4 1.4.1 符号模式 4 1.4.2 chmod命令举例 5 1.4.3 绝对模式 5 1.4.4 ...

      Shell编程实战.docx

      由于前段时间在做基于shell的自动化升级测试脚本,上周也做了关于升级的两个story,都涉及到了linux shell编程,所以在这里做一个小结,一来加深自己的记忆,以便以后查阅,二来希望可以帮助有需要的人。因为shell的...

      绝版经典《Linux与UNIX Shell编程指南》

      1.10 小结 13 第2章 使用find和xargs 14 2.1 find命令选项 14 2.1.1 使用name选项 15 2.1.2 使用perm选项 16 2.1.3 忽略某个目录 16 2.1.4 使用user和nouser选项 16 2.1.5 使用group和nogroup选项 16 2.1.6 按照更改...

      Linux shell编程指南

      本书共分五部分,详细介绍了shell编程技巧,各种UNIX命令及语法,还涉及了UNIX下的文字处理以及少量的系统管理问题。本书内容全面、文字简洁流畅,适合Shell编程人员学习、参考。 目 录 译者序 前言 第一部分 ...

    Global site tag (gtag.js) - Google Analytics