一、前言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. 编写第一个测试脚本创建脚本文件bash运行vim first.sh写入以下内容bash运行#!/bin/bash # 我的第一个Shell脚本 echo 系统信息 echo 当前所在目录$(pwd) echo 当前登录用户$(whoami) ls -l保存退出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行为一致。方式 3source 或。点命令执行特点不需要执行权限在当前 Shell 终端中运行不开启子 Shell。bash运行# 完整写法 source first.sh # 简写写法点 空格 脚本名 . first.sh核心区别演示在脚本中加入切换目录命令bash运行#!/bin/bash cd /opt pwd使用source执行后当前终端会直接切换到 /opt 目录使用bash/./执行终端目录不会变化。适用场景加载环境变量、读取配置文件、临时切换工作目录。方式 4后台后台运行脚本常驻 / 静默执行适用于长时间运行的脚本关闭终端也不中断搭配使用。bash运行# 后台运行日志输出到空静默 bash first.sh /dev/null 21 四、四种执行方式核心对比表表格执行方式是否需要执行权限是否开启子 Shell主要用途bash/sh 脚本名不需要是日常调试、通用执行./脚本名需要chmod x是标准脚本运行、规范上线source / . 脚本名不需要否加载配置、环境变量脚本名 后台执行按需是长时间任务、无人值守五、基础语法补充入门必看1. 简单变量使用bash运行#!/bin/bash # 定义变量等号两边不能有空格 nameShell脚本 # 调用变量加 $ echo 正在学习$name2. 命令嵌套$(命令)把一条命令的执行结果嵌入另一条命令中bash运行echo 当前时间$(date)六、常见报错与避坑1.-bash: ./first.sh: 权限不够原因缺少执行权限 → 解决chmod x first.sh2.脚本路径带中文 / 空格尽量使用纯英文路径Linux 对空格、中文兼容性差。3.Windows 编辑脚本执行报$\r: 未找到命令原因换行符格式错误 → 修复dos2unixfirst.sh4.脚本内cd切换目录不生效原因使用了子 Shell 执行bash/./属于正常现象需要全局切换请用source。七、快速命令汇总bash运行# 1. 赋执行权限 chmod x 脚本名.sh # 2. 常用执行命令 bash 脚本名.sh ./脚本名.sh source 脚本名.sh . 脚本名.sh # 3. 修复Windows换行符 dos2unix 脚本名.sh八、总结脚本首行#!/bin/bash是标准格式不可省略日常学习、调试优先用bash脚本名不用纠结权限正式运行脚本推荐chmod x./脚本名加载配置、环境变量必须使用source执行长时间运行的脚本放到后台执行。
Linux Shell 脚本入门、执行方式与批量压解实战
发布时间:2026/6/1 19:36:04
一、前言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. 编写第一个测试脚本创建脚本文件bash运行vim first.sh写入以下内容bash运行#!/bin/bash # 我的第一个Shell脚本 echo 系统信息 echo 当前所在目录$(pwd) echo 当前登录用户$(whoami) ls -l保存退出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行为一致。方式 3source 或。点命令执行特点不需要执行权限在当前 Shell 终端中运行不开启子 Shell。bash运行# 完整写法 source first.sh # 简写写法点 空格 脚本名 . first.sh核心区别演示在脚本中加入切换目录命令bash运行#!/bin/bash cd /opt pwd使用source执行后当前终端会直接切换到 /opt 目录使用bash/./执行终端目录不会变化。适用场景加载环境变量、读取配置文件、临时切换工作目录。方式 4后台后台运行脚本常驻 / 静默执行适用于长时间运行的脚本关闭终端也不中断搭配使用。bash运行# 后台运行日志输出到空静默 bash first.sh /dev/null 21 四、四种执行方式核心对比表表格执行方式是否需要执行权限是否开启子 Shell主要用途bash/sh 脚本名不需要是日常调试、通用执行./脚本名需要chmod x是标准脚本运行、规范上线source / . 脚本名不需要否加载配置、环境变量脚本名 后台执行按需是长时间任务、无人值守五、基础语法补充入门必看1. 简单变量使用bash运行#!/bin/bash # 定义变量等号两边不能有空格 nameShell脚本 # 调用变量加 $ echo 正在学习$name2. 命令嵌套$(命令)把一条命令的执行结果嵌入另一条命令中bash运行echo 当前时间$(date)六、常见报错与避坑1.-bash: ./first.sh: 权限不够原因缺少执行权限 → 解决chmod x first.sh2.脚本路径带中文 / 空格尽量使用纯英文路径Linux 对空格、中文兼容性差。3.Windows 编辑脚本执行报$\r: 未找到命令原因换行符格式错误 → 修复dos2unixfirst.sh4.脚本内cd切换目录不生效原因使用了子 Shell 执行bash/./属于正常现象需要全局切换请用source。七、快速命令汇总bash运行# 1. 赋执行权限 chmod x 脚本名.sh # 2. 常用执行命令 bash 脚本名.sh ./脚本名.sh source 脚本名.sh . 脚本名.sh # 3. 修复Windows换行符 dos2unix 脚本名.sh八、总结脚本首行#!/bin/bash是标准格式不可省略日常学习、调试优先用bash脚本名不用纠结权限正式运行脚本推荐chmod x./脚本名加载配置、环境变量必须使用source执行长时间运行的脚本放到后台执行。