shell 脚本基本语法
1、$?
表示显示最后命令的退出状态。0表示没有错误,其他任何值表明有错误
2、fi
Shell脚本没有{}括号,所以用fi表示if语句块的结束
3、ln -sf软连接
为某一个文件在另外一个位置建立一个同步的链接
命令参数:
-b 删除,覆盖以前建立的链接 -d 允许超级用户制作目录的硬链接 -f 强制执行 -i 交互模式,文件存在则提示用户是否覆盖 -n 把符号链接视为一般目录 -s 软链接(符号链接) -v 显示详细的处理过程
选择参数: -S “-S<字尾备份字符串> ”或 “–suffix=<字尾备份字符串>” -V “-V<备份方式>”或“–version-control=<备份方式>” –help 显示帮助信息 –version 显示版本信息
4、cp -a dirname destdir
5、[$# -ge 2]: 脚本参数个数超过2个时
6、$2:第二个参数
背景
在kubernetes的yaml文件的command字段中,经常使用sh -c的形式:
command: ["/bin/sh", "-c", "echo postStart... > /usr/share/nginx/html/index.html"]
那么,/bin/sh -c 是什么意思呢?为什么不直接使用 echo 命令?
那是因为命令解释器(这里是/bin/sh) 有两种工作模式:交互模式和非交互模式。
7.1. 交互模式
交互模式如下图所示,就是使用 ssh 连接到 Linux 服务器上,然后在终端上敲入命令就可以显示对应结果。这样与终端进行交互执行命令的方式就称为交互模式。
7.2. 非交互模式
非交互模式如下图所示,非交互模式就是调用 bash 解释器,通过 bash -c 后接命令的形式来解释执行命令。
8、grep -v 过滤关键字
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?