특정 운영 체제에 대해 .zshrc를 구성하는 방법

특정 운영 체제에 대해 .zshrc를 구성하는 방법

Mac을 사용할 때 from 폴더를 사용하고 싶지만 emacsUbuntu에서도 동일하게 사용하고 있습니다.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.

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

관련 정보