shell脚本【命令解析过程】

本文详细阐述了Shell命令行的执行过程,包括15个步骤:读取命令行、命令历史替换、别名替换、花括号扩展、波浪号替换、I/O重定向、变量替换、命令替换、单词解析、文件名生成、引用字符处理、进程替换、环境处理、执行命令及跟踪执行过程。通过具体例子说明了各个步骤的重要性,特别是I/O重定向、变量替换和进程替换等概念。
摘要由CSDN通过智能技术生成

    必须要知道命令解析过程的意义在于:能够清楚的知道命令解析步骤。若发生错误时,能够知道该怎样更改。

    比如在博客:I/O重定向(点击打开链接)的举例:例①中,就有因为不知道命令行是如何读取的,而造成while语句块和其后的重定向,对结果的不解。

    再比如博客:变量引用(点击打开链接)中第三大点的第3小点,变量举例中就有很多是对命令行的解析过程和如何解析进行的举例分析。如:a=var;b   这一句,是读完a=var;b然后才开始划分一条命令呢,还是先读a=var;再读b呢。还有a=1 2 3又会怎样解析呢,是读完a=1 2 3,还是只读取:a=1? 读完命令后,这一句应该怎样划分呢?

    再比如重定向:>$a   (注:$a是变量引用,是一个文件名。这一句即是输出重定向到文件)。这一句的解析,是先重定向>,再$a变量解析呢;还是先$a变量替换,再重定向>呢。很显然这两种是截然不同的。这些都是命令解析过程中的问题。

 

一、Shell命令行的执行过程,分为15步:

    1、读取命令行

    2、命令历史替换

    3、别名替换

    4、花括号扩展

    5、波浪号替换

    6、I/O重定向

    7、变量替换

    8、命令替换

    9、单词解析

    10、 文件名生成

    11、引用字符处理

    12、进程替换

    13、环境处理

    14、执行命令

    15、跟踪执行过程

 

二、详细介绍

1、读取命令行

    ⑴第一步shell会读取完整的命令行

        分为两类 (读命令行和读结构语句):

        ①、读取命令行

        Shell会逐个判断读取的每一个字符,直至遇到一个分号“;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值