如何为特定操作系统配置 .zshrc

如何为特定操作系统配置 .zshrc

我想在使用 Mac 时使用emacsfrom文件夹,但我在 Ubuntu 中使用相同的。Applications.zshrc

alias emacs='/Applications/Emacs.app/Contents/MacOS/bin/emacsclient'

所以我想仅在使用时创建此别名OS X。如何获取操作系统名称.zshrc

答案1

我还在多个操作系统之间分享我的 Zsh 启动。您可以case对系统特定的命令使用语句:

case `uname` in
  Darwin)
    # commands for OS X go here
  ;;
  Linux)
    # commands for Linux go here
  ;;
  FreeBSD)
    # commands for FreeBSD go here
  ;;
esac

或者,您可以将特定于系统的启动拆分为名为(例如).zshrc-Darwin.zshrc-Linux等的文件,然后将source所需的文件放在您的 末尾附近.zshrc

source "${ZDOTDIR:-${HOME}}/.zshrc-`uname`"

答案2

首选检查环境变量$OSTYPE,因为与运行外部命令相比,它更轻量级uname

OSTYPE由 ZSH shell 本身设置。

操作系统类型

操作系统,在编译时确定。

http://zsh.sourceforge.net/Doc/Release/Parameters.html#Parameters-Set-By-The-Shell

例子

# for ZSH
case "$OSTYPE" in
  darwin*)
    # ...
  ;;
  linux*)
    # ...
  ;;
  dragonfly*|freebsd*|netbsd*|openbsd*)
    # ...
  ;;
esac

参考

笔记OSTYPEBash 中的可用值与 ZSH 中的值略有不同。

答案3

只要检查一下你是否运行的不是linux。如果unameMac 中不存在,该if子句也会失败。

if [ "$(uname 2> /dev/null)" != "Linux" ]; then
    alias emacs='vim'
fi

相关内容