shell基本语法

Posted 稀里糊涂林老冷

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了shell基本语法相关的知识,希望对你有一定的参考价值。


1 shell脚本的规范:
  1 文件后缀是 .sh
  2 首行是命令解释器: #!/bin/bash
  3 首行下面注释写脚本基本信息:
  脚本名称、功能、编写时间、撰写人、联系方式等

2 shell执行方式:
  1 使用命令解释器加载脚本文件:
    bash 文件
  2 绝对路径或相对路径
    ./demo.sh
  脚本需要有可执行权限并选定了解释器
    3 source 或 .
    source ./demo.sh
    . demo.sh

    功能:加载脚本文件

3 shell变量:

  变量定义:
    变量名=变量值
  变量打印:
    echo $变量名

  分为: 本地变量、全局变量、内置变量

3.1 本地变量:
  普通变量:
    1 变量名=变量值 变量必须连续不能有空格和特殊字符
    2 变量名=‘变量值‘ 变量可以含有空格和特殊字符 按照原样
    3 变量名="变量值" 变量可以不连续 变量值中可以引用其他变量
  命令变量:
    1 变量名=‘命令‘
    2 变量名=$(命令)

  3.2 全局变量:
    1 查看全局变量:
      env
    2 定义全局变量:
      先定义后声明:
        demo=val
        export demo
      直接定义
        export demo=val
    3 内置变量:
      $0 获取当前脚本的名称
      $# 获取当前脚本的参数个数
      $n 获取当前脚本第n个参数
      $? 获取上一次命令的执行情况 0代表成功
      $$ 获取脚本运行时候的进程pid
      [email protected] 获取当前脚本的参数列表
      $* 获取当前脚本所有参数的字符串表示

字符串截取:
  new_str=$(str:start:length)
  将str从start开始截取length个

  new_str=$(str:0-length)
  将str从结尾截取length个长度


  默认值:
    var_name=$1 #取当前脚本的第一个参数
    #如果没有var_name 就赋值为default
    var_new=${var_name:-default}


    var_name=$1 #取当前脚本第一个参数
    # 不论var_name是什么都强制赋值为default
    var_new=${var_name:+default}

 

  3.4 查看变量的方法:
    1 $变量名
      私下使用
    2 "$变量名"
      调用变量时使用
    3 "${变量名}"
      脚本中使用

4 变量操作:
  1 声明只读
    readonly 变量名
  2 删除变量
    unset 变量名


4 shell验证操作:
  方式1: [ 表达式 ] 表达式两侧需要有空格
    [ 1 -eq 1 ] # 1是否和1相等
    echo $? # 查看上一句执行结果
  方式2: test 表达式
    test 1 -eq 1 # 查看1是否和1相等
    echo $? # 查看上一句执行结果

  4.1 逻辑:
    并 &&    命令1 && 命令2   如果命令1执行成功 就执行命令2
              命令1 执行失败 就不执行命令2
    非 ||       命令1 || 命令2      如果命令1执行成功 不执行命令2
              命令1执行失败 执行命令2
  4.2 文件表达式:
    [文件表达式 文件名]
    -e 是否存在
    -f 是否是文件
    -d 是否是目录
    -r 是否可读
    -w 是否可写

  4.3 数字比较:
    [n1 -gt n2] n1是否大于n2
    -gt 大于
    -lt 小于
    -eq 等于
    -ne 不等于


  4.4 字符串
    == 是否相等
    != 是否不一致
    -z 是否为0
    -n 长度是否不为0

5 流程控制:
  运算:
    let n=n+1
    或
    n=$(($n+1))

  单if分支:
     if 条件
     then 执行语句
     fi

  多if分支
    if 条件
    then 执行语句
    elif 条件
    then 执行语句
    else 执行语句
    fi

  case多分支
    case 值 in
    值1)
    执行语句
    ;;
    值2)
    执行语句
    ;;
    esac

  循环:
    until 条件
    do 执行语句
    done

6 函数
  定义函数:
  func_name(){
  函数体
  }

  调用函数:
  func_name


  有参数函数:
  func_name(){
  args = $n
  }
  调用:
  func_name args1 args2

 



































































































































以上是关于shell基本语法的主要内容,如果未能解决你的问题,请参考以下文章

shell基本语法

bash shell最基本的语法

shell编程-基本语法

shell基本语法

shell 基本语法介绍

shell 基本语法介绍