Come puoi esportare il tuo .bashrc in .zshrc?


87

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?


19
Non lasciare che questo zsh-hater ti abbatta. Zsh è fantastico!
Jeremy Cantrell

Risposte:


110

Anche se la risposta di lhunath mi ha spinto nella giusta direzione, zsh non sembra avere origine .profileautomaticamente. 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 .profilereperirli 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.


2
Sì, penso che questo sia l'approccio migliore. La ringrazio per la risposta!
Léo Léopold Hertz 준영

la risposta di cui sopra funziona bene anche per me. ma devo farlo ogni volta che apro il terminale zshrc. puoi dirmi come correggerlo.
codice audio

33

Non puoi " esportare " il tuo .bashrcin un file .zshrc. .bashrcè un file che esegue bashcomandi. .zshrcè un file che esegue zshcomandi.

Non si può pretendere zshdi essere in grado di eseguire i bashcomandi nel vostro .bashrc, così si dovrebbe convertirlo in un nuovo .zshrcinvece di cercare di correre .bashrcda .zshrco la copia della prima nella seconda.

Se vuoi un file di inizializzazione della shell comune per tutte le tue shell; utilizzare .profile(e rimuovere .bashrce .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 zshsia conforme a POSIX).

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

Tuttavia, e prima avrei letto male questa parte della tua domanda, non dovresti riscontrare errori bashdurante l'esecuzione a .bashrcmeno che tu non inserisca zshcomandi lì. Hai fatto? Quali errori stai riscontrando? Mi sembra che tu abbia aggiunto del zshcodice al tuo .bashrce bash(ovviamente) non capisca.

Per inciso, ojblasscerca 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 bashinvece con . Principalmente solo per il tuo (e alla fine, le persone che condividi con loro) per motivi di portabilità.


Guarda lo stament "Ho messo il mio .bashrc direttamente nel mio .zshrc, e ha causato molti errori quando ho provato a usare di nuovo Bash." ora pensa per un momento a cosa potrebbe causare questo ... e poi riformula il tuo post.
ojblass
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.