Cách cấu hình .zshrc cho hệ điều hành specfic


14

Tôi muốn sử dụng emacstừ Applicationsthư mục khi tôi đang sử dụng Mac, nhưng tôi đang sử dụng tương tự .zshrctrong Ubuntu.

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

Vì vậy, tôi muốn tạo bí danh này chỉ khi tôi đang sử dụng OS X. Làm thế nào tôi có thể nhận được một tên hệ điều hành .zshrc?

Câu trả lời:


2

Chỉ cần kiểm tra nếu bạn không chạy linux. Nếu unamekhông tồn tại trong Mac, ifmệnh đề cũng sẽ thất bại.

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

14

Tôi cũng chia sẻ khởi động Zsh của mình giữa nhiều hệ điều hành. Bạn có thể sử dụng một casecâu lệnh cho các lệnh dành riêng cho hệ thống:

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

Hoặc bạn có thể tách ra hệ thống cụ thể khởi động vào các tập tin được gọi là (nói) .zshrc-Darwin, .zshrc-Linuxvv, và sau đó sourcecác yêu cầu một gần cuối của bạn .zshrc:

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

10

Kiểm tra biến môi trường $OSTYPEđược ưu tiên, vì nó nhẹ hơn so với chạy lệnh bên ngoài uname.

OSTYPE được thiết lập bởi ZSH vỏ chính nó.

OSTYPE

Hệ điều hành, như được xác định tại thời điểm biên dịch.

http://zsh.sourceforge.net/Doc/Release/Parameter.html#Parameter-set-By-The-Shell

Thí dụ

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

Tài liệu tham khảo

Lưu ý : Các OSTYPEgiá trị khả dụng trong Bash khác một chút với các giá trị trong ZSH.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.