В моем tmux.conf есть несколько строк, которые я хотел бы выполнить, только если моей ОС является Mac. Тем не менее, я хотел бы использовать мой tmux.conf на нескольких разных ОС. Как я могу сделать команду условной для ОС, в которой в настоящий момент работает tmux?
36
2 ответа
46
Используйте команду if-shell
:
if-shell "uname | grep -q Darwin" "tmux-cmd1; tmux-cmd2;" "tmux-cmd3; tmux-cmd4"
Возможно, вы захотите поместить специфичные для ОС команды в отдельные файлы и выполнить их с помощью команды «исходный файл».
if-shell "uname | grep -q Darwin" "source-file .tmux-macosx" "source-file .tmux-linux"
11
Jimeh https://github.com/jimeh/dotfiles/commit/3838db8 имеет ответ. Также Крис Джонсен заслуживает большой похвалы за помощь людям в проблеме GitHub здесь: https://Github.com/ChrisJohnsen/tmux-MacOSX-pasteboard/issues/8#issuecomment-4134987
По сути, вы устанавливаете сценарий оболочки с именем safe-reattach-to-user-namespace
который проверяет наличие реальной команды reattach ....
#! /usr/bin/env bash
# If reattach-to-user-namespace is not available, just run the command.
if [ -n "$(command -v reattach-to-user-namespace)" ]; then
reattach-to-user-namespace $@
else
exec "$@"
fi