尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
《构建基本的Shell脚本:变量、数学运算与退出状态码详解》
Shell 脚本基础知识体系框架一、多个命令的组合执行· 顺序执行使用分号 ; 将多个命令放在同一行依次执行不管前一条是否成功。示例date ; who· 管道传递使用竖线 |将前一个命令的标准输出作为后一个命令的标准输入只显示最终结果。示例date | who此例仅演示管道用法二、创建与执行 Shell 脚本文件创建脚本· 使用文本编辑器如 vim创建 .sh 文件。· 文件第一行必须指定解释器#!/bin/bash#! 告诉系统使用哪个 shell 程序来运行脚本执行脚本的两种方法· 方法一调用 bash 解释器执行无需可执行权限。命令bash test.sh· 方法二使用绝对或相对路径直接执行需先赋予可执行权限。命令/home/zhang/test.sh 或 ./test.sh赋予权限chmod x test.sh三、echo 命令 – 显示文本消息· 输出普通文本自动换行echo “文本内容”· 不换行输出与后续命令输出同行echo -n “文本内容”四、变量环境变量系统预定义· 引用方式$变量名例如HOME、HOME、HOME、PATH· 若要输出美元符加变量名字面量不解析在 $ 前加反斜杠 \例如 $HOME用户自定义变量局部变量· 命名规则由字母、数字、下划线组成长度不超过 20 个字符区分大小写。· 赋值语法变量名值等号两侧不能有空格· 作用域仅在当前脚本内有效退出脚本后命令行无法调用。命令替换将命令输出赋给变量· 方法一反引号 命令例如 current_datedate %y%m%d· 方法二(命令)例如currentdate(命令)例如 current_date(命令)例如currentd​ate(date %y%m%d)· 常用场景用 date 生成唯一文件名用 wc -l 统计行数。五、数学运算整数运算· 使用 expr 命令格式expr 操作数1 运算符 操作数2注意运算符与数字之间必须有空格特殊字符*、(、)需用反斜杠 \ 转义。支持操作符 - * / %· 使用 $[ 表达式 ] 或((表达式))格式(( 表达式 )) 格式((表达式))格式[ 表达式 ] 或((表达式))优点无需空格无需转义可直接使用变量。示例result(( 表达式 )) 优点无需空格无需转义可直接使用变量。 示例result((表达式))优点无需空格无需转义可直接使用变量。示例result[ 100 * (50 - 45) ]浮点运算使用 bc 计算器· 在命令行直接输入 bc 进入交互模式用 scalen 设置小数位数输入 quit 退出。· 在脚本中使用 bc 的格式variable(echooptions;expression∣bc)多个选项用分号;分开例如variable(echo options; expression | bc) 多个选项用分号 ; 分开例如variable(echooptions;expression∣bc)多个选项用分号;分开例如variable(echo “scale4; 100/3” | bc)· 注意bash 原生数学运算仅支持整数浮点必须用 bc。六、退出脚本与退出状态码· 每个命令执行完毕后都会返回一个 0~255 的整数值作为退出状态码0 通常表示成功。· 使用 $? 获取上一个命令的退出状态码。· 在脚本中使用 exit 命令可以主动指定退出状态码例如exit 5· 脚本默认以最后一个命令的退出状态码作为整个脚本的退出码。七、常用命令及参数速查表date - 显示或设置日期时间常用参数 %y%m%d两位年、月、日who - 查看当前登录用户无常用参数wc - 统计文件行数、词数、字节数常用参数 -l仅统计行数chmod - 修改文件权限常用参数 x添加执行权限echo - 输出文本常用参数 -n不换行expr - 整数运算注意转义和空格bc - 浮点运算常用 scalen 设置小数位数exit - 退出脚本并返回状态码后跟数字0~255八、知识逻辑脉络整体框架创建脚本文件#!/bin/bash 命令序列↓执行脚本bash 或 chmod x 后直接运行↓脚本内部命令├── echo 输出提示信息├── 变量环境变量、自定义变量、命令替换结果├── 数学运算整数用 expr / $[] /(())浮点用bc└──退出状态码(())浮点用 bc └── 退出状态码(())浮点用bc└──退出状态码? 获取exit 指定返回值Xshell实操截图前置准备创建脚本模块1多命令执行分号;、管道|1.1 分号分隔多命令同行执行1.2 管道符传递命令输出模块2创建、执行shell脚本#!/bin/bash、bash执行、./路径执行、chmod赋权2.1 创建基础脚本 test.shvim写入一键生成文件2.2 方式1bash直接运行脚本无需执行权限2.3 方式2直接路径执行先赋可执行权限模块3echo输出、系统环境变量、自定义变量、命令替换 反引号 / $()3.1 环境变量演示脚本 var_test.sh3.2 运行变量脚本模块4wc统计文件行数、词数、字节数模块5数学运算 expr / $[] / $(()) / bc浮点运算5.1 expr整数运算注意空格、*转义5.2 $[] 整数运算脚本 math1.sh5.3 运行整数运算脚本5.4 bc浮点计算脚本内管道调用bc5.5 运行bc浮点脚本模块6退出状态码 $?、exit 指定返回码6.1 退出码脚本 exit_test.sh6.2 执行并查看退出状态码
RELATED

