2 votes

Changer l'invite de commande du terminal sur un macbook

Je suis nouveau en programmation et je veux essayer de changer la couleur de l'utilisateur sur mon terminal pour commencer. Peut-être ajouter l'hôte.

J'ai donc consulté de nombreux sites web et vidéos sur YouTube où ils utilisaient un code comme celui-ci:

export = [/u@h/W]/$

J'ai copié ce code dans mes fichiers .zshrc et .profile.

Mais lorsque je source ces fichiers, je vois juste que mon Utilisateur est maintenant "[/u@h/W]/$" et pas mon nom@hôte.

Pourquoi ça ne fonctionne pas pour moi?

J'ai trouvé ce code qui fonctionne mais je ne suis pas capable de le modifier:

NEWLINE=$'\n'
DATE=$( date +"[%m-%d %H:%M]" )
PROMPT="${NEWLINE}%F{white}${DATE} %(!.%F{red}.%F{green})%n%F{white}@%m
%F{yellow}%F{reset}> "

Est-ce que quelqu'un a une explication pour savoir pourquoi la première façon ne fonctionne pas mais la deuxième si?

2voto

yoliho Points 340

La réponse simple à la question de pourquoi les deux morceaux de code donnent des résultats différents est qu'ils sont écrits pour deux langages différents. Le premier est bash qui était l'interpréteur de commandes par défaut sur OSX 10.3 jusqu'à 10.14. Le deuxième est zsh qui est l'interpréteur de commandes par défaut actuel. (De plus, le premier n'est pas du code correct dans n'importe quel langage il manque PS1 et il ne devrait pas y avoir d'espaces autour de =)

zsh ne lira pas .bash_profile ou .profile mais juste .zshrc

zsh est très bien documenté sur https://zsh.sourceforge.io/ Le prompt est documenté ici

Le code donné pour le second n'est presque certainement pas ce que vous voulez car la variable DATE est définie lorsque l'interpréteur de commandes démarre et vous voulez probablement la date et l'heure lorsque le prompt est exécuté.

Comme avertissement, je n'aime pas la plupart des interpréteurs de commandes UNIX car la syntaxe m'est obscure car ils ont été conçus pour permettre à l'utilisateur de taper le moins de caractères possible donc je ne les comprends pas entièrement donc j'utiliserais des interpréteurs de commandes non POSIX comme fish qui vous permet de définir le prompt à partir d'une interface web ou de fonctions compréhensibles.

Des exemples simples du prompt se trouvent dans l' introduction à zsh Je commencerais par là et je monterais en compétence. Il y a aussi un site web de génération de prompts zsh qui vous permettra de jouer avec ce qui peut être fait

Cependant, aucun des deux ne parle de couleurs. Pour cela, consultez la référence de zsh Cela montre que dans le prompt %F{white} rend tout ce qui suit avoir une couleur de premier plan blanche. Donc votre exemple afficherait blanc puis vert puis rouge puis blanc puis jaune puis réinitialiser pour supprimer toutes les couleurs.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X