特定のオペレーティングシステム用に.zshrcを設定する方法

特定のオペレーティングシステム用に.zshrcを設定する方法

Macを使用するときにfromフォルダを使用したいのですが、emacsUbuntuでも同じように使用しています。Applications.zshrc

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

だから私は使用されたときだけこのエイリアスを作りたいと思いますOS X。オペレーティングシステムの名前を取得するには.zshrc

答え1

また、複数のオペレーティングシステム間でZ​​shブートを共有します。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-Linuxsource配置することもできます.zshrc

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

答え2

環境変数をチェックするのは、$OSTYPE外部コマンドを実行するよりも軽いため、好まれますuname

OSTYPEZSHシェル自体によって設定されます。

オペレーティングシステムの種類

オペレーティングシステムはコンパイル時に決定されます。

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

関連情報