Shell是Linux系统中的一种命令解释器,用于交互式地运行用户输入的命令或者执行脚本。在Shell脚本中,第一行通常写为`#!/bin/bash`,这被称为Shebang,它告诉系统应该使用哪个解释器来执行接下来的脚本。在Linux中,双引号与单引号的作用略有不同,双引号内可以保留变量,而单引号内的内容会被视为纯文本。 在Linux中,注释使用`#`符号开始,这一行之后的内容将被忽略。`chmod +x filename`命令用于给文件添加执行权限,`u`, `g`, `o`分别代表用户、组和其他用户的权限,`r`, `w`, `x`则分别代表读、写和执行权限,数字4、2、1对应rwx的权限位。 在Shell脚本中,变量无需预先声明,其类型是动态决定的,并且等号两侧不应有空格。`cat`命令常用于合并或查看文件内容,`cat <<EOF`用于创建一个由EOF标识开始和结束的多行字符串。在vim编辑器中,`wq`和`x`都是保存并退出的命令。 `read`命令用于从标准输入读取数据并赋值给变量,如`read -p "提示语句" a b c`可以分别读取用户输入并赋值给变量a、b、c。命令的输出可以通过反引号``或$(command)捕获,例如`lujing=$(pwd)`将当前工作目录赋值给变量lujing。 `$?`特殊变量存储着最近一次命令的退出状态,0表示成功,非0表示失败。`expr`命令用于执行基本的算术运算,但不支持浮点数。运算符两边需要空格,乘法`*`需要转义,如`\*`,`expr`也支持计算字符串长度。 `echo`命令用于在终端打印字符串,`-n`选项表示不换行。使用`echo`进行算术运算时,可以结合`bc`命令处理浮点数,如`echo 2 + 5.3 | bc -l`。`echo`和`printf`都能输出变量值,`printf`更适用于复杂的格式化输出。 在Shell中,可以使用`unset`命令删除变量。`history`命令可以查看和管理命令历史,`!!`重复执行上一条命令,`!num`执行特定历史记录的命令,`!abc`重复包含特定字符的命令,`!-n`执行倒数第n条命令。通过Ctrl+r可以在历史记录中搜索命令。 在Shell脚本中定义函数时,函数名后紧跟参数列表,如`function_name arg1 arg2`。函数内部的变量对全局环境无影响,除非显式使用`export`。位置参数变量 `$1`, `$2`, ..., `$n`分别代表函数调用时传入的第1、2...n个参数。 这些是Shell编程中的基础知识点,掌握它们可以帮助你更好地编写和理解Linux脚本。
剩余52页未读,继续阅读
- 粉丝: 1046
- 资源: 11
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- MATLAB 实现基于双向长短期记忆网络(BiLSTM)进行时间序列预测模型的项目详细实例(含完整的程序,GUI设计和代码详解)
- 基于java的校园一卡通系统软件的开题报告.docx
- MATLAB 实现基于灰色预测模型(Grey Prediction)进行时间序列预测模型的项目详细实例(含完整的程序,GUI设计和代码详解)
- 基于Pygame库的Python烟花效果编程教程与应用
- MATLAB 实现基于小波变换(Wavelet Transform)进行时间序列预测模型的项目详细实例(含完整的程序,GUI设计和代码详解)
- 元旦烟花HTML实现:使用Canvas和JS打造炫酷的网页烟花效果
- Python实现文字、数字与公式识别及其CNN模型训练的技术指南-含代码
- 資訊安全與生活.docx
- 动态云背景导航页源码.zip
- IMG_20250102_080841.jpg
- 基于Java+JSP+MySQL实现个人与家乡展示管理平台源码(高分项目)
- 基于STM32的智能温室大棚控制系统设计(源码+报告文档)
- 基于STM32的智能温室大棚控制系统设计源码+报告+答辩PPT(高分项目)
- 毕业设计基于STM32单片机的智能空气监测系统源码+文档说明(高分毕设)
- 基于python的自动组卷评卷考试系统源码.zip
- 基于python的自动组卷评卷考试系统.zip