shell命令执行过程

1.从脚本或终端或bash -c选项后的字符串中获取输入

2.将获取的输入分解成词元(token),此步骤会执行别名(alisa)展开

1)shell识别出的一个字符序列单元称为词元,shell一般通过元字符(metacharacter)将得到的输入进行分割,得到若干个词元,再对词元进行处理。

2)shell的元字符有:space,tab, newline,‘|’, ‘&’, ‘;’, ‘(’, ‘)’, ‘<’, or ‘>’.元字符用于词元分割符;

3)shell中的词(word):不包含非转义元字符的字符序列;

4)shell中的操作符(operator):newline,‘||’, ‘&&’, ‘&’, ‘;’, ‘;;’, ‘;&’, ‘;;&’, ‘|’, ‘|&’, ‘(’, or ‘)’.

5)词和操作符都是词元

3.将词解析为简单命令或复合命令

1)简单命令是由空格进行分割的词组成的序列

2)复合命令包括循环结构,条件结构,命令组

4.执行各种shell展开

1)shell主要有七大展开:大括号展开,波浪符展开,参数展开,命令替换,算术展开,分词,文件名展开;

2)展开执行完后,没有转义的\,',”会被移除。

5.执行必要的重定向,

6.执行命令

如果命令中包含/,则执行制定路径的程序;如果命令中不包含/,会检查是否是shell函数,shell内建命令,如果都不是,则在PATH环境变量中的路径进行查找。

7.等待命令结束获取命令执行状态

转载于:https://www.cnblogs.com/buddy916/p/10291845.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值