news 2026/7/7 20:21:41

Linux shell进阶教程:使用.调用子脚本详解

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Linux shell进阶教程:使用.调用子脚本详解

./1.sh的行为等同于sh 1.shbash 1.sh,即:

会启动一个新的子进程来执行脚本,不共享父 Shell 的变量和函数(除非变量被export)。


🔍 详细解释

前提条件:
  • 文件1.sh必须具有可执行权限(可通过chmod +x 1.sh设置);
  • 文件开头有正确的Shebang 行(如#!/bin/bash#!/bin/sh)。
执行机制:

当你运行:

./1.sh

系统会:

  1. 根据1.sh第一行的 Shebang(例如#!/bin/bash)决定用哪个解释器;
  2. 启动一个新进程(如/bin/bash ./1.sh)来执行该脚本;
  3. 这个新进程是当前 Shell 的子进程,拥有独立的环境。

🔄 与其它方式对比

调用方式是否新建进程变量是否共享函数是否共享依赖 Shebang需要可执行权限
./1.sh✅ 是❌ 否(仅export❌ 否✅ 是✅ 是
sh 1.sh✅ 是❌ 否(仅export❌ 否❌ 否(强制用 sh)❌ 否
bash 1.sh✅ 是❌ 否(仅export❌ 否❌ 否(强制用 bash)❌ 否
source 1.sh❌ 否✅ 是✅ 是❌ 否❌ 否
. 1.sh❌ 否✅ 是✅ 是❌ 否❌ 否

💡 注意:

  • 如果1.sh没有 Shebang,./1.sh可能会失败或使用默认 shell(取决于系统);
  • sh 1.sh忽略 Shebang,强制用sh解释器。

✅ 示例说明

假设parent.sh内容如下:

#!/bin/bashname="Alice"./child.sh# 或 sh child.shecho"Parent:$name"

child.sh内容:

#!/bin/bashecho"Child:$name"name="Bob"

输出:

Child: # (空!因为 name 未 export) Parent: Alice # 父脚本变量未被修改

但如果改成:

exportname="Alice"./child.sh

child.sh中能读到Alice,但修改name="Bob"不会影响父脚本


⚠️ 常见误区

❌ “./1.shsource 1.sh差不多?”
✅ 完全不同!前者是“运行一个程序”,后者是“把代码粘贴到当前 shell 执行”。


✅ 总结

  • ./1.shbash 1.sh(如果 Shebang 是#!/bin/bash
  • 总是启动新进程不共享非 export 变量不影响父 Shell 状态
  • 标准的、安全的脚本执行方式,适用于大多数场景(如启动服务、运行任务)。

📌 记住:
./xxx是“执行一个程序”,. xxx(带空格)是“加载一段代码”—— 名字相似,行为天壤之别!

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/6 10:02:13

CAIE人工智能认证价值全解析:你的未来择业秘笈

近年来,人工智能已从技术概念深度渗透至各行各业。全球企业对AI的投入持续增加,企业的AI使用率显著提升。在这一背景下,如何将AI能力转化为个人核心竞争力,成为许多从业者关注的话题。行业普遍认为,通过系统学习和专业…

作者头像 李华
网站建设 2026/7/7 6:53:00

高效掌握Perfetto TraceProcessor:5个实战技巧解决性能分析难题

高效掌握Perfetto TraceProcessor:5个实战技巧解决性能分析难题 【免费下载链接】perfetto Performance instrumentation and tracing for Android, Linux and Chrome (read-only mirror of https://android.googlesource.com/platform/external/perfetto/) 项目地…

作者头像 李华
网站建设 2026/7/1 23:12:00

智能办公革命:用Dify.AI实现文档创作自动化

智能办公革命:用Dify.AI实现文档创作自动化 【免费下载链接】dify 一个开源助手API和GPT的替代品。Dify.AI 是一个大型语言模型(LLM)应用开发平台。它整合了后端即服务(Backend as a Service)和LLMOps的概念&#xff0…

作者头像 李华
网站建设 2026/7/6 17:43:05

电商物流效率瓶颈如何突破:京东智能物流系统技术解析

电商物流效率瓶颈如何突破:京东智能物流系统技术解析 【免费下载链接】京东物流系统流程图资源下载分享 电子商务的整个运作是包含信息流、商流、资金流和物流在内的一系列流动过程,其优势体现在信息资源的充分共享和运作方式的高效率上。在此过程中&…

作者头像 李华
网站建设 2026/7/6 1:04:22

ag-ui TypeScript SDK终极指南:构建类型安全的AI应用

ag-ui TypeScript SDK终极指南:构建类型安全的AI应用 【免费下载链接】ag-ui 项目地址: https://gitcode.com/gh_mirrors/agu/ag-ui 你是否曾经在开发AI应用时,因为类型错误而花费数小时调试?或者因为数据结构不匹配而导致整个应用崩…

作者头像 李华
网站建设 2026/7/5 21:23:29

JDK 1.8.0_201 终极下载与安装指南:快速搭建Java开发环境

JDK 1.8.0_201 终极下载与安装指南:快速搭建Java开发环境 【免费下载链接】JDK1.8.0_201资源下载 本仓库提供了 Java Development Kit (JDK) 1.8.0_201 版本的直接下载资源。JDK 是开发Java应用程序的必备工具包,它包括了Java运行环境(Java R…

作者头像 李华