Linux中: "父子进程和 shell 脚本的执行方式"

父子进程和 shell 脚本的执行方式

Linux 中父进程创建子进程后。子进程会继承父进程的大部分执行环境(环境变量、工作目录等),但进程之间资源是隔离的,所以 子进程对 "变量、目录" 等资源的修改不会影响父进程。

基于这一点,Shell 脚本的执行方式可以总结为两大类

  • 在当前 Shell 中执行(不创建子进程):会修改当前 Shell 环境信息,一般用来加载配置,环境变量操作。
  • 在子 Shell 中执行(创建子进程):修改环境仅作用在子 Shell,不影响当前 Shell,执行完后子进程退出。
执行方式 是否启动子 Shell 是否需要执行权限 变量/环境是否影响当前 Shell
bash script.sh 不影响
./script.sh 需要 不影响
source script.sh. script.sh 不需要 会影响
bash -c "命令" 是(短命令) 不影响
env VAR=value ./script.sh 需要 仅在子 Shell 生效

例如:某个脚本里面包含exit命令,如果是在当前shell内执行,会导致整个终端退出。

posted on 2025-11-18 10:36  背对背依靠  阅读(3)  评论(0)    收藏  举报