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‘ 文件名 全文匹配 行号不写,默认是所有行,列号不写默认是匹配到的第一个
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了