shell脚本面试题
shell脚本面试题
常见笔试题
基础题
- 三种引号之间的区别
- 四个配置文件的启动顺序:先profile到bashrc
- read的交互的使用方法
- 脚本怎么调试:bash -x
- $0、$1、$#、$@、$* 都是什么意思
- $?、$$
- 变量运算的格式$(( ))、$[ ]、expr
- 变量的替换和删除(从前向后,从后向前,变量替换)
- 统计history的top10
- 每月的第一天备份并压缩/etc目录里面所有的内容,存放在/root/bak目录里面,备份完成的文件格式为:“yymmdd_etc”,脚本名称为backup.sh存放在/server/scripts目录下。
函数与数组
- 函数是什么?函数就是一个代码片段,为了保持代码的简洁性,方便后续调用。
- 在使用函数时应该注意什么?位置参数和函数里面的位置参数没有关系,而和函数之外的位置参数有关系
函数返回值当中return和echo有什么不同? - 什么是数组?其实数组和变量差不多,变量只能存一个值,而数组可以存多少值
- 数组的分类?普通数组和关联数组。
- 普通数组和关联数组有什么区别?普通数组只能用整数做为索引,而关联数组可以使用字符串做为索引,而且还要提前进行声明。
if相关
if与||和&&的转换
说出文件比对的5个参数:r、w、x、f、d
整数比对:-eq、-ne、-gt、-ge、lt、le
整数比对脚本:编写一个脚本,当内存/磁盘用量达到80%的时候触发邮件报警。
case:
case其实和if很像,本质是一样的,只不过case更严格一些 ,case的主要应用场景在服务和脚本的启停
for循环:
用for循环打印一个序列:for (( i=10;i>=1;i-- ));do echo $i;done
批量添加用户,提示输入前缀和用户个数,随机密码,说一下思路
批量探测主机,说一下思路
分库分表备份,说 一下思路
主从状态监测
while
for和while的区别,for可以指定次数,而while只要条件为真通常是无限的。
while的read line比较常用、
面试题
1.你写过哪些脚本?,都是怎么写的,说一说思路
- 对配置文件打包备份的
- 批量添加用户的
- 备份数据库的
- 内存用量报警的
- 检测词频的
2.如果我让你写一个监控网站的脚本,如果网站挂了就向你报警,你会怎么写
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~