我在寻找一个很好的解决方案来保持我的.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/

10-12 05:45