当我来的时候,我正在寻找一个好的解决方法来保持我的 .tmux.conf
文件在不同系统之间保持一致(我有 OS X 和 Ubuntu,它们有不同的复制/粘贴支持技术)这条评论提供了解决方案:https://github.com/ChrisJohnsen/tmux-MacOSX-pasteboard/issues/8#issuecomment-4134987
但是在我使用注释中的代码片段之前,我想完全理解它在做什么。特别是,我不太明白最后一行,以及 bash man page for parameter substitution没有多大帮助。
这是一行:
exec /path/to/actual/tmux ${cfg+-f "$cfg"} "$@"
具体来说,${cfg+-f "$cfg"}
部分是什么意思?
最佳答案
表示如果没有设置则跳过该参数。实际上导致以下之一:
exec /path/to/actual/tmux -f "/some/cfg" "$@"
exec /path/to/actual/tmux "$@"
因此,如果设置了 $cfg
,则使用 -f "$cfg"
,否则什么也不用,因此 tmux 不会提示 缺少参数 - f
.
关于bash - 有人可以解释/给出这个 shell 参数替换的详细信息吗? ${cfg+-f "$cfg"},我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18860158/