命令行处理与版本控制全解析
命令行处理步骤
在使用 shell 时,命令行处理是一个关键过程。每一行从标准输入(STDIN)或脚本中读取的内容被称为管道,因为它包含一个或多个由零个或多个管道字符(|)分隔的命令。以下是 shell 处理命令行的详细步骤:
1. 分割为标记 :将命令按固定的元字符(空格、制表符、换行符、;、(、)、<、>、| 和 &)分割成标记。标记类型包括单词、关键字、I/O 重定向器和分号。
2. 检查第一个标记 :查看每个命令的第一个标记是否为无引号或反斜杠的关键字。如果是“if”等控制结构开头关键字、“function”、“{” 或 “(”,则是复合命令,shell 会为其做内部设置并读取下一个命令重新开始处理;若不是复合命令开头关键字,shell 会提示语法错误。
3. 检查别名 :将每个命令的第一个单词与别名列表进行匹配。若匹配成功,用别名定义替换并回到步骤 1;否则,进入步骤 4。此机制支持递归别名,也允许为关键字定义别名。
4. 花括号扩展 :例如,“a{b,c}” 会扩展为 “ab ac”。
5. 波浪号扩展 :若波浪号在单词开头,将其替换为用户的主目录($HOME)。
6. 用户主目录替换 :将 “~user” 替换为用户的主目录。
7. 参数替换 :对以美元符号($)开头的表达式进行参数(变量)替换。
8.
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



