Как я должен автоматически изменить свой .zshrc для другой ОС?

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

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

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

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

3
задан 25.07.2016, 09:00

1 ответ

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

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 каталог вокруг к каждой машине по мере необходимости, чтобы усовершенствовать все.

4
ответ дан 08.12.2019, 00:33

Теги

Похожие вопросы