Bash 参数替换中 :- 和 := 有什么区别?

2023-12-31

Bash 参数替换中 :- 和 := 有什么区别?

他们似乎都设置了默认值?


Quoting Bash 参考手册 https://www.gnu.org/software/bash/manual/bashref.html#Shell-Parameter-Expansion:

${parameter:-word}

If parameter未设置或为 null,则扩展word被替换。否则,值parameter被替换。

${parameter:=word}

If parameter未设置或为 null,则扩展word被分配给parameter。的价值parameter那么就是 取代。位置参数和特殊参数可能不 以这种方式分配给。

不同之处在于:=不仅取代了word, 它也是assigns它到parameter:

var=
echo "$var"               # prints nothing
echo "${var:-foo}"        # prints "foo"
echo "$var"               # $var is still empty, prints nothing
echo "${var:=foo}"        # prints "foo", assigns "foo" to $var
echo "$var"               # prints "foo"

看到这个很棒的wiki.bash-hackers.org 教程 http://wiki.bash-hackers.org/syntax/pe了解更多信息。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Bash 参数替换中 :- 和 := 有什么区别? 的相关文章

  • 如何在不同目录中启动多个窗口的 tmux?

    我想使用脚本打开一个有 6 个窗口的 tmux 会话 每个窗口位于不同的目录中 我开始于我找到的一个脚本 http blog hawkhost com 2010 07 02 tmux E2 80 93 the terminal multip
  • 使用 XMLStarlet(图像注释)将值连接到现有 xml 属性

    我正在使用 xml 来注释图像 我正在使用 xmlstarlet 和 unix bash 命令 但当我尝试将值附加到现有 xml 属性值时遇到一些问题 例如 我有
  • 每当 SQLERROR 永远不起作用时

    我不知道可能是什么原因 我已经在网上花了几个小时试图找出我的情况出了什么问题 我查过官方文档 https docs oracle com cd B19306 01 server 102 b14357 ch12052 htm还有一些汤姆 凯特
  • Ansible 输出格式选项

    是否有一个选项可以使用 ansible 而不是任何其他脚本 来格式化 ansible 输出 例如 name Show version sudo true hosts web front end tasks name Create yum c
  • 如何使用 echo 写入非 ASCII 字符?

    如何写非ASCII http en wikipedia org wiki ASCII使用 echo 的字符 是否有转义序列 例如 012或类似的东西 我想使用以下方法将 ASCII 字符附加到文件中 echo gt gt file 如果您关
  • bash:清理三个文件的外连接,保留文件成员资格

    考虑以下三个文件 其标题位于第一行 file1 id name in1 1 jon 1 2 sue 1 file2 id name in2 2 sue 1 3 bob 1 file3 id name in3 2 sue 1 3 adam 1
  • 用于编辑 /etc/sudoers 文件的正则表达式模式

    我想删除 etc sudoers 文件中的 uncommnet 轮组 那么我应该使用什么正则表达式模式 cat etc sudoers Allows members of the sys group to run networking so
  • shell中如何求数组的长度?

    shell中如何求数组的长度 例如 arr 1 2 3 4 5 我想得到它的长度 在本例中是 5 a 1 2 3 4 echo a 4
  • 为什么是 ”& ;”无效的语法?

    我正在尝试在终端上运行 for 循环 我希望将每次迭代发送到后台进程 以便所有迭代同时运行 以下是命令一一运行 for i in sra do fastq dump split files i done only 我突出显示了分号 要同时运
  • 将 mysql 查询输出存储到 shell 变量中

    我需要一个变量来保存从数据库检索的结果 到目前为止 这基本上是我正在尝试但没有成功的事情 myvariable mysql database u user p password SELECT A B C FROM table a 正如你所看
  • 运行 shell 命令并将输出发送到文件?

    我需要能够通过 php 脚本修改我的 openvpn 身份验证文件 我已将我的 http 用户设置为免通 sudoer 因为这台机器仅在我的家庭网络中可用 我目前有以下命令 echo shell exec sudo echo usernam
  • 带有二进制数据的 Bash echo 命令?

    有人可以解释一下为什么这个脚本有时只返回十六进制字符串表示形式的 15 个字节吗 for i in 1 10 do API IV openssl rand 16 API IV HEX echo n API IV od vt x1 w16 a
  • wget 并行下载文件并重命名

    我有一个包含两列的文本文件 第一列是要保存的名称 第二列是资源的 url 地址 10000899567110806314 jpg http lifestyle inquirer net files 2018 07 t0724cheekee
  • Bash:产生当父脚本退出时退出的子进程

    我想在 Bash 中生成多个子进程 但我希望父脚本保持运行 这样发送到父脚本的信号也会影响生成的子进程 这不会这样做 parent bash usr bin bash spawnedChildProcess1 spawnedChildPro
  • BASH 中的空函数

    我正在使用 FPM 工具创建 deb 包 此工具在从支持的文件中删除包之前 之后创建 不幸的是FPM生成的bash脚本包含这样的函数 dummy 该脚本退出时出现错误 语法错误 意外 BASH 不允许空函数吗 哪个版本的 bash linu
  • 将 bash 提示符下的当前命令复制到剪贴板

    我想要一个快速的键盘命令序列 将 bash 提示符处的当前命令复制到剪贴板 例如 要将最后一个 bash 命令复制到剪贴板 我会按 up some command sequence 复制它 或者 例如 要在 bash 历史记录中搜索命令 我
  • 如何在 bash_profile 文件中添加导出语句?

    我正在尝试了解是否必须添加导出语句来在 bash profile 文件中设置变量 我该怎么做呢 例如 如果我必须添加 export AX name 那么我应该将其简单地写在文件末尾还是我还需要编写其他内容 简单写一下export AS na
  • Grep 搜索带有换行符的字符串

    如何使用 grep 输出下面给出的输入文件中出现的字符串 export to excel 具体来说 如何处理搜索字符串之间发生的换行符 grep 中是否有一个开关可以执行此操作或其他命令 输入文件 文件a txt 等等 导出到优秀 巴拉巴拉
  • 打印本周星期一的日期(在 bash 中)

    我想获取本周星期一的 YYYYMMdd 格式的日期 例如 今天是 20110627 从明天到周日 我仍然想打印周一 今天 的日期 然后下周重复这个过程 monday date dmonday Y m d last monday date d
  • 使用 sed 将反斜杠替换为斜杠[重复]

    这个问题在这里已经有答案了 我需要更换 with 我有一个文件 其中包含 test test2 test3 test4 I tried VRS Ruta cat ruta lst sed s g sed s g output test te

