最后更新于2年前
这有帮助吗?
一个 SHELL 脚本可以启动多个子进程,这些子进程使得脚本进行并行处理
#!/bin/bash command sh sub_shell.sh # 运行子 SHELL 脚本文件 command
#! /bin/sh # script.sh cd .. ls
交互Shell(bash)fork/exec一个子Shell(sh)用于执行脚本,父进程bash等待子进程sh终止。sh读取脚本中的cd ..命令,调用相应的函数执行内建命令,改变当前工作目录为上一级目录。sh读取脚本中的ls命令,fork/exec这个程序,列出当前工作目录下的文件,sh等待ls终止。ls终止后,sh继续执行,读到脚本文件末尾,sh终止。sh终止后,bash继续执行,打印提示符等待用户输入。
交互Shell(bash)fork/exec一个子Shell(sh)用于执行脚本,父进程bash等待子进程sh终止。
bash
fork
exec
sh
sh读取脚本中的cd ..命令,调用相应的函数执行内建命令,改变当前工作目录为上一级目录。
cd ..
sh读取脚本中的ls命令,fork/exec这个程序,列出当前工作目录下的文件,sh等待ls终止。
ls
ls终止后,sh继续执行,读到脚本文件末尾,sh终止。
sh终止后,bash继续执行,打印提示符等待用户输入。