Linux 运维必学(十)| Shell脚本从零入门,全网最清晰核心语法速查
很多新手学Shell脚本,最大的痛点:知识点杂、规则细碎、报错找不到原因、逻辑看不懂。今天把Shell必考、实战必用的全套核心语法,整理成一篇轻量化速查手册。无废话冗余、逻辑由浅入深、自带实操案例,收藏这一篇,搞定80%脚本编写需求。
一、Shell 7大基础语法铁律(必背)
所有脚本报错,80%都是基础规则没吃透!这7条是Shell底层执行逻辑,全局通用。✅空格容错:指令、参数之间多空格、Tab缩进,系统自动忽略
二、脚本两种执行方式(核心区别:进程隔离)
很多人搞不懂 ./、bash、source 的区别,本质是是否新建进程。1、子程序执行(新建进程|日常最常用)
特点:独立进程,不污染当前终端环境,变量仅临时生效。▪️ 绝对路径:/home/test/shell.sh▪️ 相对路径:./shell.sh(需 rx 权限)▪️ 全局执行:脚本放入 ~/bin,直接输入 shell.sh▪️ 解释器执行:bash shell.sh / sh shell.sh(仅需读权限)2、父程序执行(当前进程|配置刷新专用)
指令:source shell.sh 或 . shell.sh特点:不新建进程,直接在当前终端运行,变量/配置全局生效。💡 典型场景:source ~/.bashrc 刷新环境变量
三、脚本传参内置变量(高频考点)
执行脚本时传入的参数,靠内置变量接收,是脚本灵活复用的关键。以命令sh test.sh a b c d 为例:$0 脚本名 | $1 第一个参数 | $2 第二个参数1、核心变量释义
▪️ $1 $2 ...:顺序接收传入参数(10以上参数需加 ${10})▪️ $@:独立参数列表(官方推荐,参数互相独立)2、新手必踩坑:$0 的区别
▪️ source 执行:$0 = 当前bash名称(不显示脚本名)3、shift 参数偏移
示例:shift 2 剔除前2个参数,原$3变为新$1
四、Shell 自定义函数(代码复用神器)
1、基础语法
2、两条硬性规则
2. 函数内同样支持 $1 $2传参,用法和全局参数一致
五、条件判断底层:test 与 [] 语法
Shell所有的判断、分支、循环,底层都依赖 test 检测,[] 是简化写法。1、文件类型判断
-e 文件是否存在 | -f 是否为普通文件 | -d 是否为目录-L 是否软链接 | -b/-c 设备文件 | -S/-p 套接字/管道文件2、文件权限判断
-u/-g 特殊权限 | -k 粘滞位 | -s 文件非空3、文件时间对比
-nt 文件更新 | -ot 文件更旧 | -ef 同一硬链接(同inode)4、整数数值对比
-eq 相等 | -ne 不等 | -gt 大于 | -lt 小于5、字符串判断
6、多条件逻辑
-a 与(同时成立) | -o 或(任一成立) | ! 非(取反)
六、分支语句:if / case(脚本逻辑核心)
1、if 条件判断(适合区间、复杂判断)
单层判断
双层判断(if-else)
多条件判断(if-elif-else)
2、case 分支匹配(适合固定值精准匹配)
七、三大循环语法(while / until / for)
循环是自动化脚本的核心,分为「不定循环」和「固定循环」。1、不定循环:while(用得最多)
2、不定循环:until
3、固定循环:for
八、脚本调试 + 真假返回规则(排错必备)
1、debug 调试参数
2、Shell 真假特殊规则(极易混淆)
写在最后
这篇文章已经覆盖Shell 入门全部核心语法:基础规则 → 执行方式 → 传参变量 → 函数封装 → 条件判断 → 分支语句 → 循环语法 → 调试排错。整条链路由浅入深、层层递进,无知识点断层,非常适合新手系统学习、老手日常速查、面试突击背诵。建议收藏,写脚本报错、忘语法时,直接翻这一篇就够!