Linux

如何保持點文件與系統無關?

  • July 17, 2013

由於工作原因,我最近開始使用 OS X 並使用自製軟體進行設置,以獲得與 Linux 類似的體驗。

但是,它們的設置有很多差異。有些只需要在一個系統上就位。由於我的 dotfiles 位於 git 儲存庫中,我想知道我可以設置什麼樣的開關,以便某些配置僅用於 Linux 系統和其他 OS X。

至於點文件,我指的是.bash_profiles.bash_alias.

盡可能保持點文件的可移植性,並避免依賴於作業系統的設置或需要特定版本工具的開關,例如,如果您不在所有系統上使用 GNU 軟體,請避免使用 GNU 語法。

您可能會遇到需要使用系統特定設置的情況。在這種情況下,使用帶有各個設置的 switch 語句:

case $(uname) in
 'Linux')   LS_OPTIONS='--color=auto --group-directories-first' ;;
 'FreeBSD') LS_OPTIONS='-Gh -D "%F %H:%M"' ;;
 'Darwin')  LS_OPTIONS='-h' ;;
esac

如果任意應用程序的配置文件需要不同的選項,您可以檢查應用程序是否提供了兼容性開關或其他機制。例如vim,您可以檢查版本和更新檔級別以支持舊版本或使用不同功能集編譯的版本不具備的功能。範例片段來自.vimrc

if v:version >= 703
 if has("patch769")
   set matchpairs+=“:”
 endif
endif

引用自:https://unix.stackexchange.com/questions/83342