shell 基础

1、文件判断

-f 文件存在
-d 目录存在

2、数值判断

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

3、字符串比较

== 字符串相等
!= 字符串不相等

4、数值计算

  • $(( 计算表达式 ))
  • let 计算表达式
[root@docker ~]# echo $((4*3))
12
[root@docker ~]# echo $((1+3))
4
[root@docker ~]# i=4
[root@docker ~]# let j=2+3
[root@docker ~]# echo $j
5
[root@docker ~]# let j=i+2
[root@docker ~]# echo $j
6

5、数组

# 定义
[root@docker ~]# array1=(a b c d)
# 获取数组元素值
[root@docker ~]# echo ${array1[1]}
# 获取数组所有元素
[root@docker ~]# echo ${array1[@]}
# 获取数组长度
[root@docker ~]# echo ${#array1[@]}

 6、特殊符号

  ”&“ 符号,将命令置于后台执行,不会占用当前终端

         “1” 符号, 表示正确的输出信息

         “2”符号,表示错误的信息

          “2>&1”,表示所有输出的信息

[root@docker ~]# echo $SHELL 1>>test.log 
[root@docker ~]# jsdka 2>> test.log 
[root@docker ~]# cat test.log 
/bin/bash
-bash: jsdka: command not found
[root@docker ~]#
## 后台执行python程序,标准输出到黑洞
[root@docker ~]#python manage.py runserver  >> /dev/null  2>&1

7、分支与循环

 

8、函数

#! /bin/bash

# 简单函数定义和调用
dayin(){
     echo "hello world!"
}

dayin

# 函数传参和调用
sayhi(){
     name=$1
     echo "hi $name!"
}

sayhi bob

9、三剑客

grep

grep 
   options:
       -c    计数
       -n    行号
       -v    取反
       -r     递归查找
       -i     忽略大小写

sed

sed 可简单理解为行截取命令
    options:
         -n   静默显示
         -i    对文件进行编辑
     actions:
         -a    在匹配到的内容下一行增加内容
         -i     在匹配到的内容当前增加内容
         -d    删除匹配到的内容
         -s    替换匹配到的内容
         -p    查看指定内容

命令格式:
     sed -i '行号s#原内容#替换后内容#列号‘ 文件名
     sed -i '行号s#原内容#替换后内容#g‘ 文件名     全文匹配
     行号不写,默认是所有行,列号不写默认是匹配到的第一个   

 

posted @ 2023-03-06 14:32  高佳丰  阅读(11)  评论(0编辑  收藏  举报