Bash 创建一个变量除以 _ 的路径并检查是否存在

标签 bash

在 Bash 中,我试图创建一个包含两个变量的路径:

/path/to/my/file/${variable1_-}${variable2}/Still/some/path

我的 variable2 总是被设置,但是 variable1 可能是空的,在那种情况下我不想打印“_”

我试过上面那行,但似乎不正确。 有人可以帮助打印正确的路径吗?

提前感谢您的建议!

最佳答案

你有一个简单的拼写错误(下划线应该在分隔符之后,而不是变量名的一部分)并且如果 variable1 已设置,你想包含下划线,而不是它未设置(所以加上而不是参数扩展中的减号;并添加一个冒号以覆盖集合但为空的情况)。据推测,您还想在设置时包含 variable1 的实际值。

/path/to/my/file/${variable1}${variable1:+_}${variable2}/Still/some/path

或等效地,嵌套

/path/to/my/file/${variable1:+${variable1}_}${variable2}/Still/some/path

下划线之前的大括号是将变量名与文字文本分开所必需的。

关于Bash 创建一个变量除以 _ 的路径并检查是否存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58498617/

相关文章:

bash - 如何使用sed计算文件中非空行的数量?

linux - 如何让我的 bash 脚本从变量中删除前 n 行和最后 n 行?`

bash - 如何删除反向 grep 匹配上方和下方的行?

bash - Go: 执行 bash 脚本

arrays - 如何使用一系列交替的键和值来定义 Bash 5.1 关联数组?

linux - 如何使用 shell 脚本替换属性文件中的点

bash - awk:多个CSV文件中的多列数据的数学运算

linux - 如何根据操作系统版本从剪贴板复制/粘贴到 tmux?

bash - 我在 Bash 脚本中遇到 "unary operator expected"

linux - 如何在行本身旁边添加相同行的数量?