Làm cách nào bạn có thể xuất .bashrc của mình sang .zshrc?


85

Tôi đang cố gắng chuyển sang zsh từ Bash.

Tôi đã đặt trực tiếp .bashrc của mình vào .zshrc của tôi và nó gây ra rất nhiều lỗi khi tôi cố sử dụng lại Bash.

Làm cách nào bạn có thể xuất .bashrc của mình sang .zshrc?


19
Đừng để cái zsh-hater này làm bạn thất vọng. Zsh thật tuyệt!
Jeremy Cantrell

Câu trả lời:


109

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

Điều chỉnh mà tôi đang sử dụng đang đưa các bí danh và chức năng chung vào .profilevà tìm nguồn cung cấp chúng theo cách thủ công như sau:

Trong ~/.bashrc:

source ~/.profile

Trong ~/.zshrc:

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

emulatelà một lệnh nội trang zsh. Với một đối số, hãy thiết lập các tùy chọn zsh để mô phỏng shell được chỉ định nhiều nhất có thể.


2
Vâng, tôi nghĩ đây là cách tiếp cận tốt nhất. Cảm ơn về câu trả lời của bạn!
Léo Léopold Hertz 준영

câu trả lời ở trên cũng làm việc tốt cho tôi. nhưng tôi phải làm điều này mỗi khi tôi mở thiết bị đầu cuối zshrc. bạn có thể cho tôi biết làm thế nào để sửa lỗi này.
thedudecodes

32

Bạn không thể " xuất " của mình .bashrcsang a .zshrc. .bashrclà một tệp chạy bashcác lệnh. .zshrclà một tệp chạy zshcác lệnh.

Bạn không thể mong đợi zshcó thể chạy các bashlệnh trong của mình .bashrc, vì vậy bạn nên chuyển nó thành lệnh mới .zshrcthay vì cố gắng chạy .bashrctừ .zshrchoặc sao chép lệnh trước vào lệnh sau.

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

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

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

Ngoài ra, hãy ojblasscố gắng tạo ra một điểm về tính di động chỉ thành công một phần. zshlà một cái vỏ tuyệt vời (mặc dù bản thân tôi chưa được vinh danh), 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 bashthay thế. Chủ yếu chỉ vì lợi ích của riêng bạn (và cuối cùng là những người bạn chia sẻ với họ) vì tính di động.


Hãy nhìn vào biểu tượng "Tôi đã đặt trực tiếp .bashrc của mình 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 lại Bash." bây giờ hãy suy nghĩ một chút điều gì sẽ gây ra điều đó ... và sau đó đặt lại từ khóa cho bài đăng của bạn.
ojblass
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.