Sto cercando di passare a zsh da Bash.
Ho inserito il mio .bashrc direttamente nel mio .zshrc e ha causato molti errori quando provo a usare di nuovo Bash.
Come puoi esportare il tuo .bashrc in .zshrc?
Sto cercando di passare a zsh da Bash.
Ho inserito il mio .bashrc direttamente nel mio .zshrc e ha causato molti errori quando provo a usare di nuovo Bash.
Come puoi esportare il tuo .bashrc in .zshrc?
Risposte:
Anche se la risposta di lhunath mi ha spinto nella giusta direzione, zsh non sembra avere origine .profile
automaticamente. Molte buone informazioni su questo argomento possono essere trovate in questo post di superutente .
L'adattamento che sto utilizzando consiste nell'inserire alias e funzioni comuni e nel .profile
reperirli manualmente come segue:
In ~/.bashrc
:
source ~/.profile
In ~/.zshrc
:
[[ -e ~/.profile ]] && emulate sh -c 'source ~/.profile'
emulate
è un comando integrato zsh. Con un singolo argomento imposta le opzioni zsh per emulare il più possibile la shell specificata.
Non puoi " esportare " il tuo .bashrc
in un file .zshrc
. .bashrc
è un file che esegue bash
comandi. .zshrc
è un file che esegue zsh
comandi.
Non si può pretendere zsh
di essere in grado di eseguire i bash
comandi nel vostro .bashrc
, così si dovrebbe convertirlo in un nuovo .zshrc
invece di cercare di correre .bashrc
da .zshrc
o la copia della prima nella seconda.
Se vuoi un file di inizializzazione della shell comune per tutte le tue shell; utilizzare .profile
(e rimuovere .bashrc
e .zshrc
). È fornito da tutte le shell POSIX. E lì, bastone per POSIX shell include solo . Quindi quel codice verrà eseguito in qualsiasi shell POSIX. (Tuttavia, non sono sicuro al 100% che zsh
sia conforme a POSIX).
Vedere: http://mywiki.wooledge.org/DotFiles .
Tuttavia, e prima avrei letto male questa parte della tua domanda, non dovresti riscontrare errori bash
durante l'esecuzione a .bashrc
meno che tu non inserisca zsh
comandi lì. Hai fatto? Quali errori stai riscontrando? Mi sembra che tu abbia aggiunto del zsh
codice al tuo .bashrc
e bash
(ovviamente) non capisca.
Per inciso, ojblass
cerca di fare un punto di portabilità che riesce solo in parte. zsh
è un'ottima shell (anche se non ho avuto gli onori di persona), ma quando si scrivono script; Ti consiglio di farlo #!/usr/bin/env bash
invece con . Principalmente solo per il tuo (e alla fine, le persone che condividi con loro) per motivi di portabilità.