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