相关推荐

锂离子电池主动均衡方案:BQ25887与PIC18F4585应用

锂离子电池主动均衡方案:BQ25887与PIC18F4585应用

1. 项目背景与核心需求在锂离子电池组应用中,电池单元之间的电压不平衡是一个常见但棘手的问题。当多个电池串联使用时,由于制造工艺差异、温度分布不均或老化程度不同,各单体电池的充电状态会出现偏差。这种不平衡如果长期存在,轻…

📅 2026/10/19 20:04:16
Windows Cleaner技术架构解析:基于Python的现代化系统优化工具实现

Windows Cleaner技术架构解析:基于Python的现代化系统优化工具实现

Windows Cleaner技术架构解析:基于Python的现代化系统优化工具实现 【免费下载链接】WindowsCleaner Windows Cleaner——专治C盘爆红及各种不服! 项目地址: https://gitcode.com/gh_mirrors/wi/WindowsCleaner Windows Cleaner是一款基于Python和…

📅 2026/10/7 5:11:29
MBA论文开题报告选题依据

MBA论文开题报告选题依据

MBA论文开题报告选题依据深夜,你对着电脑屏幕,第N次打开那个名为“MBA论文选题”的空白文档。导师那句“选题依据不充分,回去再想想”还在耳边回响。你翻遍了知网,看文献看到想吐,感觉每个方向都有人研究过&#xff0c…

📅 2026/10/3 21:21:21
MORE NEWS

更多资讯

📰

Replit Solutions Partner:嵌入式开发环境能力复用指南

1. 这不是又一个“挂名合作”:Replit Solutions Partner Program 的真实定位与行业信号最近在几个开发者社区里,看到不少人在讨论 Replit 推出的 Solutions Partner Program。有人扫了一眼新闻稿就下结论:“不就是拉代理卖账号?”…

📰

Grok bot 0.70.2:轻量级任务调度代理的工程化升级

1. Grok bot 0.70.2 并非“AI模型更新”,而是一次面向终端用户的轻量级工具链迭代 你点开某技术社区首页,看到标题“Grok bot 0.70.2 更新发布”,第一反应可能是:又一个大模型版本号跳升?是不是参数量翻倍了&#xff1…

📰

LSO+K-means+Transformer+GRU:轴承故障诊断混合模型实战

开头部分要先讲清楚这套组合的来龙去脉,把“为什么是LSOK-meansTransformerGRU”这个大问题抛出来,然后落到能干什么、适合谁。狮群优化算法LSO与K-means、Transformer、GRU四个词放进同一个故障诊断框架里,乍一看像硬凑,实际上是…

📰

Kylon:AI编程协作协议层设计与双模型协同实践

1. 项目概述:这不是一个“插件”,而是一套协作协议层的重新设计“Kylon 让 Claude Code 与 Codex 多人协作”——看到这个标题,我第一反应不是去查它是不是某个新出的 VS Code 扩展,而是立刻在脑子里画出了三道分界线:…

📰

视觉-动作指令微调:提升机器人学习泛化性的关键

做机器人学习这块的朋友应该都有一种共同的体感:视觉语言模型(VLM)越来越强,但要把它真正“接”到机械臂上,总觉得隔着一层东西。最近我花了一晚上认真读了这篇标题很长的论文《LLARVA: Vision-Action Instruction Tun…

📰

机器学习必懂的统计量:均值方差协方差与Batch Normalization

机器学习入门最容易被忽略,但又最值得先搞明白的一块,就是统计量。算法框架可以现成调用,模型效果不好时手里却没有排查工具,根本原因就是对这些底层概念理解得模棱两可。均值、方差、协方差、相关系数、标准化,一直到…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