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.如果我让你写一个监控网站的脚本,如果网站挂了就向你报警,你会怎么写

原文地址:https://www.cnblogs.com/yizhangheka/p/12738645.html