bash - Bash创建一个变量除以_的路径并检查是否存在
问题描述
在 Bash 中,我试图创建一个包含两个变量的路径:
/path/to/my/file/${variable1_-}${variable2}/Still/some/path
我的变量 2 始终设置,但变量 1 可能为空,在这种情况下,我不想打印“_”
我已经尝试了上面的行,但似乎不正确。有人可以帮助打印正确的路径吗?
提前感谢您的建议!
解决方案
您有一个简单的错字(下划线应该在分隔符之后,而不是变量名的一部分),并且如果设置了下划线variable1
,而不是未设置,则希望包含下划线(所以在参数扩展中加号而不是减号;并添加冒号也覆盖设置但为空的情况)。大概您还想包括variable1
设置时的实际值。
/path/to/my/file/${variable1}${variable1:+_}${variable2}/Still/some/path
或等效地,嵌套
/path/to/my/file/${variable1:+${variable1}_}${variable2}/Still/some/path
其中下划线之前的大括号对于将变量名与文字文本分开是必要的。
推荐阅读
- r - 测试 R 包:是否可以让代码知道它正在测试中运行?
- ios - SwiftUI:在使用自定义页面视图时保持垂直滚动?
- snowflake-cloud-data-platform - 雪花中的动态列名
- bash - 如何同步两个相同目录中文件夹的修改日期?
- javascript - 瓦片集选择系统(NodeJS)
- css - 样式化组件:不同文件中的嵌套规则不起作用
- javascript - 嵌套数组并返回未标记的值
- pandas - 使用 VScode 和 python 3.7 从 anaconda3 发行版 (Windows) 导入 hdf5 文件时遇到问题
- c - scanf ... getchar 的用法
- c++ - C++ 向量 push_back() 函数只改变最后一个值