1. 命令行的处理顺序:
1) 执行历史命令替代 (视情况而定)
2) 命令行被分解为 token
3) 更新历史命令 (视情况而定)
4) 引用的处理
5) 别名替代和函数的定义 (视情况而定)
6) 设置重定向,后台进程和管道
7) 执行变量替换
8) 执行命令替换
9) 执行称为 globbing 的文件名替换
10) 执行命令
命令被执行时,可以是别名、函数、内置命令或磁盘上的一个可执行程序。别名一般为原命令的缩写,函数是一组命令,别名和函数都在shell 内存空间中定义。内置命令是shell 内部程序,而可执行程序则在磁盘上。
shell 用路径变量在磁盘上定位可执行的程序,执行命令前创建一个sehll 子进程,过程如下图:
以上参考《UNIX Shell 范例精解》