news 2026/2/27 15:25:00

Shell脚本中变量默认值赋值总结

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Shell脚本中变量默认值赋值总结

1.基本默认值语法

1.1 使用${var:-default}- 临时默认值

# 如果变量未设置或为空,使用默认值(不修改变量) username="${USERNAME:-guest}" echo "Hello, ${USERNAME:-guest}" # 变量本身值不变 echo "USERNAME is: $USERNAME" # 可能仍为空 # 实际应用 port="${PORT:-8080}" log_level="${LOG_LEVEL:-info}" timeout="${TIMEOUT:-30}"

1.2 使用${var:=default}- 永久默认值

# 如果变量未设置或为空,设置并使用默认值 : ${DATABASE_HOST:=localhost} # 冒号(:)是空命令 echo "Connecting to $DATABASE_HOST" # 简洁写法 : ${API_URL:="https://api.example.com"} : ${MAX_RETRIES:=3}

2.条件判断式默认值

2.1 未设置 vs 空值的区别

# 带冒号(:): 检查未设置或为空 echo "${var1:-default}" # var1未设置或为空时返回"default" # 不带冒号: 仅检查未设置 unset var2 var3="" echo "${var2-default}" # 返回"default" (未设置) echo "${var3-default}" # 返回"" (已设置为空)

2.2 完整语法对照表

语法变量未设置变量为空变量非空是否修改变量
${var-value}返回value返回$var返回$var
${var:-value}返回value返回value返回$var
${var=value}设置value返回$var返回$var是(仅未设置时)
${var:=value}设置value设置value返回$var是(未设置或空时)
${var?error}输出错误返回$var返回$var
${var:?error}输出错误输出错误返回$var
${var+value}返回空返回value返回value
${var:+value}返回空返回空返回value
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/2/25 15:27:37

YashanDB数据库的监控及维护策略与技巧

YashanDB 是一个相对较新的数据库系统,它的监控和维护策略与其他数据库管理系统有些类似,但也有其独特的特点。以下是一些监控及维护YashanDB的策略与技巧:监控策略1. 性能监控:- 查询性能:监控慢查询,分析…

作者头像 李华
网站建设 2026/2/24 16:05:04

YashanDB数据库的跨平台兼容性研究

YashanDB是一种新兴的数据库系统,其设计目标是提供高性能和高可用性,同时实现跨平台兼容性。以下是关于YashanDB跨平台兼容性的研究方向和关键点: 1. 数据库架构 - 模块化设计:YashanDB的核心组件采用模块化架构设计&#xff0c…

作者头像 李华
网站建设 2026/2/26 2:09:06

云服务器系统优化:释放算力潜能的关键举措

云服务器的性能不仅取决于硬件配置,更离不开系统层面的优化。在硬件配置日益同质化的今天,系统优化已成为云服务厂商提升核心竞争力的关键抓手。云服务器系统优化是一项贯穿硬件、操作系统、虚拟化层、应用层的全链路工作,通过对各层的协同优…

作者头像 李华
网站建设 2026/2/25 4:08:17

鸿蒙PC UI控件库 - Label 基础标签详解

视频演示地址: https://www.bilibili.com/video/BV1jomdBBE4H/ 📋 目录 概述特性快速开始API 参考使用示例主题配置最佳实践常见问题总结 概述 Label 是控件库中的基础标签组件,支持多种尺寸、颜色、图标等功能,适用于状态标…

作者头像 李华
网站建设 2026/2/27 9:21:36

分享一个vscode的todo插件(todo Tree 包含使用

TodoTree插件是一款高效的任务管理工具,用户可通过插件商店下载安装。该插件以树状结构展示文件列表,支持使用Ctrl/快捷键快速添加注释,输入"TODO"即可标记待办事项。安装后能直观查看和管理代码中的任务标记,提升开发效…

作者头像 李华
网站建设 2026/2/23 17:37:36

踩坑记:DBeaver连接GBase 8S时“编码转换失败”的终极解决

本文由真实问题排查过程整理,适用于使用 DBeaver 连接 GBase 8s 遇到 java.sql.SQLException: 数据库地点信息不匹配 的开发者。问题现象 在 DBeaver 中使用官方 JDBC 驱动连接 image_analysis_db 时,只要 SQL 中包含中文,例如: I…

作者头像 李华