shell 命令

2020-11-21  本文已影响0人  peerben

Linux shell执行命令有三种: 内建命令, shell函数和外部命令

内部命令: shell程序本身包含的命令, 命令集成在shell解释器中, 执行内建命令, 没有进程的创建和消亡

外部命令: 独立于shell的可执行程序, find, grep ... 命令行在shell执行外部命令时, 会创建一个当前shell的复制进程来执行

外部进程执行过程:

  1. 调用POSIX的fork函数, 创建命令行shell进程的子进程
  2. 在子进程环境查找程序路径
  3. 以新进程取代原进程
  4. 子进程执行完成, 从终端读取下一条命令

source命令在原进程环境执行, 而执行./script.sh 脚本, 是以新进程启动, 对父进程环境无影响

父进程 ========== 等待子shell返回 ============ 父shell
| |
| |
创建子进程 -----------> 子shell --------> 执行程序 -------------> 子进程返回

上一篇下一篇

猜你喜欢

热点阅读