Shell面试重点:变量规则、预定义变量与正则表达式解析
需积分: 5 173 浏览量
更新于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
最新资源
- UML基础之用例图第一章UML基础之用例图第一章UML基础之用例图第一章
- Effectice Java 第2版
- clearquest中文手册
- VBScript脚本语言(QTP知识)
- 一些实用的单片机c程序
- FLEX 入门教程帮助文档
- 卡王MAC绑定IP,DHCP关闭,MAC过滤解决方案初探
- Linux进程管理教程
- gns3+tutorial()中文版)(pdf)
- 实战windows server 2008 企业版WEB服务器环境的配置
- 数据库系统概论第四版课后题答案
- Linux 初学者入门优秀教程
- 好友系统策划(策划学习)
- Java 网摘 经典的总结
- Spring+Struts+Hibernate的详解课件
- Jmeter性能测试工具的使用