首页 > 解决方案 > Bash创建一个变量除以_的路径并检查是否存在

问题描述

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

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

我的变量 2 始终设置,但变量 1 可能为空,在这种情况下,我不想打印“_”

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

提前感谢您的建议!

标签: bash

解决方案


您有一个简单的错字(下划线应该在分隔符之后,而不是变量名的一部分),并且如果设置了下划线variable1,而不是未设置,则希望包含下划线(所以在参数扩展中加号而不是减号;并添加冒号也覆盖设置但为空的情况)。大概您还想包括variable1设置时的实际值。

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

或等效地,嵌套

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

其中下划线之前的大括号对于将变量名与文字文本分开是必要的。


推荐阅读