SHELL基本命令

一、运算符
    方法1:
        expr 1 + 2    // 空格
        expr 1 \ * 2 // 转义字符
        
    赋值:
        ①a=$(expr 5 \* 2)
        ②a=`(expr 5 \* 2`
        
    方法2:
        $((运算式)) 或 $[运算式]
        

二、条件判断
    1、基本语法:
        ①: test condition
        ②: [ condition ] (前后有空格)
    
    2、常用条件判断
        ①:两个整数之间的比较
            -eq 等于
            -ne 不等于
            -lt 小于
            -gt 大于
            -le 小于等于
            -ge 大于等于
        ②:按照文件权限进行判断
            -r 有读的权限
            -w 有写的权限
            -x 有执行的权限
    
    多条件判断
        [ condition ] && echo OK || echo NOT OK  => 条件成立?a:b

三、流程控制
    1、if判断
        ①单分支:
            if [ condition ];then
                程序
            fi
            或
            if [ condition ]
            then
                程序
            fi
        ②多分支:
            if[ condition ]
            then
                程序
            elif [ condition ]
                程序
            else
                程序
            fi
            
        if [ $a -gt 18 ] && [ $a -lt 35 ];then echo OK; fi
        if [ $a -gt 18 -a $a -lt 35 ];then echo OK; fi
        
    2、case语句
        case $变量名 in
        "值1")
            程序
        ;;
        "值2")
            程序
        ;;
        *)
            如果都不是执行此程序
        ;;
        esac
    3、for循环
        语法一:
            for(( 初始值;循环控制条件;变量变化))
            do
                程序
            done
        语法二:
            for i in 值1 值2 值3
            do
                程序
            done
            
        {1..100} 从1到100的序列
        
        $*: 把参数看成一个整体
        $@: 把参数看成一个序列
    4、while循环
        while [ 条件判断 ]
        do
            程序
            sum2=$[ $sum2 + $a ]            let sum2+=a
            $a=[ $a + 1 ]              >=     let a++
        done
        
四、read读取控制台输入
    1、基本语法:
        read (选项) (参数)
        ①选项:
            -p 指读取值时的提示符
            -t 值读取值时等待时间(秒),如果-t不加一直等
        ②参数;
            变量:指定读取值的变量名
            

五、函数
    1、系统函数
        ①date 显示系统时间 【Sun Nov 13 15:24:47 CST 2022】 
         date +%s 显示时间戳 【1668324304】
        ②basename [string/pathname] [suffix] 删除所有前缀包括最后一个('/')字符,然后将字符显示出来。
         可以理解为文件名
        ③dirname 文件绝对路径 
    2、自定义函数
        [ function ] funname[()]
            {
                Action;
                [return int;]
            }

六、常用特殊字符
    ^ 匹配一行的开头
        ^a 表示以a开头
        
    $ 匹配一行的结束
        bash$ 表示以bash结尾
        
    . 匹配一个任意的字符
        r..t r和t之间有两个字符的字母
    
    * 不单独使用,和上一个字符连用,表示匹配上一个字符0次或多次
       .*任意字符,^a.*t$ 以a开头t结尾,之间任意
    + 匹配一个字符1-n次
    ?匹配一个字符0-1次
    
    
    [] 字符区间
        [6,8]        匹配6或8
        [0-9]        匹配一个0-9的数字
        [0-9]*      匹配任意长度0-9字符串
        [a-z]        匹配一个a-z之间字符
        [a-z]*        匹配任意长度的字母字符串
        [a-c,e-f]    匹配a-c,e-f之间的任意字符串
        
    {} 精确匹配个数
        [0-9]{8} 8个数字
    
    \ 转义字符 转义特殊字符 '\$'
    
七、文本处理工具
    1、cut    从文件的每一行剪切字节、字符和字段并输出
        cut [选项参数] filename
        
        参数:
            -f 列号、提取第几列
            -d 分割符、按照指定的分割符进行分割列,默认时制表符
            -c 按字符进行分割【n】表示取第几列表示取第几列
    
    2、awk 把文件逐行读入,以空格为默认分隔符进行切片,切开部分处理
        awk [选项参数] '/pattern1/{action1} /pattern2/action2...' filename
            pattern 表示awk在数据中查找的内容,就是匹配模式
            action 在找到匹配内容时所执行的一系列命令
            
        参数:
            -F 指定输入文件分隔符
            -v 赋值一个定义变量

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值