当前位置: 首页 > news >正文

Linux Shell 脚本入门、执行方式与批量压解实战

一、前言

Shell 脚本是 Linux 运维自动化的核心工具,本质是将多条 Linux 命令按逻辑顺序写入文本文件,批量自动执行。日常重复操作、定时备份、服务巡检、批量处理文件都可以用脚本实现,大幅提升效率。本文从脚本格式规范讲起,重点讲解主流执行方式、运行环境差异,是学习 Shell 编程的第一步。


二、Shell 脚本基础规范

1. 脚本第一行(解释器声明)

脚本首行必须指定解析器,标准写法:

bash

运行

#!/bin/bash
  • #!:魔法标记,告诉系统使用哪个解释器运行脚本
  • /bin/bash:指定使用 Bash 解释器(Linux 默认 Shell)
  • 也可写#!/bin/sh,兼容性更强,功能比 bash 少

2. 注释规则

#开头的内容为注释,脚本执行时会忽略,用于写说明、备注:

bash

运行

# 这是单行注释 #!/bin/bash echo "Hello Shell" # 行内注释

3. 编写第一个测试脚本

  1. 创建脚本文件

bash

运行

vim first.sh
  1. 写入以下内容

bash

运行

#!/bin/bash # 我的第一个Shell脚本 echo "========== 系统信息 ==========" echo "当前所在目录:$(pwd)" echo "当前登录用户:$(whoami)" ls -l
  1. 保存退出(ESC:wq

三、Shell 脚本 4 种执行方式(重点)

针对上面first.sh,逐一演示执行方式、权限要求、运行环境、适用场景。

方式 1:使用 sh /bash 解释器执行(推荐)

特点:不需要给脚本添加执行权限,最简单、调试首选。

bash

运行

# 用 bash 执行 bash first.sh # 用 sh 执行(兼容老旧系统) sh first.sh

运行环境:开启子 Shell,脚本内切换目录、修改变量,不会影响当前终端。

方式 2:绝对路径 / 相对路径执行

前提:脚本必须拥有执行权限 (x)

第一步:添加执行权限

bash

运行

chmod +x first.sh
第二步:执行脚本

bash

运行

# 相对路径(当前目录) ./first.sh # 绝对路径(示例,根据实际路径修改) /root/first.sh

运行环境:同样开启子 Shell,和bash/sh行为一致。

方式 3:source 或。点命令执行

特点:不需要执行权限,在当前 Shell 终端中运行,不开启子 Shell。

bash

运行

# 完整写法 source first.sh # 简写写法(点 + 空格 + 脚本名) . first.sh
核心区别演示

在脚本中加入切换目录命令:

bash

运行

#!/bin/bash cd /opt pwd

使用source执行后,当前终端会直接切换到 /opt 目录;使用bash/./执行,终端目录不会变化。

适用场景:加载环境变量、读取配置文件、临时切换工作目录。

方式 4:后台后台运行脚本(常驻 / 静默执行)

适用于长时间运行的脚本,关闭终端也不中断,搭配&使用。

bash

运行

# 后台运行,日志输出到空(静默) bash first.sh > /dev/null 2>&1 &

四、四种执行方式核心对比表

表格

执行方式是否需要执行权限是否开启子 Shell主要用途
bash/sh 脚本名不需要日常调试、通用执行
./脚本名需要chmod +x标准脚本运行、规范上线
source / . 脚本名不需要加载配置、环境变量
脚本名 &后台执行按需长时间任务、无人值守

五、基础语法补充(入门必看)

1. 简单变量使用

bash

运行

#!/bin/bash # 定义变量,等号两边不能有空格 name="Shell脚本" # 调用变量,加 $ echo "正在学习:$name"

2. 命令嵌套$(命令)

把一条命令的执行结果,嵌入另一条命令中:

bash

运行

echo "当前时间:$(date)"

六、常见报错与避坑

1.-bash: ./first.sh: 权限不够

原因:缺少执行权限 → 解决:chmod +x first.sh

2.脚本路径带中文 / 空格

尽量使用纯英文路径,Linux 对空格、中文兼容性差。

3.Windows 编辑脚本,执行报$'\r': 未找到命令

原因:换行符格式错误 → 修复:dos2unixfirst.sh

4.脚本内cd切换目录不生效

原因:使用了子 Shell 执行(bash/./),属于正常现象;需要全局切换请用source


七、快速命令汇总

bash

运行

# 1. 赋执行权限 chmod +x 脚本名.sh # 2. 常用执行命令 bash 脚本名.sh ./脚本名.sh source 脚本名.sh . 脚本名.sh # 3. 修复Windows换行符 dos2unix 脚本名.sh

八、总结

  1. 脚本首行#!/bin/bash是标准格式,不可省略;
  2. 日常学习、调试优先用bash脚本名,不用纠结权限;
  3. 正式运行脚本推荐chmod +x+./脚本名
  4. 加载配置、环境变量必须使用source执行;
  5. 长时间运行的脚本放到后台执行。
http://www.rkmt.cn/news/1442465.html

相关文章:

  • Sora 2生成长视频崩溃频发?独家披露GPU显存碎片化监控脚本+TensorRT优化配置(实测A100 80G吞吐提升3.2倍)
  • TV Bro:专为Android电视设计的终极遥控器友好浏览器解决方案
  • 3分钟解锁Minecraft RTX光影新境界:BetterRTX安装器深度体验
  • 今年北京车展,为什么那么多设计“撞脸”?
  • 如何用STM32快速构建智能温控系统:完整嵌入式开发实战指南
  • 山东大学软件学院项目实训——计科智伴(六)——前后端接口全面对齐、成就体系与 RAG 兜底
  • 我找到的国内直连 GPT 5.5 / Claude Opus 低成本方案
  • WindowResizer终极指南:3分钟掌握窗口强制调整技巧
  • Fusion360一体化设计:从零打造自定义按钮盒的完整指南
  • 【C++基础】循环嵌套
  • 2026 折叠棋牌桌选购避坑,拆机测评选材,稳固低故障棋牌桌源头品牌推荐 - 品牌榜中榜
  • 精通GTA5高级游戏增强:YimMenu架构深度解析与实战配置
  • 原神与崩坏:星穹铁道帧率解锁完整指南:如何轻松突破60帧限制
  • 【Sora 2时尚设计视频实战指南】:零基础7天生成高商业价值AI时装秀视频
  • Sora 2视频放大效果翻车率高达63%?资深CV架构师紧急发布「增强可信度评估协议v1.2」
  • ZLToolKit 源码分析(二):线程同步原语 semaphore 与 onceToken
  • 【Agent智能体15 | 工具使用-现代的LLM请求调用工具的语法】
  • 郑州市 高新区 厨卫改造翻新上门施工|维小达厨房改造、卫生间翻新、厨卫防水重做、下水管道改造一站式施工服务 - 维小达科技
  • 2026 广州黄金回收避坑,五家口碑好店,收的顶专业合规排名第一 - 奢侈品回收测评
  • 2026最新济南短视频运营平台排行:5家机构实力实测对比 - 奔跑123
  • 如何掌控你的惠普OMEN游戏本:OmenSuperHub完全使用指南
  • 2026年薪酬设计:这3个公平性原则让团队心服口服
  • 083、医学影像 CT/MRI 窗宽窗位应用不当?DICOM 解析、HU 值映射与多窗显示方案
  • 用Python和Tensorly复现经典PARAFAC论文:从荧光光谱数据到三维张量分解实战
  • 2026 年论文降 AI 工具硬核横评:16 款实测谁在保命谁在毁稿
  • 山东采暖炉品牌排行:实测性能与服务维度客观对比 - 奔跑123
  • [开源] 科室二次分配公平感模拟器:用博弈论算出护士长敢拍板的奖金方案,让夜班、年资、技术难度全进模型
  • NCMconverter:如何轻松解锁网易云音乐NCM格式音频文件
  • 零基础速存!最新 Kali Linux 全套详细教程,从下载安装到上手使用完整指南
  • 纸电路入门:用导电胶带和纽扣电池点亮创意世界