zoukankan      html  css  js  c++  java
  • shell基础复习笔记

    变量的设置

       以等号连接,等号两边不能有空格

       变量名首个字符必须是英文,可以使用下划线,不能使用标点符号,不能使用bash里的关键字

       可以使用转义字符将特殊符号(如Enter、$、空格、!等)变成一般字符

      关于单引号,双引号的说明

        单引号里的任何字符都会原样输出,单引号里的变量是无效的,单引号中不能再出现单引号

        双引号里可以出现转义字符,双引号中不能再出现双引号

    变量的显示

    echo ${变量} 或 echo $变量

    eg:

    path=/usr/local

    echo ${path} 或 echo $path

    shell的特殊变量

       $$   当前shell进程ID,就是这个脚本的pid

       $0   当前文件名

       $n   去传递给脚本的参数,n是几就取第几个参数

       $#   取参数的个数

       $@  取所有参数,被双引号“”包含时,与$*稍有不同

       $*   取所有参数

       $?   最后命令的退出状态,0表示没有错误,其他任何值表明有错误

    shell的算数运算

       + 加

       -  减

       *  乘

       /   除

       % 取余

       eg:i=$((5-2))  i的值为3

              echo $(($a+$b))

              echo $(($a-$b))

              echo $(($a*$b))

              echo $(($a/$b))

              echo $(($a%$b))

    shell关系运算符

      关系运算符

       -eq  检测两个数是否相等,相等返回true

       -ne  检测两个数是否相等,不相等返回true

       -qt  检测左边的数是否大于右边的数,如果是,返回true

       -lt   检测左边的数是否小于右边的数,如果是,返回true

       -ge  检测左边的数是否大于等于右边的数,如果是,返回true

       -qg  检测左边的数是否小于等于右边的数,如果是,返回true

      布尔运算符

       !  非,表达式为true则返回false,否则返回true

       -o  或运算,有一个表达式为true,返回true

       -a  与运算,两个表达式都为true才返回true

      字符串运算符

       ==  检测两个字符串是否相等,相等返回true

       !=  检测两个字符串是否相等,不相等返回true

       -z     检测字符串长度是否为0,为0返回true

       -n     检测字符串长度是否不为0,不为0返回true

        str    检测字符串是否为空,不为空返回true

      文件测试运算符列表

        -d file 检测文件是否是目录,如果是,返回true

        -f file  检测文件是否是普通文件(既不是目录,也不是设备文件),如果是,则返回true

        -w file 检测文件是否可写,如果是,则返回true

        -x file  检测文件是否可执行,如果是,则返回true

        -s file  检测文件是否为空(文件大小是否大于0),部位空返回true

        -e file  检测文件(包括目录)是否存在,如果是,返回true

    shell注释

      #开头的就是注释,shell中没有多行注释,只能每一行加一个#

    shell字符串的操作

      字符串定义可以用双引号、单引号,也可以什么都不用

        eg:a=test

              a="test"

              a='test'

      字符串拼接,直接把一个字符串跟到另一个字符串后面即可

        eg:name=emily

              say="hello,$name!"

              say="hello,"$name"!"

              say=hello,$name!

      获取字符串长度,使用#

        eg:str=studyshell

              echo ${#str}

      获取字符串的某个元素

        eg:str="shell is a easy language"

              echo ${str:2:4}  #下标是从0开始

              结果为:ell

    shell数组操作

      定义数组

        在Shell中,用括号来表示数组,数组元素用“空格”符号分隔开,不像其他语言中用逗号分隔,shell中只支持一维数组,数组的下标可以不连续

        eg:array=(value1 value2 value4)

        也可以通过下标赋值的方式定义一个数组

        eg:array[3]=2    array[5]=test

        数组的取值 ${数组名字[下标]}

         eg:${array[1]}

         获取数组所有元素

         eg:${array[*]} 或者 ${array[@]}

        获取数组长度

        eg:${#array[*]}

    shell的if判断

      if ... fi

      if ... else ... fi

      if ... elif ... else ... fi

       语法如下:

         if [ 条件表达式 ]

         then 命令

         else

         命令

         fi

       

         if [ 条件表达式一 ]

         then 命令

         elif [条件表达式二]

         then

         命令

         else

          命令

         fi

    shell的case判断

      case $变量名称 in

      变量值1)

         命令

      ;;

      变量值2)

          命令

      ;;

      *)

         命令

      ;;

      esac

    shell的for循环

      for 变量 in 列表

      do

        命令

      done

    shell的while循环

      while 条件

      do

       命令

      done

    shell的函数

    function 函数名( )

       {

               命令表

               return xx

       }

      函数应先定义,后使用

      调用函数时,直接利用函数名,如showfile,不必带圆括号

      shell脚本与函数间的参数传递可利用位置参数和变量直接传递

      通常,函数中的最后一个命令执行之后,就退出被调函数。也可利用return命令立即退出函数,其语法格式是:return [ n ]

  • 相关阅读:
    如何写工程代码——重新认识面向对象
    java 利用同步工具类控制线程
    java简易excel导入导出工具(封装POI)
    二叉搜索树的简单介绍
    spring security 配置多个AuthenticationProvider
    spring和UEditor结合
    继承后的执行顺序
    【转】WPF中实现自定义虚拟容器(实现VirtualizingPanel)
    <译>自学WPF系列(1)
    <译>C#使用设计模式和软件设计原则构建应用程序 PartIII
  • 原文地址:https://www.cnblogs.com/paopaoquan/p/6383514.html
Copyright © 2011-2022 走看看