我想在使用 Mac 时使用emacs
fromApplications
文件夹,但我.zshrc
在 Ubuntu 中使用相同的文件夹。
alias emacs='/Applications/Emacs.app/Contents/MacOS/bin/emacsclient'
Run Code Online (Sandbox Code Playgroud)
所以我只想在我使用OS X
. 如何获得操作系统名称.zshrc
?
wjv*_*wjv 25
我还在多个操作系统之间共享我的 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
Run Code Online (Sandbox Code Playgroud)
另外,您可以系统特定的启动分裂成所谓的(说)文件.zshrc-Darwin
,.zshrc-Linux
等等,然后source
将需要一个接近你的结束.zshrc
:
source "${ZDOTDIR:-${HOME}}/.zshrc-`uname`"
Run Code Online (Sandbox Code Playgroud)
Sim*_*mba 13
$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
Run Code Online (Sandbox Code Playgroud)
注意:OSTYPE
Bash 中的可用值与 ZSH 中的值略有不同。
只要检查一下你是否运行的不是linux。如果uname
Mac 中不存在,该if
子句也会失败。
if [ "$(uname 2> /dev/null)" != "Linux" ]; then
alias emacs='vim'
fi
Run Code Online (Sandbox Code Playgroud)