Próbuję przejść do zsh z Bash.
Umieściłem plik .bashrc bezpośrednio w pliku .zshrc i spowodowało to wiele błędów, gdy ponownie próbuję użyć Bash.
Jak możesz wyeksportować plik .bashrc do .zshrc?
Próbuję przejść do zsh z Bash.
Umieściłem plik .bashrc bezpośrednio w pliku .zshrc i spowodowało to wiele błędów, gdy ponownie próbuję użyć Bash.
Jak możesz wyeksportować plik .bashrc do .zshrc?
Odpowiedzi:
Podczas gdy odpowiedź Lhunatha popchnęła mnie we właściwym kierunku, zsh nie wydaje się pobierać .profile
automatycznie. Wiele dobrych informacji na ten temat można znaleźć w tym poście dla superużytkowników .
Adaptacja, której używam, polega na umieszczaniu wspólnych aliasów i funkcji .profile
i ręcznym ich pozyskiwaniu w następujący sposób:
W ~/.bashrc
:
source ~/.profile
W ~/.zshrc
:
[[ -e ~/.profile ]] && emulate sh -c 'source ~/.profile'
emulate
jest wbudowanym poleceniem zsh. Za pomocą jednego argumentu ustaw opcje zsh, aby emulować określoną powłokę tak bardzo, jak to możliwe.
Nie możesz „ wyeksportować ” swojego .bashrc
pliku do pliku .zshrc
. .bashrc
to plik, który uruchamia bash
polecenia. .zshrc
to plik, który uruchamia zsh
polecenia.
Nie można oczekiwać zsh
, aby móc uruchomić bash
polecenia w twojej .bashrc
, więc należy przekształcić go w nowy .zshrc
zamiast próbować uruchomić .bashrc
z .zshrc
lub kopiowanie były do tej ostatniej.
Jeśli chcesz mieć wspólny plik inicjujący dla wszystkich powłok; użyj .profile
(i usuń .bashrc
i .zshrc
). Pochodzi ze wszystkich powłok POSIX. A tam trzymaj się tylko funkcji powłoki POSIX . Wtedy ten kod będzie działał w dowolnej powłoce POSIX. (Chociaż nie jestem w 100% pewien, czy zsh
jest zgodny z POSIX).
Widzieć: http://mywiki.wooledge.org/DotFiles .
Chociaż - a najpierw źle odczytałem tę część twojego pytania - nie powinieneś napotkać błędów bash
podczas uruchamiania swojego, .bashrc
chyba że umieścisz zsh
tam polecenia. Czy ty? Jakie błędy otrzymujesz? Wydaje mi się, że dodałeś zsh
kod do swojego .bashrc
i bash
(oczywiście) go nie rozumiesz.
Na marginesie, ojblass
próbuje poruszyć kwestię przenośności, która tylko częściowo się udaje. zsh
to świetna powłoka (chociaż sam nie miałem zaszczytów), ale podczas pisania skryptów; Polecam #!/usr/bin/env bash
zamiast tego. Głównie tylko dla Ciebie (i ostatecznie dla osób, z którymi się dzielisz) ze względu na przenośność.