【shell&bash进阶系列】(八)shell解析命令行的过程以及eval命令

本文说明的是一条linux命令在执行时大致要经过哪些过程?以及这些过程的大致顺序。

1.1 shell解析命令行

shell读取和执行命令时的大致操作过程如下图:

以执行以下命令为例:

echo -e "some files:" ~/i* "\nThe date:$(date +%F)\n$name's age is $((a+4))" >/tmp/a.log

假设在执行该命令前,已赋值变量"name=longshuai"和"a=24",于是重定向到/tmp/a.log中的结果为:

some files: /root/inotify.sh /root/inotify.sh.ori
The date:2017-08-14
longshuai's age is 28

(1).读取输入的命令行。

(2).解析引用并分割命令行为各个单词,各单词称为token。其中重定向所在的token会被保存下来,直到扩展步骤(5)结束后才进行相关处理,如进行扩展、截断文件等。

shell中有3种引用方式:反斜线引用、单引号引用和双引号引用。

◇ 反斜线转义:使得元字符变为普通的字面字符。但这只能对反斜线后一个字符进行转义。

◇ 单引号引用:单引号内的所有字符全部变为字面符号符号。但注意:单引

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值