Shell面试重点:变量规则、预定义变量与正则表达式解析
需积分: 5 200 浏览量
更新于2024-08-26
收藏 233KB PDF 举报
"第三阶段技术面试知识点.pdf"
在技术面试中,Shell编程是常见的考察点,以下是一些关于Shell的重要知识点:
1. **Shell变量规则**:
- 变量名可以包含数字、字母和下划线,但不能以数字开头。
- 变量名对大小写敏感。
- 赋值时,等号两侧不应有空格。
- 避免使用关键字和特殊字符作为变量名。
- 多次赋值给同一变量时,最后一次赋值有效。
2. **预定义变量**:
- `$$`:保存当前进程的进程ID(PID)。
- `$?`:保存上一条命令的执行结果,通常是一个退出状态码。
- `$0`:保存当前执行的进程名称或脚本名称。
- `$#`:保存位置参数的个数。
- `$*`:保存所有位置参数的值,以空格分隔。
- `$!`:保存后台运行的最后一个进程的PID。
3. **变量赋值的定界符**:
- 双引号`"`:允许变量扩展,如`$var`会被替换为变量的实际值。
- 单引号`'`:禁止变量扩展,所有`$`被视为普通字符。
- 反撇号``:用于执行命令并将输出作为变量的值。
4. **整数值比较操作**:
- `-eq`:判断两个数值是否相等。
- `-ne`:判断两个数值是否不相等。
- `-ge`:判断第一个数值是否大于或等于第二个数值。
- `-le`:判断第一个数值是否小于或等于第二个数值。
- `-gt`:判断第一个数值是否大于第二个数值。
- `-lt`:判断第一个数值是否小于第二个数值。
5. **Shell控制结构**:
- `break`:退出当前循环,继续执行循环体之后的代码。
- `continue`:跳过当前循环剩余的语句,进入下一次循环。
- `exit`:终止脚本执行,返回默认值0(成功)或指定的退出状态码。
- `return`:在函数内部使用,返回一个指定的值。
- `shift`:将位置参数向左移动,例如`shift`后`$1`变为原来的`$2`,以此类推。
6. **正则表达式符号**:
- `+`:匹配前面的元素至少一次,例如`a+`匹配一个或多个连续的`a`。
- `?`:匹配前面的元素零次或一次,例如`a?`匹配零个或一个`a`。
- `*`:匹配前面的元素任意次,包括零次,例如`a*`匹配零个或多个连续的`a`。
7. **awk工具的内置变量**:
- `FS`:设置或获取字段分隔符,默认为空格或制表符。
- `$n`(如`$1`、`$2`):表示以`FS`分隔的第n个字段。
- `$0`:包含当前行的完整文本。
- `NF`:当前行的字段数量(列数)。
- `NR`:已读取的总行数。
- `FNR`:当前文件中的行号。
- `FILENAME`:记录awk正在处理的文件名。
- `ENVIRON`:提供访问Shell环境变量的能力,如`ENVIRON["VARNAME"]`。
以上知识点涵盖了Shell编程的基础部分,对于技术面试来说,理解并掌握这些概念是至关重要的。在实际面试中,面试官可能会结合这些知识点进行深入的讨论,例如编写脚本来解决特定问题或者分析给定的Shell脚本。熟悉这些基本概念,能够帮助你在面试中展现出扎实的Shell技能。
2019-06-29 上传
2021-05-21 上传
2021-07-14 上传
2024-01-31 上传
2022-05-26 上传
2021-09-26 上传
2021-09-09 上传
2019-12-24 上传
2021-11-13 上传
qq_33584510
- 粉丝: 0
- 资源: 4
最新资源
- C++ Qt影院票务系统源码发布,代码稳定,高分毕业设计首选
- 纯CSS3实现逼真火焰手提灯动画效果
- Java编程基础课后练习答案解析
- typescript-atomizer: Atom 插件实现 TypeScript 语言与工具支持
- 51单片机项目源码分享:课程设计与毕设实践
- Qt画图程序实战:多文档与单文档示例解析
- 全屏H5圆圈缩放矩阵动画背景特效实现
- C#实现的手机触摸板服务端应用
- 数据结构与算法学习资源压缩包介绍
- stream-notifier: 简化Node.js流错误与成功通知方案
- 网页表格选择导出Excel的jQuery实例教程
- Prj19购物车系统项目压缩包解析
- 数据结构与算法学习实践指南
- Qt5实现A*寻路算法:结合C++和GUI
- terser-brunch:现代JavaScript文件压缩工具
- 掌握Power BI导出明细数据的操作指南