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 的扩展将被替换。

bash 复制代码
# 示例

$ 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

相关推荐
柏木乃一28 分钟前
Linux初步认识与指令与权限
linux·运维·服务器·shell·权限
Joemt35 分钟前
ubuntu源码编译安装cmake高版本、pybind11安装、crow使用
linux·运维·ubuntu
huohuopro1 小时前
在linux(ubuntu)服务器上安装NTQQ并使用
linux·ubuntu
Jooolin1 小时前
Ubuntu?Centos?还是 redhat?Linux 系统选哪个?
linux·ubuntu·ai编程
Sadsvit1 小时前
Linux 进程管理与计划任务
linux·服务器·网络
bigcarp2 小时前
linux + 宝塔面板 部署 django网站 启动方式:uwsgi 和gunicorn如何选择 ?
linux·运维·django
爱凤的小光2 小时前
图漾相机-ROS1_SDK_ubuntu 4.X.X版本编译
linux·数码相机·ubuntu
六点半8883 小时前
【Linux】vim—基操
linux·vim·excel
CCF_NOI.4 小时前
从底层架构到多元场景:计算机构成与应用的深度剖析
大数据·linux·运维·服务器·计算机