140 votes

Quelle est la différence entre PS1 et PROMPT_COMMAND ?

En jetant un coup d'œil à ce fil de discussion génial J'ai remarqué que certains exemples utilisent

PS1="Blah Blah Blah"

et certains utilisent

PROMPT_COMMAND="Blah Blah Blah"

(et certains utilisent les deux) pour définir l'invite dans un shell Bash. Quelle est la différence entre les deux ? Une recherche sur Stack Overflow et même un peu de recherche plus large sur Google ne me donnent pas de résultats, donc même un lien vers le bon endroit pour trouver la réponse serait apprécié.

2voto

pal Points 341

La différence est que

  • si vous sortez une ligne incomplète de PROMPT_COMMAND cela va bousiller votre invite Bash
  • PS1 substituts \H et amis
  • PROMPT_COMMAND exécute son contenu, et PS1 utilise son contenu comme invite.

PS1 effectue l'expansion des variables et la substitution des commandes à chaque invite. Il n'est pas nécessaire d'utiliser PROMPT_COMMAND pour attribuer une valeur à PS1 ou pour exécuter un code arbitraire. Vous pouvez facilement faire export PS1='$(uuidgen) $RANDOM' une fois dans le dossier .bash_profile . Utilisez simplement des guillemets simples.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X