shell命令01

shell操作linux的桥梁
    创建:
        后缀为.sh的文件
    编写:
        头部注释为#!/bin/sh或者#!/bin/bash(注释可写可不写,建议写上)
    运行:
        1.通过sh命令执行
            例如:sh helloworld.sh
        2.通过bash命令执行
            例如:bash helloworld.sh
        3.通过把文件修改为可执行的文件然后通过./文件命令.sh来执行    
            例如:./helloworld.sh(必须在当前目录下)

变量(动态数据类型,没有数据类型的限制,并且必须初始化)
    定义和初始化
        格式
            变量名称=值
        例如:
            x=10 "abc edefg"
        注意:
            等号两边不能有空格
    使用:通过$区分变量还是一句话
        格式1:
            $变量
        格式2:
            ${变量}
        注意:
            格式1,会把$后所有相连内容看做一个变量
            格式2,${}表示值引用{}之中的内容分,对相连的内容做了一个区分 

$0...$n:表示接收外部参数(执行脚本时,传递的参数)
    格式:
        $下标
    注意:
        $0永远表示脚本名称(所以脚本名称不算数,$0也不算第一个参数)    
        下标大于一位数只能使用${}获取参数,因为$下标只把第一位数据看做下标
        $*获取所有参数
        $#获取所有参数个数        

引号:
    单引号:安原字符串输出
    双引号:可以引用变量,拥有特殊含义的内容

    拼接:连续获取变量
    注意:
        如果有多个引号,连续的形成一对
        引号中使用其他引号,其他引号做字符串使用

字符串
    获取长度
        格式:
            ${#变量}
    截取:
        格式:
            ${变量:开始位置:长度}
        注意:
            ${str::5}:从0获取5个
            ${str:0}:从0获取到末尾
    替换单个
        格式:
            ${变量/旧/新}
        注意:从左向右替换第一个
    替换所有
        格式:
            ${变量//旧/新}
    注意:替换不会再原字符上进行修改,想要修改原字符串只能从新赋值

    删除
        从头开始删除
            ${变量#表达式}:匹配第一个删除
            ${变量##表达式}:匹配最后一个删除
        从尾开始删除
            ${变量%表达式}:匹配第一个删除
            ${变量%%表达式}:匹配最后一个删除
        注意:从未开始删除,表达式还是从左向右去写
            删除不会再原字符上进行修改,想要修改原字符串只能从新赋值
            
运算符
    算术运算符
        bash不支持简单的数学运算,可以通过命令实现expr
        格式1:
            `expr 值 + 值`
            注意:符号两边需要加上空格
        格式2:
            $[值+值]

    比较运算符: > < >= <=....
        格式:
            $[值符号值](符号两边空格加不加无所谓)
        注意:比较的结果用1(true)和0(false)表示

    逻辑运算符: &/and |/or !/not
        例如:
            #判断2>1结果
            echo $[2 > 1]
            #反转2>1结果
            echo $[!$[2>1]]
            #  反转后面的结果2>1 and 2>3  false0
            echo $[!$[$[2>1]&$[2>3]]]
            echo $[2>1 & 2<1]

上一篇:shell终端上传文件命令(LINUX系统)lrzsz


下一篇:[AWS] AWS Control Tower for multi accounts