Shell:基础 常用 命令

Shell编程

        • Shell 脚本的解释器
        • 脚本的编写规范
        • 执行脚本的三种方式
        • 变量的声明
        • 变量的引用
        • 字符串使用
        • 字符串长度及截取
        • 脚本参数传递
        • 算数运算符
        • 流程控制if*
        • 关系运算符
        • 循环
        • 跳出循环
        • case ()
        • 接收控制台数据
        • 函数的使用
        • 函数调用
        • 数组
        • 数组的使用
        • 文件加载

Shell 脚本的解释器

  • /bin/sh
  • /bin/bash
  • /sbin/nologin
  • /bin/dash
  • /bin/tcsh
  • /bin/csh

脚本的编写规范

  • 首行描述解释器 #!/bin/bash

执行脚本的三种方式

  • bash 脚本名称 脚本参数
  • sh 脚本名称 脚本参数
  • /脚本名称 脚本参数【./脚本名称之间没有空格】【chmod 777 脚本名称】

变量的声明

  • 变量名=”值”【中间不能有空格】
  • 变量名要求 字母或下划线或数字(开头不能是数字)构成

变量的引用

  • 使用$ 或 ${}引用变量
  • 删除变量 只读变量
  • 删除 unset 变量名
  • 只读 readonly 变量名

字符串使用

  • 双引号(””):内部可以使用变量
  • 单引号(‘’):内部所有的原样输出
  • 反引号(``):表示可执行

字符串长度及截取

  • 长度: echo ${#skill}
  • 截取: echo ${str:2:2} 【在第二个字符开始截取截取两位】

脚本参数传递

  • bash 脚本名 参数1 参数2 参数3 。。。。。。
  • 脚本内
  • $0 脚本名称
  • $1 参数1
  • $2 参数2
  • $n 参数n
  • $* 所有参数
  • $# 参数的个数

算数运算符

  • 加法计算 expr 2 + 2
  • 乘法计算 expr 2 \* 2

流程控制if*

  • if [ $a -gt 10 ];then
    代码1
    elif [ $a -lt 10 ];then
    代码2
    else
    代码3
    fi

关系运算符

  • 大于:-gt
  • 小于:-lt
  • 大于等于:-ge
  • 小于等于 :-le
  • 小于:-eq
  • 不等于 :-ne

循环

  • For 循环:
    For aa in XXXX
    do
    循环体
    done
  • While循环:
    While 条件 ;
    do
    循环体
    done

跳出循环

  • 跳出所有循环:break
  • 跳出当前循环,进入下一次循环:continue

case ()

  • case 值 in
    结果1)
    结果1对应的操作;;
    结果2)
    结果2对应的操作;;
    结果3)
    结果3对应的操作;;
    esac

接收控制台数据

  • read 变量名

函数的使用

  • 函数声明:
    [function] 函数名(){
    函数体
    $参数1
    $参数2
    $参数3
    }

函数调用

  • 函数名 参数1 参数2 参数3

数组

  • 数组声明: 数组名称=(元素1 元素2 元素3 元素4)

数组的使用

  • 单个使用 echo 数组名[角标] 【角标从0开始】
  • 遍历数组
    for var in ${my_arr[*]}
    do
    echo $var
    done

文件加载

  • 在文件中添加 . 脚本名称 或者 source 脚本名称
    #!/bin/bash
  • source ./test1.sh :加载test1.sh 的文件内容

你可能感兴趣的:(Shall,大数据,shell,linux)