news 2026/8/27 21:36:21

执行 shell 脚本 5 种方式对比

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
执行 shell 脚本 5 种方式对比

执行Shell脚本有多种方式,主要包括相对路径绝对路径sh命令bash命令source命令(或.点命令)。它们在权限要求执行环境解释器选择以及对当前Shell的影响等方面有显著区别。下面逐一说明并对比。


1. 相对路径执行

格式:./script.shscripts/myscript.sh

  • 权限要求:脚本文件需具有执行权限chmod +x script.sh)。
  • 执行环境:启动一个子Shell(通常是脚本第一行#!指定的解释器)来执行。脚本中的变量、目录切换等操作不会影响当前Shell。
  • 解释器:由脚本第一行的shebang(如#!/bin/bash)决定;若无shebang,则使用当前Shell(但可能因系统而异,通常为默认Shell)。
  • 路径查找:必须提供准确的相对路径(从当前工作目录出发)。仅写script.sh不会在PATH中查找,除非当前目录在PATH中。

2. 绝对路径执行

格式:/home/user/script.sh/usr/local/bin/myscript

  • 权限要求:同样需要执行权限
  • 执行环境:也是子Shell执行,不影响当前Shell环境。
  • 解释器:由脚本的shebang决定。
  • 路径查找:通过完整的路径直接定位,不依赖PATH

3. sh 命令执行

格式:sh script.sh

  • 权限要求:只需要读取权限(因为sh会读取文件内容)。
  • 执行环境:启动一个子Shellsh进程),脚本中的变更不影响当前Shell。
  • 解释器:明确使用sh(通常是系统默认的Bourne shell或兼容shell,如dash、bash的sh模式)。脚本中的shebang会被忽略,因为sh本身作为解释器。
  • 路径查找:若script.sh不带路径,会在PATH中查找;否则按给定路径读取。

4. bash 命令执行

格式:bash script.sh

  • 权限要求:只需读取权限
  • 执行环境:在子Shell(bash进程)中执行,不影响当前Shell。
  • 解释器:强制使用bash,忽略脚本中的shebang。适用于依赖bash特性的脚本(如数组、[[ ]]等)。
  • 路径查找:同sh,根据路径或PATH查找文件。

5. source 命令(或 . 点命令)执行

格式:source script.sh. script.sh

  • 权限要求:只需读取权限
  • 执行环境:在当前Shell进程中执行,脚本中所有的变量赋值、函数定义、目录切换等操作会直接影响当前Shell
  • 解释器:由当前Shell本身解释执行(当前Shell可能是bash、zsh等),脚本中的shebang被忽略。
  • 路径查找:如果文件名不带路径,会在PATH中查找;也可指定相对/绝对路径。

对比总结

执行方式是否需要执行权限执行环境解释器来源影响当前Shell典型用途
相对/绝对路径子Shellshebang 或 当前默认Shell运行独立脚本
sh script.sh否(只需读权限)子Shell (sh)sh(忽略shebang)在sh下测试/兼容运行
bash script.sh子Shell (bash)bash(忽略shebang)强制使用bash运行脚本
source / .当前Shell当前Shell(忽略shebang)加载配置文件、定义函数、设置环境

注意事项

  • 直接使用路径执行时,若脚本没有shebang,系统会调用默认Shell(通常是/bin/sh)来解释,但不同系统默认Shell可能不同,可能导致行为不一致。
  • source通常用于重用脚本中的函数或变量,例如. ~/.bashrc
  • 使用shbash执行时,可以临时覆盖脚本中指定的解释器,但可能因语法不兼容而出错(如在sh中运行bash特有语法)。
  • 相对路径./script.sh要求当前目录在文件系统中,而script.sh(无路径)若不在PATH中会报错“command not found”。
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/14 17:04:28

军工信息系统容灾备份中心建设合同验收方案-部分内容

军工信息系统容灾备份中心建设合同验收方案第一章 总则1.1 编制目的为规范军工信息系统集成项目(以下简称“项目”)验收全流程管理,明确验收范围、标准、流程及各方职责,保障项目成果严格契合国家军工行业标准、保密管理要求及合同…

作者头像 李华
网站建设 2026/8/27 21:35:29

TOSHIBA东芝 TC358743XBG BGA64 视频接口芯片

特性 HDMI接收接口HDMI 1.4 视频格式支持(最高1080P60fps) RGB,YCbCr444:24位每像素60帧/秒 YCbCr42224位每像素60帧/秒 音频支持 内部音频PLL用于跟踪ACR数据包传输的N/CTS值 3D支持 支持HDCP(可选) DDC支持 EDID支持 发布版本A,修订版1(2000年2月9日) 前128字节(E…

作者头像 李华
网站建设 2026/7/14 17:04:29

重生算法录|每日一题·回文链表

目录 🎯 闯关目标 解法1 开辟数组“双指针”判断法 📈 复杂度深度分析 时间复杂度:O (n) 空间复杂度:O (n) 解法2 空间复杂度为O(1)的解法 🧠 闯关思路(核心脑洞) 📝 关键步…

作者头像 李华
网站建设 2026/7/14 17:04:40

3步打造无缝文献工作流:WPS-Zotero插件效率提升指南

3步打造无缝文献工作流:WPS-Zotero插件效率提升指南 【免费下载链接】WPS-Zotero An add-on for WPS Writer to integrate with Zotero. 项目地址: https://gitcode.com/gh_mirrors/wp/WPS-Zotero 在学术写作领域,文献管理与文档编辑的割裂一直是…

作者头像 李华
网站建设 2026/7/14 17:04:39

ICM20602硬件SPI高速姿态读取技术详解:通信速度优化与软件教程资料

ICM20602硬件SPI 姿态读取,通信速度比MPU6050快 软件和教程资料最近在折腾姿态传感器的时候发现ICM20602这玩意儿挺有意思,尤其是它的硬件SPI接口。之前用MPU6050总觉得数据读取速度不够快,上个月接了个无人机项目,死活跟不上姿态…

作者头像 李华