Shell脚本基础实操指南:脚本编写、变量、运算、状态码与wc命令详解
一、前言Shell脚本是Linux运维、自动化操作的核心工具可将多条终端命令整合至文件中实现批量、顺序自动化执行。本文将从零讲解Shell脚本核心知识点包含脚本编写规范、变量使用、文件统计命令wc、四种数学运算方式、命令退出状态码所有命令均适配Xshell实操附带完整知识框架、实操步骤及结果展示适合零基础入门学习与复盘。二、Shell脚本基础概念与实操2.1 Shell脚本定义Shell脚本是后缀为.sh的文本文件内部可写入多条Linux命令系统会按照从上到下的顺序依次执行文件内所有命令替代手动逐条输入命令大幅提升操作效率。2.2 脚本文件创建与执行流程Xshell实操步骤1创建脚本文件使用vim编辑器创建自定义脚本文件 test.shvim test.sh步骤2脚本头部规范脚本首行必须指定解析器固定写法声明使用bash解析脚本#!/bin/bash步骤3写入多条执行命令示例在脚本中写入简单的文件创建、查看、打印命令实现批量执行#!/bin/bash # 自定义shell脚本批量执行多条命令 echo 开始执行Shell脚本 touch demo.txt # 创建测试文件 echo 测试文本内容 demo.txt # 写入内容 ls -l # 查看目录文件 echo 脚本执行完毕 步骤4赋予脚本执行权限新建的sh文件默认无执行权限需手动授权chmod x test.sh步骤5运行脚本./test.sh实操结果终端会依次执行文件内所有命令自动创建demo.txt文件、打印目录信息实现自动化批量操作。三、Shell变量体系环境变量自定义变量3.1 变量核心概念Shell变量用于存储文本、数字等数据分为系统环境变量和用户自定义变量所有变量统一使用$变量名方式引用。3.2 环境变量系统自带核心概念系统预设的全局变量保存系统配置、路径、用户信息等所有脚本和终端均可直接调用。常用环境变量及用法$USER当前登录用户名$HOME当前用户家目录路径$PWD当前所在目录路径$PATH系统命令搜索路径Xshell实操命令echo 当前用户$USER echo 家目录路径$HOME echo 当前目录$PWD3.3 自定义变量脚本私有定义规则1. 变量名值等号左右不能有空格2. 变量名只能由字母、数字、下划线组成不能以数字开头3. 区分大小写。脚本中变量实操示例修改test.sh加入自定义变量环境变量混用#!/bin/bash # 自定义变量 nameShell脚本学习 num100 # 引用变量 echo 教程名称$name echo 数值变量$num # 引用系统环境变量 echo 当前登录用户$USER执行脚本./test.sh实操结果终端正常打印自定义变量内容与系统用户信息变量引用生效。四、wc文件统计命令详解4.1 命令作用wcWord Count是Linux文件统计命令主要用于统计文件的行数、单词数、字节数、字符数是日志分析、文件统计常用命令。4.2 核心参数用法参数参数作用适用场景-l仅统计文件行数最常用统计日志行数、脚本行数-w仅统计文件单词数空格分隔统计文本内容词汇量-c仅统计文件字节数查看文件基础大小-m仅统计文件字符数精准统计文本字符数量4.3 Xshell实操演示# 1. 查看文件全部统计信息行数、单词数、字节数 wc demo.txt # 2. 仅统计文件行数核心用法 wc -l demo.txt # 3. 统计当前目录文件总数结合管道符 ls | wc -l实操结果说明demo.txt为之前脚本生成的测试文件默认1行内容执行wc -l demo.txt会输出结果1精准统计文件行数。五、Shell四种数学运算方式Shell默认不支持直接数学运算需通过专属语法/命令实现数值计算本文讲解expr、$[]、$(())、bc四种主流方式适配整数、小数运算场景。5.1 expr 命令整数运算语法规则1. 运算符左右必须加空格2. 仅支持整数运算3. 乘法 * 需要转义 \*。实操命令expr 10 5 expr 20 - 8 expr 3 \* 6 expr 18 / 35.2 $[] 语法简洁整数运算语法规则无需空格、无需转义语法简洁仅支持整数运算推荐简单运算使用。实操命令echo $[105] echo $[20*3] echo $[50/2] echo $[15-6]5.3 $(()) 语法高效整数运算语法规则功能与$[]一致兼容性更强支持多复杂整数运算企业常用。实操命令echo $((1020)) echo $((30*5-10)) echo $((100/28))5.4 bc 命令小数精准运算语法规则唯一支持小数运算的方式可通过scale指定保留小数位数默认整数取舍。实操命令# 基础小数运算 echo 3.52.5 | bc # 指定保留2位小数 echo scale2;10/3 | bc echo scale3;7/2 | bc运算场景总结简单整数运算优先$[] / $(())传统兼容脚本使用expr小数、高精度运算必须使用bc六、命令退出状态码 $?6.1 核心概念Shell中每一条命令执行完成后都会自动生成一个退出状态码通过内置变量$?查看用于判断上一条命令是否执行成功。6.2 状态码规则状态码为 0命令执行成功无报错状态码非01-255命令执行失败存在语法/路径/权限错误6.3 Xshell实操演示# 1. 执行正确命令查看成功状态码 ls echo $? # 2. 执行错误命令查看失败状态码 abcd123 echo $?实操结果正确命令后 $? 输出0错误命令后输出非0数字可用于脚本中判断命令执行状态、做异常处理。七、完整知识框架体系总结为方便系统性复盘整理本文所有核心知识点框架明确用途与核心用法7.1 Shell脚本文件格式.sh核心作用批量、顺序执行多条Linux命令实现自动化必备操作首行#!/bin/bash、chmod x授权、./脚本名执行7.2 Shell变量引用方式统一 $变量名环境变量系统全局变量直接调用USER、PWD、HOME自定义变量脚本私有变量名值无空格7.3 wc命令核心用途文件行数、单词、字节统计核心参数-l行数最常用、-w单词数、-c字节数7.4 数学运算expr整数运算需空格、乘法转义$[]简洁整数运算无特殊规则$(())高兼容整数运算支持复杂表达式bc唯一小数运算scale控制精度7.5 退出状态码 $?作用判断上一条命令执行结果判定规则0成功非0失败八、综合实操完整整合脚本整合所有知识点编写一份完整综合脚本实现变量调用、文件统计、数学运算、状态码判断#!/bin/bash # 综合Shell脚本变量运算wc统计状态码 echo 综合实操脚本 # 1. 变量使用 authorShell学习者 echo 当前操作者$USER学习用户$author # 2. 数学运算 num110 num23 echo 整数加法$[$num1$num2] echo 小数除法scale2;$num1/$num2 | bc # 3. wc文件统计 echo 文件行数统计结果 wc -l demo.txt # 4. 查看命令执行状态码 echo 上一条命令状态码$? echo 脚本执行结束 授权执行chmod x test.sh ./test.sh可一次性验证所有知识点功能。