3

В настоящее время я храню большинство моих точечных файлов в репозитории git, чтобы упростить их синхронизацию на всех моих компьютерах. Я недавно приобрел Macbook, поэтому теперь мне нужны все мои точечные файлы, поддерживающие различия между Linux и Darwin. Первая несовместимость, с которой я столкнулся, - это цветовое кодирование ls , в Linux это флаг --color=auto а для Дарвина это -G .

Моя первая попытка сделать мой .zshrc переносимым - сделать следующее:

case `uname` in
  Darwin)
    alias ls='ls -FG'
    ;;
  Linux)
    alias ls='ls -F --color=auto'
    ;;
esac

Когда я найду еще несколько вещей, которые нужно изменить, я, вероятно, вытащу компьютерные вещи в отдельные файлы, чтобы сделать его немного чище. Больше всего меня интересует, есть ли лучший способ сделать это, кроме использования `uname` для определения того, что нужно запускать.

1 ответ1

4

Я использовал этот механизм:

envfile="$HOME/.bash/os.`uname`.sh"
if [ -r $envfile ]; then
    . $envfile
fi
envfile="$HOME/.bash/host.`uname -n`.sh"
if [ -r $envfile ]; then
    . $envfile
fi

Затем я мог бы rsync каталог .bash для каждой машины по мере необходимости, чтобы поддерживать все в актуальном состоянии.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .