一、前言本次实操围绕Shell脚本入门核心知识点完成命令落地验证覆盖.sh脚本编写、Shell变量用法、wc文本统计、四类数学运算、命令退出状态码五大模块。本文梳理相关概念、各命令参数用法与实操运行结果搭建系统化的Shell入门知识框架所有操作均在Xshell中完整实操并留存运行截图。二、分模块知识点解析与实操演示2.1 Shell脚本.sh文件基础概念理解Shell脚本统一使用 .sh 作为文件后缀本质是批量存储Linux命令的文本文件。借助bash解释器脚本可以自上而下自动批量执行多条指令省去终端手动逐条输入命令的重复操作。脚本首行 #!/bin/bash 被称为shebang声明作用是指定bash作为脚本的解析程序。完整实操流程在终端创建专属工作目录切换至该目录bashmkdir -p ~/zz/sh_script cd ~/zz/sh_script使用vim编辑器新建退出码测试脚本exit_test.sh输入命令 vim exit_test.sh 按下i进入编辑模式写入完整脚本代码bash#!/bin/bash定义变量var赋值5var5echo “The answer is $var”exit $var编辑完成后按下Esc输入 :wq 保存文件并退出vim编辑器。执行脚本命令 bash exit_test.sh 脚本运行完毕后输入 echo $? 读取脚本自定义的退出状态码。实际应用场景常用于服务器定时任务、批量运维操作、重复性工作自动化是Linux运维最基础的自动化工具。2.2 Shell变量与$取值语法概念理解Shell中包含两类变量一是自定义变量由使用者自行定义赋值用于存储临时数据二是系统环境变量由系统预先配置、全局可用例如PATH变量用于指定系统检索可执行程序的目录。符号 $ 是Shell固定的变量取值标识符通过 $变量名 的格式读取变量存储的数据可单独打印也能嵌入字符串拼接输出。实操代码与运行效果bash自定义变量赋值name“shell作业测试”age20使用$读取变量并输出echo “名称name数值name数值name数值age”查看系统环境变量PATHecho $PATH语法硬性规范变量赋值时等号 左右不能添加空格若字符串内容包含空格、特殊符号必须使用双引号包裹完整内容。2.3 wc文本统计命令概念理解wc全称word count专门用于对文本文件进行行数、单词、字符字节的量化统计是日志排查、批量文本统计工作中高频使用的命令核心参数整理如下参数名 核心使用用途-l最常用 统计目标文件包含的文本总行数-w 以空格为分隔统计文件内单词总数-c 统计文件整体字节字符占用数量实操演示创建包含3行测试内容的demo.txt文本分别使用三类参数执行统计命令bash创建测试文本cat demo.txt EOF第一行shell文本第二行测试内容第三行收尾文字EOF统计文件行数wc -l demo.txt统计文件单词数量wc -w demo.txt统计文件字符字节数wc -c demo.txt典型使用场景统计日志文件总行数、批量统计文本条目数量。2.4 Shell四类数学运算工具expr、[]、(( ))、bc概念与适用边界区分exprShell早期整数运算工具运算符左右必须添加空格乘法符号 * 需要使用反斜杠 \ 转义语法繁琐仅老旧脚本中较为常见。$[] 轻量化整数运算写法无需转义特殊符号代码简洁但部分低版本Shell兼容性一般。$(( )) 整数运算兼容性最强全版本Shell均可正常运行是日常整数运算的首选写法。bc唯一支持浮点小数高精度计算的工具搭配 scale数值 可自定义小数保留位数适配小数计算需求expr、[]、(( ))仅支持整数运算。分工具实操代码bash1.expr整数运算expr 10 3expr 10 * 3expr 10 - 3expr 10 / 32.$[]整数运算echo $[103]echo $[10*3]3.$(( ))整数运算echo $((103))echo $((10*3))4.bc浮点小数运算echo “scale2;10/3” | bcecho “3.14*2” | bc选型建议日常整数运算优先使用 $(( )) 涉及小数、高精度数值计算统一选用bc维护老旧脚本时可使用expr。2.5 内置变量$?命令退出状态码概念理解Linux系统为每一条执行完毕的终端命令、Shell脚本自动分配退出状态码状态码存储在系统内置只读变量 $? 中通用判定规则返回值0上一条命令/脚本无报错正常执行完毕返回值≠0程序出现异常例如文件不存在、权限不足、语法错误等故障在Shell脚本中可以使用 exit [自定义数字] 语法手动设定脚本结束后的退出码供上层程序判断脚本运行是否成功本次课件示例手动指定退出码为5。分层实操验证执行正常无报错指令 ls 输入 echo $? 输出结果为0执行访问不存在文件的报错指令 ls notexist.txt 再次输入 echo $? 输出非0异常数字。复用前文编写的exit_test.sh脚本校验手动自定义退出码等于5的运行效果。落地场景Shell脚本分支逻辑判断、定时任务失败告警依靠$?读取上一步任务运行状态。三、整体Shell入门知识框架汇总脚本层后缀为.sh的脚本文件批量封装多条命令依靠bash解释执行实现运维自动化。数据存储层分为自定义变量与系统环境变量存储数据使用 $ 语法完成变量取值引用。文本分析层wc命令通过-l、-w、-c三类参数从行数、单词、字节维度批量统计文本数据。数值计算层整数运算优先选择 $(( )) 小数浮点计算使用bc老旧脚本兼容场景可选用expr。异常判断层通过内置变量$?读取命令退出码exit关键字可手动自定义脚本退出标识实现脚本运行状态监控与故障判定。四、实操踩坑总结使用expr运算时乘法符号未添加转义符 \ 、运算符两侧缺少空格会直接触发语法报错。Shell变量赋值时等号 两侧误输入空格系统会判定为非法指令运行失败。使用bc做除法运算时未配置scale参数小数部分会被直接截断丢失浮点精度。脚本自定义退出码不建议设置128及以上数值该区间为系统预留信号码容易造成状态判定混淆。五、全文小结本次实操完整完成课件全部知识点的Xshell落地操作厘清了不同Shell语法的适用场景与选型边界。简单自动化工作可编写.sh脚本封装指令动态数据存储与读取依托变量实现文本批量统计场景优先使用wc根据整数、浮点计算需求区分运算工具依靠退出状态码完成脚本运行成败监控搭建起一套完整、清晰的Shell基础入门知识体系。