2009-04-19 19 views

Trả lời

47

Trong khi câu trả lời của lhunath đẩy tôi đi đúng hướng, zsh dường như không tự động nguồn .profile. Rất nhiều thông tin tốt về chủ đề này có thể được tìm thấy trên this superuser post.

Các thích ứng Tôi đang sử dụng được đặt bí danh và chức năng phổ biến ở .profile và tự tìm nguồn cung ứng như sau:

.bashrc

source ~/.profile

zshrc

[[ -e ~/.profile ]] && emulate sh -c 'source ~/.profile'

+1

Vâng, tôi nghĩ đây là cách tiếp cận tốt nhất. Cảm ơn bạn vì câu trả lời! –

21

Bạn không thể "xuất" .bashrc của mình thành .zshrc. .bashrc là một tệp chạy các lệnh bash. .zshrc là một tệp chạy các lệnh zsh.

Bạn không thể mong đợi zsh để có thể chạy các lệnh trong bash.bashrc của bạn, vì vậy bạn nên chuyển đổi nó thành một mới .zshrc thay vì cố gắng chạy .bashrc từ .zshrc hoặc sao chép các cựu thành sau này.

Nếu bạn muốn một tệp khởi tạo shell chung cho tất cả các trình bao của bạn; sử dụng .profile (và xóa .bashrc.zshrc). Nó có nguồn gốc từ tất cả các shell POSIX. Và trong đó, hãy gắn vào các tính năng vỏ POSIX chỉ. Sau đó, mã sẽ chạy trong bất kỳ trình bao POSIX nào. (Mặc dù, tôi không chắc chắn 100% rằng zsh là tuân thủ POSIX).

Xem: http://mywiki.wooledge.org/DotFiles.

Mặc dù - và trước tiên tôi đã đọc sai phần này của câu hỏi của bạn - bạn không nên gặp lỗi từ bash khi chạy .bashrc trừ khi bạn đặt zsh lệnh trong đó. Bạn đã? Bạn đang gặp phải lỗi gì? Nghe có vẻ như bạn đã thêm zsh mã vào số .bashrcbash (hiển nhiên) của bạn không hiểu.

Là một sang một bên, ojblass cố gắng tạo một điểm di động chỉ thành công một phần. zsh là một trình bao tuyệt vời (mặc dù tôi chưa có danh hiệu), nhưng khi viết kịch bản; Tôi khuyên bạn nên làm như vậy với #!/usr/bin/env bash để thay thế. Chủ yếu là cho riêng bạn (và cuối cùng, những người bạn chia sẻ với họ) vì lợi ích của tính di động.

+0

Nhìn vào dấu vết "Tôi đặt .bashrc của tôi trực tiếp vào .zshrc của tôi, và nó gây ra rất nhiều lỗi khi tôi cố gắng sử dụng Bash một lần nữa." bây giờ hãy suy nghĩ một lúc nào đó sẽ gây ra điều đó ... và sau đó viết lại bài đăng của bạn. – ojblass

+0

@ojblass: Khá đúng; đã đọc sai câu hỏi. – lhunath

Các vấn đề liên quan