"这是一份关于Linux Shell的讲义,主要涵盖了Shell的基础知识,包括变量、特殊位置参数变量以及各种Shell编程技巧。这份讲义旨在帮助读者理解和掌握Shell常用的基本命令,如awk、sed、read以及正则表达式等。此外,还涉及到环境变量与普通变量的使用,以及如何在不同的Shell进程中引用和操作这些变量。" **Shell变量** 变量在Shell编程中扮演着重要角色,主要有以下几类: 1. **环境变量(全局变量)**:环境变量在整个Shell会话中都有效,包括父进程和由其启动的所有子进程。这些变量可以通过`export`命令导出,常见的环境变量如`PATH`、`HOME`等。用户可以自定义环境变量,并在配置文件中设定,例如`~/.bash_profile`、`~/.bashrc`、`/etc/profile`和`/etc/profile.d/`下的脚本。 2. **普通变量(局部变量)**:普通变量只在其被定义的Shell会话或函数内部有效,不会传递给子进程。它们在脚本或命令行中定义,生命周期有限。 **变量赋值** 变量赋值通常通过以下方式完成: ```bash xxx=value xxx='value' xxx="value" ``` 要注意的是,双引号允许保留变量扩展,而单引号会阻止扩展。 **特殊位置参数变量** 在Shell脚本中,有特殊的位置参数变量,如: - `$1`、`$4`、`$9`:表示命令行参数的第1个、第4个和第9个值。 - `$#`:返回命令行参数的总数。 - `$0`:当前执行的脚本名。 - `$@` 和 `$*`:都表示所有命令行参数,但当与双引号结合时,`$@` 会保留每个参数的独立性,而 `$*` 则将所有参数作为一个整体。 **Shell进程中的特殊状态变量** - `$$`:当前Shell进程的ID。 - `echo`, `eval`, `exec`: 这些是Bash内置的命令,分别用于输出、执行命令字符串和替换命令。 - `read`: 用于从标准输入读取数据并赋值给变量。 - `shift`: 移动位置参数,使得`$1`变为`$2`,以此类推。 **字符串操作** - `${#parameter}`: 获取字符串的长度。 - `${parameter#word}`, `${parameter##word}`, `${parameter%word}`, `${parameter%%word}`: 分别用于去除字符串开头、结尾的特定模式。 - `${parameter/pattern/string}`, `${parameter//pattern/string}`: 字符串替换。 **数值计算** - `(())`: 整数运算。 - `let`: 进行算术运算的命令。 - `expr`: 用于执行算术表达式。 - `bc`: 提供一个交互式的计算器环境。 - `awk`: 内建数学运算能力。 - `declare/typeset`: 定义整数变量并直接进行计算。 - `$[]`: 用于简单的整数运算。 **总结** 这份Shell讲义详细介绍了Shell编程的基础概念,包括变量的使用、参数处理以及字符串和数值操作,适合初学者和有一定基础的学习者作为参考资料。通过学习,读者能够更好地理解和应用Shell命令,提升在Linux系统中的自动化操作能力。
![](https://csdnimg.cn/release/download_crawler_static/12111547/bga.jpg)
![](https://csdnimg.cn/release/download_crawler_static/12111547/bgb.jpg)
![](https://csdnimg.cn/release/download_crawler_static/12111547/bgc.jpg)
剩余55页未读,继续阅读
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://profile-avatar.csdnimg.cn/c35867939eb549bead89631799994dc8_q375923078.jpg!1)
- 粉丝: 10
- 资源: 7
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![](https://csdnimg.cn/release/wenkucmsfe/public/img/voice.245cc511.png)
最新资源
- Lombok 快速入门与注解详解
- SpringSecurity实战:声明式安全控制框架解析
- XML基础教程:从数据传输到存储解析
- Matlab实现图像空间平移与镜像变换示例
- Python流程控制与运算符详解
- Python基础:类型转换与循环语句
- 辰科CD-6024-4控制器说明书:LED亮度调节与触发功能解析
- AE particular插件全面解析:英汉对照与关键参数
- Shell脚本实践:创建tar包、字符串累加与简易运算器
- TMS320F28335:浮点处理器与ADC详解
- 互联网基础与结构解析:从ARPANET到多层次ISP
- Redhat系统中构建与Windows共享的Samba服务器实战
- microPython编程指南:从入门到实践
- 数据结构实验:顺序构建并遍历链表
- NVIDIA TX2系统安装与恢复指南
- C语言实现贪吃蛇游戏基础代码
![](https://img-home.csdnimg.cn/images/20220527035711.png)
![](https://img-home.csdnimg.cn/images/20220527035111.png)
![](https://csdnimg.cn/release/wenkucmsfe/public/img/green-success.6a4acb44.png)