灰色系网站构建新引擎激发新动力
2026/1/19 14:54:10 网站建设 项目流程
灰色系网站,构建新引擎激发新动力,网站建设 响应式,装修网站制作设计价格费用在 Shell 脚本中#xff0c;通过 sh 1.sh、bash 1.sh、source 1.sh 或 . 1.sh 调用子脚本#xff0c;行为有本质区别#xff0c;主要体现在 执行环境#xff08;进程/作用域#xff09; 和 变量/函数可见性 上。 ✅ 对比总结表 调用方式是否新建子进程能否修改父脚本变量…在 Shell 脚本中通过sh 1.sh、bash 1.sh、source 1.sh或. 1.sh调用子脚本行为有本质区别主要体现在执行环境进程/作用域和变量/函数可见性上。✅ 对比总结表调用方式是否新建子进程能否修改父脚本变量能否继承父脚本变量能否使用父脚本函数执行速度典型用途sh 1.sh✅ 是❌ 不能❌ 仅export的❌ 不能稍慢独立任务、隔离执行bash 1.sh✅ 是❌ 不能❌ 仅export的❌ 不能稍慢同上指定 bashsource 1.sh❌ 否✅ 能✅ 全部✅ 能快加载配置、共享状态. 1.sh点命令❌ 否✅ 能✅ 全部✅ 能快同sourcePOSIX 标准 详细解释1.sh 1.sh或bash 1.sh启动新进程会创建一个新的 Shell 子进程来执行1.sh。父脚本的普通变量未export对子脚本不可见。子脚本中修改的变量不会影响父脚本。子脚本无法调用父脚本定义的函数。即使子脚本中exit也只退出子进程不影响父脚本继续执行。 示例# parent.shnameAliceshchild.sh# child.sh 里 echo $name → 空除非 export nameecho$name# 仍为 Alice2.source 1.sh或. 1.sh在当前 Shell 中执行不创建新进程直接在当前 Shell 环境中逐行执行1.sh。完全共享父脚本的变量、函数、当前目录、umask 等上下文。子脚本中修改变量父脚本能感知到变化。如果子脚本中写了exit整个父脚本会退出. 1.sh是 POSIX 标准写法source是 Bash/Zsh 的别名功能相同。 示例# parent.shnameAlicesourcechild.sh# child.sh 中 nameBob → 父脚本 name 变为 Bobecho$name# 输出 Bob 实际应用场景场景推荐方式原因加载配置文件如.envsource config.sh需要将变量导入当前环境执行独立部署任务bash deploy.sh隔离环境避免污染父脚本在脚本中复用函数库source lib.sh直接调用库中的函数临时测试脚本sh test.sh不影响当前 Shell 状态在 Dockerfile 或 CI 中运行sh entrypoint.sh通常需要独立进程⚠️ 常见陷阱误用exit在被source的脚本中写exit会导致整个终端或主脚本退出变量污染source时子脚本的变量会覆盖父脚本同名变量可用local限制作用域。路径问题source ./1.sh和sh ./1.sh对$0、$PWD的处理不同影响相对路径解析。✅ 最佳实践建议需要“导入”配置或函数→ 用source或.需要“运行”一个独立任务→ 用sh或bash不确定时→ 默认用sh更安全隔离性好写可移植脚本→ 优先用. script.shPOSIX 兼容 小技巧查看当前是否在子 shell 中echo$SHLVL# 每进一层子 shell 1总结一句话sh是“请别人帮你做事”source是“你自己做这件事”。前者隔离干净后者共享状态。根据需求选择即可。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询