bash中(冒号破折号)的用法 —— 筑梦之路
${PUBLIC_INTERFACE:-eth0}
:- 的用途是什么?
含义:如果 $PUBLIC_INTERFACE 存在且不是 null,则返回其值,否则返回 "eth0"。
${parameter:-word} 使用默认值。如果 parameter 未设置或为 null,则 word 的扩展将被替换。否则,parameter 的值将被替换。
${parameter:=word} 分配默认值。如果 parameter 未设置或为 null,则 word 的扩展被分配给 parameter。然后 parameter 的值被替换。位置参数和特殊参数不能以这种方式分配。
${parameter:?word} 如果为 null 或未设置,则显示错误。如果 parameter 为 null 或未设置,则 word 的扩展(如果 word 不存在,则为此显示一条消息)将写入标准错误,并且 shell(如果它不是交互式的)将退出。否则,parameter 的值将被替换。
${parameter:+word} 使用替代值。如果 parameter 为 null 或未设置,则不替换任何内容,否则 word 的扩展将被替换。
# 示例$ v=abc
$ echo ${v-unset}
abc
$ echo ${v1-unset}
unset$ var2=
$ : ${var2:=default}
$ echo $var2
default$ var3=
$ : ${var3:?var is unset or null}
bash: var3: var is unset or null$ var4=100
$ echo ${var4:+var is set and not null}
var is set and not null
参考资料:
bash(1) - Linux manual page
stackoverflow question 10390406
相关文章:
bash中(冒号破折号)的用法 —— 筑梦之路
${PUBLIC_INTERFACE:-eth0} :- 的用途是什么? 含义:如果 $PUBLIC_INTERFACE 存在且不是 null,则返回其值,否则返回 "eth0"。 ${parameter:-word} 使用默认值。如果 parameter 未设置或为 null,则 word 的扩…...
LeetCode150道面试经典题--同构字符串(简单)
1.题目 给定两个字符串 s 和 t ,判断它们是否是同构的。如果 s 中的字符可以按某种映射关系替换得到 t ,那么这两个字符串是同构的。每个出现的字符都应当映射到另一个字符,同时不改变字符的顺序。不同字符不能映射到同一个字符上,…...
Redis - 数据类型映射底层结构
简介 从数据类型上体现就是,同一个数据类型,在不同的情况下会使用不同的编码类型,底层所使用的的数据结构也不相同。 字符串对象 字符串对象的编码可以是 int、raw 和 embstr 三者之一。 embstr 编码是专门用于保存简短字符串的一种优化编…...
MySQL数据库表的增删查改 - 进阶
一,数据库约束 1.1 约束对象 not null - 该列不能为空unique - 保证该列的每一行都不一样default - 规定没有给列赋值时的默认值(自定义)primary key - not null 和 unique 的结合,会给该列添加一个索引࿰…...
8086汇编语言工作环境 百度网盘下载
链接:https://pan.baidu.com/s/1-1K7gX859xejaUK70OTgtw?pwdbfa5 提取码:bfa5 为了方便下载,找了很多资料,也是从其他人那边分享过来的,也方便其他人 文件内容:...
ES6 解构
解构的语法 … {} 解构的语法中,...(展开运算符)和 {}(对象字面量)扮演着不同的角色。 ...(展开运算符): 在解构中,... 被用作展开运算符,用于将数组或对象中…...
React三个状态时触发的相应钩子
01.初始化状态。 这个阶段由render()函数触发; 1.constructor(); 2.componentWillMount(); 在17版本以后改为UNSAFE_componentWillMount() reason:react为组件异步渲染做准备; 3.render(); 4.componentDidMount(); 这…...
阿里云服务器部署Drupal网站教程基于CentOS系统
阿里云百科分享如何在CentOS 7操作系统的ECS实例上搭建Drupal电子商务网站。Drupal是使用PHP语言编写的开源内容管理框架(CMF),它由内容管理系统(CMS)和PHP开发框架(Framework)共同构成。它用于…...
【广州华锐视点】VR燃气轮机故障判断模拟演练系统
VR燃气轮机故障判断模拟演练系统由广州华锐视点开发,是一款基于虚拟现实技术的教育工具,旨在为学生提供一个安全、高效、互动的学习环境,帮助他们更好地掌握燃气轮机的故障诊断技能。 这款VR实训软件能够模拟真实的燃气轮机故障诊断场景&…...
第01天 什么是CSRF ?
✅作者简介:大家好,我是Leo,热爱Java后端开发者,一个想要与大家共同进步的男人😉😉 🍎个人主页:Leo的博客 💞当前专栏: 每天一个知识点 ✨特色专栏࿱…...
uniapp 自定义手机顶部状态栏不生效问题
想要的效果想淘宝一样,底色覆盖到手机顶部,找了两天都没找到原因,过程很艰苦,直接上结果吧 项目是后来接手的,最终原因出在这, "immersed" : false>设置为 true 就可以了,沉浸式样…...
C++语法中bitset位图介绍及模拟实现
一、位图的引入 先来看下边一道面试题: 给40亿个不重复的无符号整数,没排过序。给一个无符号整数,如何快速判断一个数是否在这40亿个数中。 经过我们之前的学习,我们可能会有以下的思路: 对这些数进行排序ÿ…...
Debezium系列之:深入理解消息过滤,实现过滤数据库删除事件,只采集数据库新增和更新事件
Debezium系列之:深入理解消息过滤,实现过滤数据库删除事件,只采集数据库新增和更新事件 一、需求背景二、相关技术三、部署相关jar包四、参数详解五、总结一、需求背景 使用Debezium采集数据库数据,现在部分表只想采集新增数据和更新数据二、相关技术 实现这个需求的技术可…...
Substack 如何在去中心化内容创作领域掀起波澜
面对数字内容广告化的困境,Substack回归做内容的初心,通过产品和平台双轮驱动,重塑一个去中心化的多元文化内容聚集地,实现了增长突破。其核心策略在于先使用简洁的创作工具赋能内容生产,进而通过平台的互动机制促进用…...
【MFC】07.MFC六大机制:消息映射-笔记
本专栏上两篇文章分别介绍了【MFC】05.MFC第一大机制:程序启动机制和【MFC】06.MFC第二大机制:窗口创建机制,这篇文章来为大家介绍MFC的第三大机制:消息映射 typfd要实现消息映射,必须满足的三个条件: 类必…...
python操作数据库
python操作数据库 首先安装数据插件 pip install pymysqlfrom pymysql import Connection # 引入数据库第三方包# 创建链接 conn Connection(host"localhost", # 主机名ipport3306,user"root",# 用户名password"123456" # 密码 )print(con…...
【C语言】小游戏-三字棋
大家好,我是深鱼~ 目录 一、游戏介绍 二、文件分装 三、代码实现步骤 1.制作简易游戏菜单 2.初始化棋盘 3.打印棋盘 4.玩家下棋 5.电脑随机下棋 6.判断输赢 7.判断棋盘是否满了 四、完整代码 game.h(相关函数的声明,整个代码要引用的头文件以及宏…...
多线程与并发编程面试题总结
多线程与并发编程 多线程 线程和进程的区别? 从操作系统层面上来讲:进程(process)在计算机里有单独的地址空间,而线程只有单独的堆栈和局部内存空间,线程之间是共享地址空间的,正是由于这个特性,对于同…...
在多页面应用和单页面应用中(例如vue)怎么提高seo搜索引擎优化
那么 我们要先知道 搜索引擎是怎么工作的? 搜索引擎是通过一系列步骤来工作的,以下是其基本原理: 1、网络爬虫:搜索引擎使用网络爬虫(也称为蜘蛛、机器人)来从互联网上抓取网页。网络爬虫按照预定义的规则…...
Dubbo 2.7.0 CompletableFuture 异步
了解Java中Future演进历史的同学应该知道,Dubbo 2.6.x及之前版本中使用的Future是在java 5中引入的,所以存在以上一些功能设计上的问题,而在java 8中引入的CompletableFuture进一步丰富了Future接口,很好的解决了这些问题。 Dubb…...
别再只当下载器了!手把手教你用Keil+STLink/JLink玩转STM32在线调试与变量监视
从烧录到调试:解锁STM32开发中仿真器的完整潜力 当你第一次拿到STM32开发板时,可能只把STLink或JLink当作一个简单的程序下载工具。但事实上,这些仿真器隐藏着强大的调试能力,能够彻底改变你的开发体验。想象一下,你可…...
Windows 11右键菜单革命:如何用ContextMenuForWindows11打造你的专属工作流
Windows 11右键菜单革命:如何用ContextMenuForWindows11打造你的专属工作流 【免费下载链接】ContextMenuForWindows11 Add Custom Context Menu For Windows11 项目地址: https://gitcode.com/gh_mirrors/co/ContextMenuForWindows11 还在为Windows 11右键菜…...
别再混淆了!一文搞懂赛灵思FPGA中ODDR/IDDR的三种工作模式(附时序图对比)
赛灵思FPGA中ODDR/IDDR工作模式深度解析与实战指南 在数字电路设计中,双倍数据速率(DDR)接口技术因其高效的数据传输能力而广受欢迎。赛灵思FPGA中的ODDR(输出双倍数据速率)和IDDR(输入双倍数据速率)原语是实现DDR接口的关键组件,但许多开发者对其三种工…...
别再只会用findpeaks找峰值了!MATLAB信号处理中这5个隐藏参数才是关键
别再只会用findpeaks找峰值了!MATLAB信号处理中这5个隐藏参数才是关键 当你在处理心电图数据时,是否曾被那些由肌肉噪声引起的假峰值困扰?或者在分析光谱数据时,苦于无法准确分离那些重叠的峰?这些问题往往不是简单的f…...
别再死记硬背for和while了!用Python做个温度转换表,5分钟搞懂循环与列表的实战区别
温度转换实战:用Python解锁循环与列表的核心差异 温度转换这个看似简单的任务,却蕴含着编程中最基础也最重要的两个概念——循环与列表。很多初学者在刚接触Python时,常常陷入死记硬背for和while循环语法的困境,而忽略了理解它们在…...
给天文新手的避坑指南:手算M13方位角时,我踩过的那些‘单位转换’和‘符号’的坑
给天文新手的避坑指南:手算M13方位角时,我踩过的那些‘单位转换’和‘符号’的坑 第一次手动计算天体方位角时,那种既兴奋又忐忑的心情至今难忘。作为天文爱好者,我们总想亲手验证那些看似神秘的公式,但真正动手时才发…...
告别MCU直连U盘的烦恼:用CH376模块为你的Arduino/ESP32项目轻松扩展USB存储
告别MCU直连U盘的烦恼:用CH376模块为你的Arduino/ESP32项目轻松扩展USB存储 你是否遇到过这样的场景:精心设计的Arduino环境监测站运行了一周,采集了上千组温湿度数据,却因为缺乏本地存储功能而被迫丢弃?或是ESP32摄像…...
别再手动种树了!用Forest Pack Pro预设库5分钟搞定3DMAX森林场景
别再手动种树了!用Forest Pack Pro预设库5分钟搞定3DMAX森林场景 当你在3DMAX中手动摆放第100棵树时,是否开始怀疑人生?那些看似简单的森林场景,往往消耗设计师80%的时间在重复劳动上。Forest Pack Pro的预设库功能,彻…...
vue-axios-github源码解析:手把手教你实现401错误自动跳转登录页
vue-axios-github源码解析:手把手教你实现401错误自动跳转登录页 【免费下载链接】vue-axios-github Vue 全家桶 axios 前端实现登录拦截、登出、拦截器等功能 项目地址: https://gitcode.com/gh_mirrors/vu/vue-axios-github vue-axios-github是一个基于Vu…...
