web-dev-qa-db-fra.com

Bash - Comment puis-je faire "Appuyez sur n'importe quelle touche pour continuer"

Je fais un script pour installer mon thème, une fois l'installation terminée, il apparaîtra le journal des modifications et il y aura "Appuyez sur n'importe quelle touche pour continuer" afin qu'après que les utilisateurs lisent le journal des modifications puis appuyez sur n'importe quelle touche pour continuer

214
superquanganh

Vous pouvez utiliser la commande read:

read -p "Press enter to continue"

Comme mentionné dans les commentaires ci-dessus, cette commande nécessite en fait que l'utilisateur appuie sur enter; une solution qui fonctionne avec n'importe quelle clé serait:

read -n 1 -s -r -p "Press any key to continue"

Explication par Rayne et wchargin

-n définit le nombre de caractères requis pour arrêter la lecture

-s masque l'entrée de l'utilisateur

-r fait interpréter la chaîne "brute" (sans tenir compte des échappements antislash)

321
MKT

Comme @cas l'a écrit dans un commentaire, vous devriez vraiment utiliser less pour cela. Si le journal des modifications comprend plusieurs pages, vous voulez quand même vraiment un pager.

Vous souhaitez normalement consulter la variable d'environnement PAGER au lieu d'appeler simplement less:

${PAGER:-less} changelog

utilisera $PAGER s'il est défini et less sinon.

18
Stig Hemmer
read -rsn1 -p"Press any key to continue";echo

Ou, si vous avez réellement besoin de la variable REPLY:

read -rsn1 -p"Press any key to continue" variable;echo

Remplacez variable par un nom de variable dont vous n'avez pas besoin.

13
EKons