随机推荐

  • Epplus插入图表ColumnStacked3D切换行/列

    我正在使用 epplus 在我的程序中创建 Excel 我需要插入柱形图 这是我的代码 Add the chart to the sheet var chart sheet Drawings AddChart chartTitle eCha
  • 如何将networkX图导入neo4j?

    我有一个创建的图表networkX我正在使用 neonx 将其导入neo4j在本地主机上 我有一个networkX类型图称为G 下面是代码 data1 json graph node link data G H json graph nod
  • 由 tycho maven 将 JRE 与基于 RCP 插件的应用程序捆绑在一起

    我有基于插件模型的 RCP 应用程序 我想将 JRE 放入 Maven Tycho 创建的最终工件中 我尝试遵循这些建议 在第谷构建中包含一个 jre https codeiseasy wordpress com 2012 07 31 in
  • 保存后会在“我的文档”中创建 Excel Addin 的副本

    我有一个应用程序 在 IBM Notes 中运行 使用 Lotusscript 等 它通过 OLE 自动化创建一个新的 Excel 对象 在我的应用程序中 我创建一个新的工作簿并将其保存到临时文件夹 我将其另存为不带宏的 Excel 工作表
  • HTML5 语音输入和 Google Translate 文本转语音,Chrome 中的问题

    我正在创建一个语音 文本备忘录 Web 应用程序 这里 http gustavstromberg se sandbox html5 localstorage http gustavstromberg se sandbox html5 loc
  • awk 命令在 Snakemake --use-singularity 中失败

    我正在尝试将 Snakemake 与 Singularity 结合起来 我注意到一个简单的awk使用奇点时命令不再起作用 这 1最后一行被 bash 替换 而不是被用作第一个字段awk 这是一个最小的工作示例 蛇形锉刀 singularit
  • Elasticsearch - 模糊、短语、完成建议和破折号

    因此 我一直在问单独的问题 试图实现我想要实现的搜索功能 但仍然达不到要求 所以我想我只会问人们他们对最佳 Elasticsearch 设置 映射 索引和查询结构的建议 以完成我正在寻找的工作为了 当您键入查询类别的解决方案时 我需要进行搜
  • 是否可以编译unittest而不运行它们并为特定模块显式运行unittest?

    我经常在开发 API 时在主函数中编写测试代码 但因为 D 集成了单元测试 所以我想开始使用它们 我当前的工作流程如下 我有一个脚本可以监视任何 d 文件中的文件更改 如果脚本找到修改过的文件 它将运行dub build 问题是dub bu
  • 在 tabcontrol C# 中显示多个数据表

    我有一个小程序 需要一个数据表 从sql数据库获取数据 然后按字段将其拆分为数据表数组 然后应将其显示在选项卡控件中 每个字段都在其自己的选项卡中 分割 采用单个数据表并分割成数据表数组 我认为工作正常 public DataTable s
  • 如何模拟 REST API [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我有一个 MVC 应用程序需要调用第三方供应商的 REST API REST API 应该返回 JSO
  • 是否有重新启动集群的最佳实践

    我遵循亚历克斯埃利斯的优秀tutorial https gist github com alexellis fdbc90de7691a1b9edb545c17da2d975使用kubeadm在 Raspberry Pi 上启动 K8s 集群
  • Gitignore 不忽略文件夹

    我已将多个文件夹添加到我的 gitignore文件 但当我这样做时它们仍然出现git status 我的安装 计算机是新的 我正在尝试在 svn 中初始化 git 存储库 正如我之前所做的数百次一样 尽管不是在这台机器上 文件夹被标记为忽
  • 如何在 ActiveMQ 5.2 中打开 JMX

    在 ActiveMQ 5 2 中启用 JMX 的正确方法是什么 我见过相互冲突的文档 所以我想知道是否有人知道正确的配置文件更改应该是什么 我想我可以通过更改用于启动 ActiveMQ 的批处理文件来使其工作 但我真的不知道
  • Android应用程序中的语音检测

    描述 我的应用程序记录手机麦克风的声音 我正在使用 android 标准类 android media AudioRecord 要做到这一点 应用程序有 2 个按钮 Start and Stop 当我按下start按钮应用程序开始记录 当我
  • 根据色调名称更改条形颜色

    我在用着seaborn and pandas从不同 但相关 的数据创建一些条形图 这两个数据集共享一个共同的类别 用作hue 因此我想确保在两个图表中该类别的条形颜色匹配 我该怎么办 一个基本的例子如下 import seaborn as
  • Oracle SQL:导出到 CSV 避免换行

    我需要批量导出每天 csv 文件中数据库的一些数据 实际上 我正在使用 SET COLSEP 命令 但在导出大小为 4000 VARCHAR2 4000 的大列时遇到一些问题 它在输出文件上返回给我许多空行和换行符 我将尝试用一个例子更好地
  • Visual Studio SSIS 项目 - 脚本任务生成错误

    我想学习在我的个人计算机上开发 SSIS 包 我对编写 C 脚本感兴趣 我使用 SSDT 在 Windows 10 Pro 64 位上安装了 Visual Studio 2019 还安装了 Integration Services Proj
  • PhpMyAdmin:“处理请求时出错:”(未显示错误)

    我在 Windows 10 64 位 上运行 XAMPP 作为开发环境 PhpMyAdmin 最近开始回复每一次尝试的操作 并出现以下错误 没有任何有关该错误的实际信息 我怎样才能继续前进而不收到错误 不起作用的行动 删除行 删除表 Edi
  • 在 Javascript 中启用和禁用 Div 及其元素[重复]

    这个问题在这里已经有答案了 我正在寻找一种方法启用和禁用这div id dcalc 和它的孩子 div class nerkheArz style width 380px height 370px background CDF text a
  • Bash 参数替换中 :- 和 := 有什么区别?

    Bash 参数替换中 和 有什么区别 他们似乎都设置了默认值 Quoting Bash 参考手册 https www gnu org software bash manual bashref html Shell Parameter Exp