Supprimer le retour à la ligne après read
Fermé
Laverda32
-
28 nov. 2008 à 11:10
dubcek Messages postés 18755 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 14 novembre 2024 - 28 nov. 2008 à 13:55
dubcek Messages postés 18755 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 14 novembre 2024 - 28 nov. 2008 à 13:55
A voir également:
- Supprimer le retour à la ligne après read
- Aller à la ligne excel - Guide
- Supprimer une page word - Guide
- Supprimer compte instagram - Guide
- Fichier impossible à supprimer - Guide
- Supprimer retour à la ligne word ✓ - Forum Word
7 réponses
EminoMeneko
Messages postés
2435
Date d'inscription
jeudi 24 janvier 2008
Statut
Membre
Dernière intervention
23 mai 2018
318
28 nov. 2008 à 11:15
28 nov. 2008 à 11:15
Je crois que c'est echo avec l'option -e ou -n qui empêche le retour à la ligne.
La touche entrée ne fait pas à proprement parler un saut de ligne dans ce cas ; c'est juste que les commandes echo font un retour à la ligne par défaut.
Si tu pouvais nous illustrer ton problème avec quelques lignes de code je pense qu'on pourrait être plus clair mais je pense d'expérience que ton problème se situe là. :)
La touche entrée ne fait pas à proprement parler un saut de ligne dans ce cas ; c'est juste que les commandes echo font un retour à la ligne par défaut.
Si tu pouvais nous illustrer ton problème avec quelques lignes de code je pense qu'on pourrait être plus clair mais je pense d'expérience que ton problème se situe là. :)
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 897
28 nov. 2008 à 12:03
28 nov. 2008 à 12:03
Salut,
Regarde du côté de la commande "tput" (man tput) :
;-))
Regarde du côté de la commande "tput" (man tput) :
#!/bin/ksh clear tput cup 0 2 echo 1 |awk '{printf "valeur %3d ? ",$1}' read -r x y=`expr $x + 1` tput cup 0 16 echo " --> "$yVoir aussi dans la FAQ : La commande tput
;-))
Ah, je crois qu'on approche. Si je comprends bien, tput cup a b me positionne le curseur à la ligne a colonne b. C'est presque bon, sauf que je veux écrire la réponse sur la ligne où je me trouve et que je ne connais pas son numéro. Y a-t'il moyen de récupérer quelque part les coordonnées courantes du curseur?
Merci,
Sergio.
Merci,
Sergio.
Merci pour votre aide à tous. En fait, je m'en sors en faisant un clear en début de code pour etre sûr de commencer à la ligne zéro et ça marche bien sauf qu'arrivé en bas de la fenêtre, j'ai une ligne blanche qui s'insère à chaque fois. Voici le code :
#!/bin/ksh
clear
Colonne=50
Ligne=0
while [ 0 -eq 0 ];do
echo $Ligne|awk '{printf "valeur %3d ? ",$1}'
read x
y=`expr $x + 1`
tput cup $Ligne $Colonne
echo " --> "$y
Ligne=`expr $Ligne + 1`
done
et voici le résultat obtenu en entrant 0 à chaque fois (les lignes de "====" représentent le haut et le bas de ma fenetre) :
=======================================================================
valeur 4 ? 0 --> 1
valeur 5 ? 0 --> 1
valeur 6 ? 0 --> 1
valeur 7 ? 0 --> 1
valeur 8 ? 0 --> 1
valeur 9 ? 0 --> 1
valeur 10 ? 0 --> 1
valeur 11 ? 0 --> 1
valeur 12 ? 0 --> 1
valeur 13 ? 0 --> 1
valeur 14 ? 0 --> 1
valeur 15 ? 0
--> 1
valeur 16 ? 0
--> 1
valeur 17 ?
=======================================================================
C'est pas très joli... Quelqu'un a la solution pour supprimer cette ligne blanche?
Merci,
Sergio.
#!/bin/ksh
clear
Colonne=50
Ligne=0
while [ 0 -eq 0 ];do
echo $Ligne|awk '{printf "valeur %3d ? ",$1}'
read x
y=`expr $x + 1`
tput cup $Ligne $Colonne
echo " --> "$y
Ligne=`expr $Ligne + 1`
done
et voici le résultat obtenu en entrant 0 à chaque fois (les lignes de "====" représentent le haut et le bas de ma fenetre) :
=======================================================================
valeur 4 ? 0 --> 1
valeur 5 ? 0 --> 1
valeur 6 ? 0 --> 1
valeur 7 ? 0 --> 1
valeur 8 ? 0 --> 1
valeur 9 ? 0 --> 1
valeur 10 ? 0 --> 1
valeur 11 ? 0 --> 1
valeur 12 ? 0 --> 1
valeur 13 ? 0 --> 1
valeur 14 ? 0 --> 1
valeur 15 ? 0
--> 1
valeur 16 ? 0
--> 1
valeur 17 ?
=======================================================================
C'est pas très joli... Quelqu'un a la solution pour supprimer cette ligne blanche?
Merci,
Sergio.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Manifestement, le copier-coller n'est pas au point : il a fait sauter l'indentation dans le code et la ligne blanche dans le résultat. Il fallait lire :
#!/bin/ksh
clear
Colonne=50
Ligne=0
while [ 0 -eq 0 ];do
echo $Ligne|awk '{printf "valeur %3d ? ",$1}'
read x
y=`expr $x + 1`
tput cup $Ligne $Colonne
echo " --> "$y
Ligne=`expr $Ligne + 1`
done
et
=======================================================================
valeur 4 ? 0 --> 1
valeur 5 ? 0 --> 1
valeur 6 ? 0 --> 1
valeur 7 ? 0 --> 1
valeur 8 ? 0 --> 1
valeur 9 ? 0 --> 1
valeur 10 ? 0 --> 1
valeur 11 ? 0 --> 1
valeur 12 ? 0 --> 1
valeur 13 ? 0 --> 1
valeur 14 ? 0 --> 1
valeur 15 ? 0 --> 1
valeur 16 ? 0 --> 1
valeur 17 ?
=======================================================================
Désolé,
Sergio.
#!/bin/ksh
clear
Colonne=50
Ligne=0
while [ 0 -eq 0 ];do
echo $Ligne|awk '{printf "valeur %3d ? ",$1}'
read x
y=`expr $x + 1`
tput cup $Ligne $Colonne
echo " --> "$y
Ligne=`expr $Ligne + 1`
done
et
=======================================================================
valeur 4 ? 0 --> 1
valeur 5 ? 0 --> 1
valeur 6 ? 0 --> 1
valeur 7 ? 0 --> 1
valeur 8 ? 0 --> 1
valeur 9 ? 0 --> 1
valeur 10 ? 0 --> 1
valeur 11 ? 0 --> 1
valeur 12 ? 0 --> 1
valeur 13 ? 0 --> 1
valeur 14 ? 0 --> 1
valeur 15 ? 0 --> 1
valeur 16 ? 0 --> 1
valeur 17 ?
=======================================================================
Désolé,
Sergio.
dubcek
Messages postés
18755
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
14 novembre 2024
5 621
28 nov. 2008 à 13:55
28 nov. 2008 à 13:55
et avec
tput cursor_up
le curseur remonte d'une ligne ?
tput cursor_up
le curseur remonte d'une ligne ?
Merci pour ta réponse, mais je me suis mal fait comprendre. Le retour à la ligne après le echo, je maitrise : comme l'option -n ne marche pas, je fais un printf avec awk sans mettre \n (bon, il y a peut être plus simple...). Mon problème ne vient donc pas de l'echo mais du read : pour que la réponse soit prise en compte, il faut taper return, et c'est ce return qui déclenche le saut de ligne que je voudrais éviter.
Voici un exemple :
#!/bin/ksh
echo 1|awk '{printf "valeur %3d ? ",$1}'
read x
y=`expr $x + 1`
echo " --> "$y
je voudrais que tout s'écrive sur la même ligne, même le $y.
Merci de ton aide,
Sergio.
Voici un exemple :
#!/bin/ksh
echo 1|awk '{printf "valeur %3d ? ",$1}'
read x
y=`expr $x + 1`
echo " --> "$y
je voudrais que tout s'écrive sur la même ligne, même le $y.
Merci de ton aide,
Sergio.