Bash 分析命令行的方式

shell执行指令前,Bash会先对改道指令进行分析。以下是Bash分析指令的流程

分割管道 : 如果已使用管道,则以管道为分隔符,将指令切成各别的指令。例如:命令1 | 命令2 | 命令3,会分成3个命令

对各别命令进行以下分析

取出token:使用分隔符,如空白 Tab,将命令分成token,所谓token是指组成命令的单词,例如 ll -la test.txt 可拆成ll -la 及 test.txt 3个token

替换别名 : 检查命令的第一个token 是不思别名,若是别名,则把别名替换成真正的指令,例如 把ll 替换成  ls -l --color=auto

括号扩展 : 若token有括号扩展的语法,则进行展开。 如{sb,b}in 会展开成sbin bin

~符号扩展 : 若token中有家目录的符号,则替换成实际的路径。如~ols3替换成/home/ols3

替换变量 : 若token中含有变量,则以变量取代。如$HI 换成‘hi’

替换命令 : 若token中含有 $(命令) 的形式,则把它替换成实际的执行结果。如 $(which diff) 替换成 /usr/bin/diff

替换算术 : 若有算术式,则计算其结果,并进行替换。 如$((3+5))   替换成 8

替换通配符 : 若token中含有 * 或 ? 的通配符,则替换其对应的结果。如 *.sh 替换成test.sh

根据函数 内置命令 搜寻路径的顺序,找寻第一个token所代表的命令位于何处

执行已替换完成的指令

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值