56 votes

Shell Script, lu sur la même ligne après avoir fait écho à un message

En suivant le script shell que j'exécute

 #!/bin/sh

echo "Enter [y/n] : "
read opt

Sa sortie est

 Enter [y/n] : 
Y

Je veux que la variable soit lue sur la même ligne comme ci-dessous

 Enter [y/n] : Y

Cela devrait être simple, je suppose, mais je suis nouveau dans les scripts bash.

72voto

Solution : read -p "Enter [y/n] : " opt

De help read :

   -p prompt output the string PROMPT without a trailing newline before
        attempting to read

15voto

heldt Points 1394
echo -n "Enter [y/n] : " ; read opt

OU! (Plus tard c'est mieux)

 read -p "[y/n]: " opt

4voto

Fazly Points 11

utilisez -n handle dans l'écho, cela évitera la fin de la nouvelle ligne

 echo -n "Enter [y/n] : "
read opt

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