news 2026/5/4 7:43:36

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/5/3 22:05:26

AI+时代,资质认证如何成为企业“硬通货”?一个真实案例揭秘

在“AI”与数字化转型浪潮席卷各行各业的今天,企业的价值评估标准正在发生深刻变革。对于科技型企业而言,拥有权威的资质认证,已不仅仅是享受政策红利的“敲门砖”,更是吸引资本目光、提升市场估值、加速并购与收转进程的核心“硬…

作者头像 李华
网站建设 2026/5/3 17:10:05

Mac系统如何轻松获取仿宋GB2312字体资源

如果你在Mac电脑上处理中文文档时发现缺少仿宋GB2312字体,不必担心,这里有一个简单有效的解决方案。该字体在各类正式文档和设计作品中应用广泛,但macOS系统默认并未预装,现在通过这个资源包可以快速解决这一问题。 【免费下载链接…

作者头像 李华
网站建设 2026/5/1 7:46:47

2025年12月— CET四六级 真题参考答案公布

2025.12 46级答案完整版2025年12月英语四级真题试卷和答案(一、二、三套全)完整版下载地址:参考答案下载公从号后台私信发送46级即可获取46级参考答案网盘链接,实时动态更新:希望大家都能通过46级,欢迎评论…

作者头像 李华
网站建设 2026/5/1 8:14:57

SPSS——聚类分析-二阶聚类分析

更多免费教程和软件 :​ 二阶聚类分析 二阶聚类,或TwoStep聚类,也常被称为两步聚类,是一种探索性的分析工具。 二阶聚类法可以基于类别变量和连续变量进行聚类,可以自动确定最终的分类个数,可以处理大型数据集。 二阶聚类整个聚类过程分为前后两个大的板块来完成。 第…

作者头像 李华
网站建设 2026/5/2 9:32:28

x-Spreadsheet Web表格组件:打造专业级数据管理界面的终极指南

x-Spreadsheet Web表格组件:打造专业级数据管理界面的终极指南 【免费下载链接】x-spreadsheet The project has been migrated to wolf-table/table https://github.com/wolf-table/table 项目地址: https://gitcode.com/gh_mirrors/xs/x-spreadsheet 在现代…

作者头像 李华
网站建设 2026/5/3 22:15:11

0.8秒修复1080P视频:SeedVR2重构行业效率标准,成本直降90%

导语 【免费下载链接】SeedVR2-7B 项目地址: https://ai.gitcode.com/hf_mirrors/ByteDance-Seed/SeedVR2-7B 字节跳动开源的SeedVR2-7B模型通过"一步式扩散对抗后训练"技术,将1080P视频修复时间从传统方法的15秒压缩至0.8秒,同时将计…

作者头像 李华