shell 命令
2020-11-21 本文已影响0人
peerben
Linux shell执行命令有三种: 内建命令, shell函数和外部命令
内部命令: shell程序本身包含的命令, 命令集成在shell解释器中, 执行内建命令, 没有进程的创建和消亡
外部命令: 独立于shell的可执行程序, find, grep ... 命令行在shell执行外部命令时, 会创建一个当前shell的复制进程来执行
外部进程执行过程:
- 调用POSIX的fork函数, 创建命令行shell进程的子进程
- 在子进程环境查找程序路径
- 以新进程取代原进程
- 子进程执行完成, 从终端读取下一条命令
source命令在原进程环境执行, 而执行./script.sh 脚本, 是以新进程启动, 对父进程环境无影响
父进程 ========== 等待子shell返回 ============ 父shell
| |
| |
创建子进程 -----------> 子shell --------> 执行程序 -------------> 子进程返回