2026/4/18 7:33:45
网站建设
项目流程
企石镇网站建设,韩国跨境电商有哪些平台,一个微信公众号可以做几个网站,搜索网站做推广./1.sh 的行为 等同于 sh 1.sh 或 bash 1.sh#xff0c;即#xff1a;✅ 会启动一个新的子进程来执行脚本#xff0c;不共享父 Shell 的变量和函数#xff08;除非变量被 export#xff09;。#x1f50d; 详细解释
前提条件#xff1a;
文件 1.sh 必须具有 可执行权限即✅会启动一个新的子进程来执行脚本不共享父 Shell 的变量和函数除非变量被export。 详细解释前提条件文件1.sh必须具有可执行权限可通过chmod x 1.sh设置文件开头有正确的Shebang 行如#!/bin/bash或#!/bin/sh。执行机制当你运行./1.sh系统会根据1.sh第一行的 Shebang例如#!/bin/bash决定用哪个解释器启动一个新进程如/bin/bash ./1.sh来执行该脚本这个新进程是当前 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/bashnameAlice./child.sh# 或 sh child.shechoParent:$namechild.sh内容#!/bin/bashechoChild:$namenameBob输出Child: # 空因为 name 未 export Parent: Alice # 父脚本变量未被修改但如果改成exportnameAlice./child.sh则child.sh中能读到Alice但修改nameBob仍不会影响父脚本。⚠️ 常见误区❌ “./1.sh和source 1.sh差不多”✅ 完全不同前者是“运行一个程序”后者是“把代码粘贴到当前 shell 执行”。✅ 总结./1.sh≈bash 1.sh如果 Shebang 是#!/bin/bash它总是启动新进程不共享非 export 变量不影响父 Shell 状态。是标准的、安全的脚本执行方式适用于大多数场景如启动服务、运行任务。 记住./xxx是“执行一个程序”. xxx带空格是“加载一段代码”—— 名字相似行为天壤之别