2014-10-28 21 views
12

Tôi đã cập nhật trình bao của mình thành ZSH. Khi tôi nguồn ~/.bashrc. Tôi gặp lỗi nàylệnh shopt không được tìm thấy trong .bashrc sau khi cập nhật vỏ

Đã xảy ra lỗi trong bác sĩ yo. khi tôi thực hiện lệnh này

echo "export NODE_PATH=$NODE_PATH:/usr/local/lib/node_modules" >> ~/.bashrc && source ~/.bashrc 

/home/amerrnath/.bashrc:17: command not found: shopt /home/amerrnath/.bashrc:25: command not found: shopt /home/amerrnath/.bashrc:109: command not found: shopt /usr/share/bash-completion/bash_completion:35: parse error near]]'

Xin hãy giúp tôi giải quyết vấn đề này

+0

'zsh' không phải là' bash'. Tại sao bạn sẽ nguồn '.bashrc'? – FatalError

+1

Tệp 'bashrc' của bạn được viết cho' bash'. 'zsh' không phải là bash. Tôi ngạc nhiên vì nó đang cố gắng tải '.bashrc' của bạn. Nếu nó không phải là và bạn đang tìm nguồn cung ứng nó bằng tay từ '.profile' hoặc tương tự. Dừng lại. Sau đó, thay thế nó bằng một tệp init zsh' thích hợp. –

+0

đăng câu trả lời – ErlVolton

Trả lời

4

tập tin bashrc của bạn được viết cho bash. zsh không phải là bash.

Tôi ngạc nhiên zsh đang cố gắng tải .bashrc của bạn cả.

Nếu không và bạn đang tìm nguồn cung ứng theo cách thủ công (từ .profile hoặc tương tự). Đừng làm thế nữa.

Sau đó, bạn phải viết một tệp init thích hợp zsh.

Nếu bạn muốn sử dụng zsh thì bạn cần sử dụng zsh và không phải bash.

shopt là bash-ism.

[[ là bash-ism.

+0

echo "xuất NODE_PATH = $ NODE_PATH:/usr/local/lib/node_modules" >> ~/.bashrc && source ~/.bashrc. Khi tôi thực hiện lệnh này trong trình bao của tôi, tôi nhận được lỗi này – Amerrnath

+0

@ user1475089 Có, vì tệp '.bashrc' của bạn chứa những thứ không hợp pháp' zsh'. Bạn cần phải ngừng làm điều đó. Nếu bạn muốn xuất khẩu đó trong vỏ 'zsh' của bạn, bạn gắn nó vào tệp tin' zsh' init của bạn chứ không phải '.bashrc'. –

+0

có thể giải thích cho bạn chi tiết từng chút – Amerrnath

6

shopt không phải là lệnh, nhưng tích hợp sẵn trình bao. bash biết phải làm gì với nó vì nó là một bash được xây dựng trong, nhưng zsh không có ý tưởng nó là gì. Bạn sẽ muốn xem xét setopt được tích hợp zsh và đặt các giá trị đó vào tập lệnh .zshrc mới.

+0

bạn có thể giúp tôi cách sử dụng setopt cho shopt này – Amerrnath

+1

không phải là một yêu cầu đơn giản. Tệp .bashrc của bạn có ít nhất 109 dòng và tôi không biết có bao nhiêu trong số đó là nhận xét hoặc khoảng trắng. Tôi chỉ có thể đề nghị bạn xem qua tệp .bashrc của bạn để tìm hiểu xem nó đang làm gì, sau đó tìm hiểu cách làm điều tương tự trong zsh. Nếu bạn chưa bao giờ tùy chỉnh '.bashrc', thì có lẽ tất cả những gì bạn cần để thay đổi lệnh của bạn thành:' echo 'xuất NODE_PATH = $ NODE_PATH:/usr/local/lib/node_modules ">> ~/.zshrc && source ~/.zshrc' – Omnipresence

25

zsh sử dụng hồ sơ env ~/.zshrc, không phải ~/.bashrc.

vì vậy bạn cần phải thêm các thiết lập env của bạn để zshrc tập tin và sau đó

source ~/.zshrc 

Nó phải làm việc.

rbenv github link

+0

Điều này không giải thích tại sao 'shopt' làm việc trong bach (vì nó không phải là một bash built-in). @ Omnipresence của câu trả lời là nhiều thông tin. –

10

Để đặt bất cứ điều gì trong ~/.bashrc:

Chuyển đến bash:

exec bash 

Sau đó

source ~/.bashrc 

Chuyển sang bash sẽ không ảnh hưởng trên cửa sổ đầu cuối mới. Nhưng nếu bạn muốn chuyển cửa sổ hiện tại sang zsh.

Chuyển đến zsh:

exec zsh 

reference

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