Shell面试重点:变量规则、预定义变量与正则表达式解析
需积分: 5 72 浏览量
更新于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技能。
点击了解资源详情
点击了解资源详情
点击了解资源详情
126 浏览量
583 浏览量
2024-01-31 上传
275 浏览量
2021-09-26 上传
2021-09-09 上传
qq_33584510
- 粉丝: 0
- 资源: 4
最新资源
- js-drum-machine
- 南京某高层住宅小区工程施工组织设计(剪力墙结构).zip
- PrimoCache v3.09
- 20个2.5d 人工智能AI相关图标 .ai素材下载
- parallel-service-controller:Bourne Shell脚本可同时控制多个服务
- 装置的检验程序-第1部分静态称重系统.rar
- jdkapi18chm .zip
- react-native-nlist:原生Listview原生lListView react-native封装内存恢复重用高性能
- 远程控制四路继电器开关-电路方案
- Rick-and-morty-NextJS:在NextJS中构建Rick and morty项目
- angular-php-api
- django-newsfeed:Django的新闻策展人和新闻通讯订阅包
- 28DaysLater
- SVN安装包.rar
- 书法控笔训练-包含40页.zip
- 高维数据研究