Shell 中的冒号:看似无用,实则暗藏诸多奇妙用途!

发布时间:2026/7/26 18:14:50

Shell 中的冒号:看似无用,实则暗藏诸多奇妙用途!
【目录】遥远之地的故事、检查必需参数参数扩展与 :? 的故事、另一个冒号、更多冒号的奇妙用途、冒号总结、常见问题解答为什么需要使用空命令没有冒号参数扩展不也能进行吗既然可以用 VAR${VAR:-default - value}为什么还要使用空命令【遥远之地的故事】曾经一杯咖啡凉透旁边还有杯刚煮好、烫得没法喝的咖啡。打开四个终端窗口其中三个一小时前就该关掉不想再写 Shell 脚本一个冒号拯救了夜晚。注意想立刻大开眼界看看更多冒号的奇妙用途。【检查必需参数】写脚本接收参数有些是必需的可用 if 语句判断也可用 : ${1:?missing argument, aborting.} 一行替代。用有实际意义的变量名错误信息会包含变量名。【参数扩展与 :? 的故事】代码中一部分用了参数扩展${name:?diagnostic} 语法会检查 $name 是否未设置或为空是则输出错误信息到 _stderr_ 并以非零状态退出 Shell变量已设置则等同于 $name。【另一个冒号】: 是 [空命令](https://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html#tag_18_16)只计算参数值然后丢弃结果本身不做其他操作。它历史悠久可追溯到 1971 年的 Thompson shell当时既可以作为 [标签](https://www.in - ulm.de/~mascheck/bourne/PWB/goto.1.html)也是 Unix 最早的注释标记就像黑暗中深情凝视你的双眼。【更多冒号的奇妙用途】展示了冒号在设置默认值、清空文件、检查文件读写权限、trap 命令、检查变量等方面的用法。【冒号总结】喜欢少敲代码追求高效的话[空命令](https://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html#tag_18_16) 和 [参数扩展](https://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html#tag_18_06_02) 值得在咖啡变凉前研究。给出示例代码并提示可在本地安全运行。【常见问题解答】1. 为什么需要使用空命令没有冒号参数扩展不也能进行吗不使用空命令Shell 会把扩展后的字符串当作命令执行使用空命令结果会被丢弃但表达式仍会被计算。2. 既然可以用 VAR${VAR:-default - value}为什么还要使用空命令这是个人偏好问题使用冒号能把可能出现拼写错误的地方从两处减少到一处。

相关新闻

GPUPixel终极指南:高性能跨平台GPU图像处理引擎技术解析

GPUPixel终极指南:高性能跨平台GPU图像处理引擎技术解析

2026/7/26 18:14:50

GPUPixel终极指南:高性能跨平台GPU图像处理引擎技术解析 【免费下载链接】gpupixel Real-time image filter engine based on GPU 项目地址: https://gitcode.com/gh_mirrors/gp/gpupixel GPUPixel是一款基于GPU加速的实时图像滤镜引擎,为开发者提…

三步解锁Wand专业版:免费获得无限游戏修改权限

三步解锁Wand专业版:免费获得无限游戏修改权限

2026/7/26 18:14:50

三步解锁Wand专业版:免费获得无限游戏修改权限 【免费下载链接】Wand-Enhancer Advanced UX and interoperability extension for Wand (WeMod) app 项目地址: https://gitcode.com/GitHub_Trending/we/Wand-Enhancer 还在为Wand(原WeMod&#xf…

Sniffles2:基因组结构变异检测的终极解决方案是什么?

Sniffles2:基因组结构变异检测的终极解决方案是什么?

2026/7/26 18:14:50

Sniffles2:基因组结构变异检测的终极解决方案是什么? 【免费下载链接】Sniffles Structural variation caller using third generation sequencing 项目地址: https://gitcode.com/gh_mirrors/sn/Sniffles 在基因组学研究的广阔领域中&#xff0c…

【Python毕业设计】基于 Python Web 的个性化音乐推荐与社交分享平台设计 (源码+文档+远程调试,全bao定制等)

【Python毕业设计】基于 Python Web 的个性化音乐推荐与社交分享平台设计 (源码+文档+远程调试,全bao定制等)

2026/7/26 19:14:53

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

【Python毕业设计】基于 Python 视觉算法的人脸检测识别系统 图像预处理结合 OpenCV 的人脸识别系统设计(源码+文档+远程调试,全bao定制等)

【Python毕业设计】基于 Python 视觉算法的人脸检测识别系统 图像预处理结合 OpenCV 的人脸识别系统设计(源码+文档+远程调试,全bao定制等)

2026/7/26 19:14:53

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

制造业IT老兵用WorkBuddy扒了自己CSDN后台:3个反直觉的数据真相(附离线H5看板源码)

制造业IT老兵用WorkBuddy扒了自己CSDN后台:3个反直觉的数据真相(附离线H5看板源码)

2026/7/26 19:14:53

🏭导航收藏不迷路—>制造业数据与AI践行者老蒋的技术博客全系列文章汇总(持续更新) 📌 发布信息 专栏WorkBuddy工作场景应用实践 #01系列认知破冰发布日期2026-07-26标签WorkBuddy CSDN数据分析 AI辅助编程 IT老兵实战 数据…

如何用bark-voice-cloning-HuBERT-quantizer实现高质量语音克隆?新手入门教程

如何用bark-voice-cloning-HuBERT-quantizer实现高质量语音克隆?新手入门教程

2026/7/26 19:14:53

如何用bark-voice-cloning-HuBERT-quantizer实现高质量语音克隆?新手入门教程 【免费下载链接】bark-voice-cloning-HuBERT-quantizer The code for the bark-voicecloning model. Training and inference. 项目地址: https://gitcode.com/gh_mirrors/ba/bark-voi…

为什么你的 Agent Demo 敢跑,却不敢进生产?权限隔离才是小团队的最难关卡

为什么你的 Agent Demo 敢跑,却不敢进生产?权限隔离才是小团队的最难关卡

2026/7/26 19:14:53

聊《一个Java项目改成 AI 流程后,最难的部分完全变了》之前,先说一句实在的:别急着背概念,先看它在真实项目里到底解决什么问题。 摘要 做 Java 后端出身,转大模型应用开发时,最大的错觉就是以为“搞定 P…

jmeter While控制器

jmeter While控制器

2026/7/26 19:04:52

一种常见的循环控制语句,用于重复执行一段代码块,直到指定的条件不再满足。 参数: 空LASTJMeter变量、函数、属性或任意其他可用表达式 (jmeter提供的方法)。判断变量值count_num小于等于20,推荐简单的几…

[具身智能-649]:个人电脑搭建 RTSP 服务完整方案(Windows / Ubuntu 双平台,适配 RDK X5 rtsp2display 调试)

[具身智能-649]:个人电脑搭建 RTSP 服务完整方案(Windows / Ubuntu 双平台,适配 RDK X5 rtsp2display 调试)

2026/7/26 0:04:02

目标:电脑作为RTSP 服务端,循环推送 H264/H265 视频流; RDK X5 通过 rtsp2display 拉流预览,完全不需要在开发板编译 live555。 提供两套成熟方案: ✅ 方案 A:FFmpeg(最简单,优先推…

PDF合并与动态水印的工程化方案:2026国内免费工具实测对比

PDF合并与动态水印的工程化方案:2026国内免费工具实测对比

2026/7/26 0:04:02

一、背景与测试方案 在实际项目交付中,PDF文件合并与版权保护水印的叠加是一个高频但容易被低估的技术需求。典型的处理链路涉及:多源PDF的文件流合并、页面级水印渲染(含透明度混合与图层叠加)、输出文件体积控制。看似简单的操作…

PDF拆分压完图糊了?2026国内免费实测,档案员都在用的组合方案

PDF拆分压完图糊了?2026国内免费实测,档案员都在用的组合方案

2026/7/26 0:04:02

说实话,提到PDF拆分再压缩,我真是被折腾得够呛。 上个月公司年度合同归档,一份300多页的PDF总合同,需要按年份拆分成三个独立文件,再分别压缩到10MB以内方便邮件发送各部门确认。我心想这还不简单?先找个海…

[具身智能-649]:个人电脑搭建 RTSP 服务完整方案(Windows / Ubuntu 双平台,适配 RDK X5 rtsp2display 调试)

[具身智能-649]:个人电脑搭建 RTSP 服务完整方案(Windows / Ubuntu 双平台,适配 RDK X5 rtsp2display 调试)

2026/7/26 0:04:02

目标:电脑作为RTSP 服务端,循环推送 H264/H265 视频流; RDK X5 通过 rtsp2display 拉流预览,完全不需要在开发板编译 live555。 提供两套成熟方案: ✅ 方案 A:FFmpeg(最简单,优先推…

PDF合并与动态水印的工程化方案:2026国内免费工具实测对比

PDF合并与动态水印的工程化方案:2026国内免费工具实测对比

2026/7/26 0:04:02

一、背景与测试方案 在实际项目交付中,PDF文件合并与版权保护水印的叠加是一个高频但容易被低估的技术需求。典型的处理链路涉及:多源PDF的文件流合并、页面级水印渲染(含透明度混合与图层叠加)、输出文件体积控制。看似简单的操作…

PDF拆分压完图糊了?2026国内免费实测,档案员都在用的组合方案

PDF拆分压完图糊了?2026国内免费实测,档案员都在用的组合方案

2026/7/26 0:04:02

说实话,提到PDF拆分再压缩,我真是被折腾得够呛。 上个月公司年度合同归档,一份300多页的PDF总合同,需要按年份拆分成三个独立文件,再分别压缩到10MB以内方便邮件发送各部门确认。我心想这还不简单?先找个海…