"这是一份关于《shell编程从入门到精通》的学习笔记,作者为张昊,主要涵盖了Linux Shell的基础知识,包括程序的运行方式、I/O重定向、重定向、变量、运算符、命令替换、引用规则以及函数定义等核心概念。" 在Linux环境中,程序有三种运行方式:首先,程序需要具有可执行权限才能被运行;其次,可以通过调用命令解释器(如bash)来执行脚本或程序;最后,使用`source`命令可以在当前Shell环境中直接执行脚本,无需新开进程。 I/O重定向是Shell编程中的重要特性,允许我们改变程序的标准输入、输出和错误流。标准输入(0)、标准输出(1)和标准错误(2)可以通过重定向操作符进行调整,例如`>`用于重定向输出,`<`用于重定向输入,`2>`用于重定向错误输出。`/dev/null`是一个特殊设备,向其发送数据会被丢弃,常用于忽略错误输出。 管道(pipe)是连接两个命令,使得前一个命令的输出成为后一个命令的输入,实现数据流的传递。由于数据在管道中的传输涉及内存拷贝,所以通常建议将计算密集型任务放在管道的后端,以减少数据移动带来的性能影响。 Shell语言是动态类型、弱类型的,提供了多种变量类型,包括用户变量、局部变量和全局变量。局部变量仅在函数内部有效,全局变量在整个脚本范围内有效,而位置变量(也称为系统变量或位置参数)则用来存储命令行参数。此外,还有环境变量,如PATH、HOME和LOGNAME,它们对整个Shell会话都有效。 在Shell中,替换运算符用于字符串操作,如模式匹配和替换。例如,`#`和`##`用于从字符串头部删除匹配的模式,`%`和`%%`则从尾部删除,`/pattern/string`用于替换匹配的模式。 命令替换使用反引号(`)将命令的输出作为文本插入到命令行中,例如`echo `PWD``会打印当前工作目录。单引号和双引号有不同的引用规则:单引号内的内容不会被转义,而双引号内的内容会。 函数是Shell编程中组织代码的重要手段,定义函数可以按照以下格式: ```bash function functionName() { shell commands } ``` 函数的执行顺序依次是:别名、关键字、函数、内置命令和外部命令。 这份学习笔记全面介绍了Shell编程的基础,对于初学者来说是一份宝贵的参考资料,可以帮助理解和掌握Shell脚本的编写和管理技巧。
![](https://csdnimg.cn/release/download_crawler_static/12131551/bg3.jpg)
剩余14页未读,继续阅读
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.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://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://profile-avatar.csdnimg.cn/342f0b6ba7c343fe823f0b039943e18a_qq_27851149.jpg!1)
- 粉丝: 4
- 资源: 1
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![](https://csdnimg.cn/release/wenkucmsfe/public/img/voice.245cc511.png)
最新资源
- 中国微型数字传声器:技术革新与市场前景
- 智能安防:基于Hi3515的嵌入式云台控制系统设计
- 手机电量低时辐射真增千倍?解析手机使用谣言
- 56F803型DSP驱动的高精度大功率超声波电源控制策略研究
- ARM与GPRS结合的远程监测系统设计
- GPS与RFID技术结合的智能巡检系统设计
- CPLD驱动的低功耗爆炸场温度测试系统设计
- 基于FPGA的智能驱动控制系统:可扩展设计与工业网络协议
- 基于ATmega128和CH374的嵌入式USB接口设计
- 基于AT89C52的温度补偿超声波测距仪:高精度设计与应用
- MSP430F448单片机在交流数字电压表中的应用
- 提升变频器应用效率的12项实用技巧
- STM32F103在数字电镀电源并联均流系统中的应用
- PSpice仿真下的升压开关电源设计:拓扑分析与CCM稳定性提升
- 轻巧高效:MSP430主导的低成本无线传感器网络节点设计
- FPGA在EDA/PLD中实现LVDS接口的应用解析
![](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)