【问题标题】:How can I create a .bashrc file that works on both Linux and OSX [closed]如何创建适用于 Linux 和 OSX 的 .bashrc 文件 [关闭]
【发布时间】:2014-06-03 21:40:12
【问题描述】:

我发现某些功能和程序在一个系统上可用,但在另一个系统上不可用。
我怎样才能让我的.bashrc 文件处理这些差异,从而使我的.bashrc 文件真正可移植?

同样,我怎样才能将自定义的.bashrc 文件立即放在新机器上,而不必首先满足其所有依赖项?拥有一个不起作用的 .bashrc 文件很困难,因为你甚至无法打开终端窗口......(我总是保持打开状态并在编辑我的 .bashrc 文件时测试一个新的终端窗口!如果你“卡住”这个您可以使用像 gedit 这样的纯文本编辑器来更改它)

【问题讨论】:

  • 恕我直言,这个问题太宽泛了。
  • 不要那样做。在每个系统上保留一个单独的.bashrc(可能是source 一些公共部分)。
  • 我很乐意将您的方法列表视为稍微扩展的博客文章。虽然不是最适合问答。
  • @Basile - 让它们与频繁的变化保持同步是一个很大的痛苦。
  • 不,你只需要使用版本控制系统(就像任何源代码一样),例如git,管理这些源文件。

标签: linux macos bash ubuntu


【解决方案1】:

这里有三种方法:

如果命令依赖于环境变量,例如 bash 等程序的版本或 $TMUX 等变量,您可以在 ~.bashrc 文件中使用这些变量:

[ "${BASH_VERSINFO[0]}" -ge 4 ] && shopt -s autocd
[ -z "$TMUX" ] && export TERM=xterm-256color

如果.bashrc 命令依赖于存在的文件,例如~/.git-completion.bash 文件:

if [ -f ~/.git-completion.bash ]; then
  . ~/.git-completion.bash
fi 

#(or)
[[ -s ~/.git-completion.bash ]] && source ~/.git-completion

如果命令依赖于正在安装的程序,例如 tmux:

if which tmux >/dev/null; then
  export TERM=xterm-256color
fi

【讨论】:

  • 所有好的方法,尽管没有针对 Linux 和 OS X 的特定方法。您错过了两种平台之间关键区别的方法:GNU vs BSD coreutils
猜你喜欢
  • 1970-01-01
  • 2012-03-10
  • 1970-01-01
  • 2011-11-20
  • 2017-08-20
  • 1970-01-01
  • 2020-11-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多