根据提供的信息,我们可以深入探讨Solaris技术指南017.PDF文档中提到的关键知识点,主要集中在Shell脚本的基础以及特定Shell(如Bourne Shell、Korn Shell 和 C Shell)的特点与用法。 ### 1. 环境文件特征 - **Bourne Shell 和 Korn Shell**: - **登录时读取**:`.profile` 文件。 - **开启 Shell 时读取**:此类型 Shell 不会自动读取 `.login` 文件。 - **在 `.profile` 中被声明为 ENV=.file 的文件**:可以指定其他文件来替代默认的行为。 - **C Shell**: - **登录时读取**:`.login` 文件。 - **开启 Shell 时读取**:`.cshrc` 文件。 - **在 `.profile` 中被声明为 ENV=.file 的文件**:不适用,C Shell 使用不同的配置文件。 ### 2. 脚本的首行 - **Bourne Shell**:`#!/bin/sh` - **Korn Shell**:`#!/bin/ksh` - **C Shell**:`#!/bin/csh -f` 这些首行指定了脚本将使用的 Shell 类型。例如,如果脚本使用 `#!/bin/sh` 作为首行,则系统将会使用 Bourne Shell 来执行该脚本。 ### 3. Korn Shell 的目录运算符 Korn Shell 提供了一些强大的目录运算符,用于处理字符串: - **${variable#pattern}**:从变量开头删除与 pattern 匹配的最短部分。 - **${variable##pattern}**:从变量开头删除与 pattern 匹配的最长部分。 - **${variable%pattern}**:从变量结尾删除与 pattern 匹配的最短部分。 - **${variable%%pattern}**:从变量结尾删除与 pattern 匹配的最长部分。 这些运算符非常有用,可以简化字符串处理任务,比如去除文件扩展名等。 ### 4. C Shell 中的变量修改符 C Shell 提供了以下变量修改符: - **:e**:删除变量值的前缀部分(以“.”结束的部分)。 - **:h**:删除变量值的后缀部分(以“.”开始的部分)。 - **:r**:删除变量值的文件名部分。 - **:t**:删除变量值的目录部分。 - **:q**:强制引用变量值(常用于引用 `$argv`)。 - **:x**:类似于 :q 选项,但在遇到空格、制表符或新行时会创建一个新的单词。 这些修改符允许用户轻松地操作字符串和文件路径。 ### 5. 由 Shell 初始化的变量 - **$***:列出命令行参数的值。Bourne 或 Korn Shell 中使用,而 C Shell 中使用 `$argv`。 - **$#**:列出命令行参数的数量。Bourne 或 Korn Shell 中使用,而在 C Shell 中返回变量数组的长度。 - **$?**:返回上一个命令的退出状态。在 Bourne 或 Korn Shell 中,非零值通常表示错误。 - **$$**:返回当前 Shell 进程的进程 ID。 - **$!**:返回在后台运行的最后一个进程的进程 ID。 这些变量是 Shell 编程中的常用概念,了解它们的用途对于编写高效和可靠的脚本至关重要。 ### 6. Shell 的内置命令 文档还列出了不同 Shell 中可用的一些内置命令及其用途: - **alias**: 定义别名。 - **bg**: 将命令置于后台运行。 - **break**: 从循环中跳出。 - **cd**: 改变当前工作目录。 - **continue**: 继续执行循环的下一次迭代。 - **echo**: 输出参数到标准输出。 - **eval**: 计算并执行参数。 - **exec**: 执行命令并替换当前进程。 - **export**: 设置或获取 Shell 变量。 - **jobs**: 显示正在运行的任务列表。 - **kill**: 向进程发送信号。 - **limit**: 限制进程的资源使用。 - **login**: 结束当前登录 Shell 并进入新的登录 Shell。 - **logout**: 从登录 Shell 退出。 以上命令是 Shell 脚本开发中的核心工具,掌握它们可以帮助开发者更高效地完成各种任务。 通过这些知识点的学习,我们可以更好地理解 Solaris 技术指南017.PDF 中提到的各种 Shell 的特性和用法,进而提高 Shell 脚本的编写能力。
剩余23页未读,继续阅读
- 粉丝: 1
- 资源: 537
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- win32汇编环境,对话框程序里对画弧线的理解
- 考虑风光不确定性的主动配电网经济优化调度研究
- 多CA多TA迸发调用引发的思考
- 自动驾驶控制-三自由度非线性Nmpc跟踪双移线路径 非线性模型没有对动力学模型做线性化,直接进行求解,优点是比较精度高,缺点是计算比较费时 matlab和carsim联合仿真
- 移相全桥ACDC闭环控制仿真模型,交流电压经过不控整流输出直流电压,单电压闭环控制 只提供仿真文件
- 化工企业仪表维护信息系统-Python开发的高效信息查找软件(含代码及解释)
- 永磁直驱风力发电系统,永磁同步电机,风力发电系统,风力机仿真模型,采用背靠背结构 风力机mppt采用最佳尖速比控制,机侧采用零d轴控制;网侧采用电网电压定向矢量双闭环控制
- 嵌入式实时操作系统课程代码,互斥信号量、事件标志组、改为串口打印结果、跑马灯1、跑马灯及闪灯、按键控制跑马灯及闪灯、LCD显示变化的数字、任务的挂起与恢复-秒表实现、用信号量实现秒表、打气球游戏
- docker方式启动self-service-password 配置文件
- 该模型采用Id=0控制,重点是永磁同步电机的模型是自己搭建,不是采用simulink的自带的PMSM,可以对参数电机参数进行改动
- Matlab simulink仿真模型搭建(电池相关) 可接锂电池或电池包建模搭建 单体电池方面: 1、电池等效电路模型搭建(RC模型) 2、电池特征参数辨识(离线、在线、自适应) 3、电池SOC估计
- lanchain的RAG实践研究
- 基于MATLAB实现mp4视频的高效离散余弦变换(DCT/IDCT)编码及其质量评估
- QPSK调制解调 FPGA 实现 verilog 语言 同样支持 FSM,MSK,DBPSK,DQPSK,8PSK,16QAM等信号调制解调FPGA开发 目前只支持用 vivado,modelsim实
- 嵌入式常用软件-Image2Lcd 2.9-Zimo3Pro((基础例程显示例程的字符取模)-串口助手-普中usb-ISP烧录
- OPCDA转OPCUA工具软件,网关软件 以前许多老工程都是使用的DA Server 本软件采用OPC Client读取数据并转为UA Server