Aligner avec printf
Résolu
bob737
Messages postés
144
Date d'inscription
Statut
Membre
Dernière intervention
-
bob737 Messages postés 144 Date d'inscription Statut Membre Dernière intervention -
bob737 Messages postés 144 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
j'ai une fonction "reponse" qui renvoie OK ou KO en fonction du code retour d'une commande:
puis
==> j'obtiens
J'ai plusieurs commandes à tester et j'aimerais que tous les OK soient aligner.
test de la commande machintruc1 : ............................OK
test de la commande bidule..........................................OK
test de la commande de bidultrucmachinchouette ...OK
Je sais que printf permet de la faire mais je n'arrive pas trouver la bonne syntaxe.
Merci de votre aide.
@+
j'ai une fonction "reponse" qui renvoie OK ou KO en fonction du code retour d'une commande:
function reponse { if [ "$?" -eq 0 ] then printf "\033[1;32;40mOK\033[0m\n" else printf "\033[1;31;40mKO\033[0m\n" echo -en "\033[0mContinue ? Y/N : " read answer case ${answer:0:1} in y|Y ) true ;; *) exit ;; esac fi }
puis
echo -en "test de la commande :"
<Ma commande>...
reponse
==> j'obtiens
test de la commande : OK ou KO
J'ai plusieurs commandes à tester et j'aimerais que tous les OK soient aligner.
test de la commande machintruc1 : ............................OK
test de la commande bidule..........................................OK
test de la commande de bidultrucmachinchouette ...OK
Je sais que printf permet de la faire mais je n'arrive pas trouver la bonne syntaxe.
Merci de votre aide.
@+
A voir également:
- Aligner avec printf
- Comment aligner des chiffres sur word - Guide
- Comment aligner un sommaire sur word ✓ - Forum Bureautique
- Aligner les têtes d'impression canon pixma ✓ - Forum Imprimante
- Aligner tete impression canon mg3650 - Forum Imprimante
- Alignement chiffres à droite table des matières - Forum Word
5 réponses
autre méthode
$ cat code
#!/bin/bash
t1="test de la commande machintruc1 :"
t2="test de la commande bidule :"
t3="test de la commande bidultrucmachinchouette :"
status="OK"
printf -v x "%.0s." {1..50}; printf "%s%s%s\n" "$t1" ${x:${#t1}} $status
status="KO"
printf -v x "%.0s." {1..50}; printf "%s%s%s\n" "$t2" ${x:${#t2}} $status
status="OK"
printf -v x "%.0s." {1..50}; printf "%s%s%s\n" "$t3" ${x:${#t3}} $status
$
$ ./code
test de la commande machintruc1 :.................OK
test de la commande bidule :......................KO
test de la commande bidultrucmachinchouette :.....OK
$ texte="test de la commande pouicpouic"; echo -en "$texte"; printf '.%0.s' $(seq 1 $((50-${#texte}))); printf '%s\n' OK
test de la commande pouicpouic....................OK
$ texte="test de la commande milk"; echo -en "$texte"; printf '.%0.s' $(seq 1 $((50-${#texte}))); printf '%s\n' OK
test de la commande milk..........................OK
je ne saurais pas expliquer
'%0.s'. si quelqu'un sait...
pour l'emploi de
seq, par contre, c'est parce qu'il n'y a pas de développements de variables dans un Développement d'accolades.
hello
code simple, mais pas recommandé de le rediriger dans un fichier
je ne saurais pas expliquer '%0.s'. si quelqu'un sait...
http://manpagesfr.free.fr/man/man3/printf.3.html
Une précision éventuelle, sous la forme d'un point (« . ») suivi par un nombre. ..... le nombre maximum de caractères à imprimer depuis une chaîne pour les conversions s et S.
printf va s'exécuter N fois sans afficher les paramètres mais en affichant le texte hors format
code simple, mais pas recommandé de le rediriger dans un fichier
$ cat code
t1="test de la commande machintruc1 :"
t2="test de la commande bidule :"
t3="test de la commande bidultrucmachinchouette :"
status="OK"
printf "%.0s." {1..50}; printf "%s\r%s\n" $status "$t1"
status="KO"
printf "%.0s." {1..50}; printf "%s\r%s\n" $status "$t2"
status="OK"
printf "%.0s." {1..50}; printf "%s\r%s\n" $status "$t3"
$ ./code
test de la commande machintruc1 :.................OK
test de la commande bidule :......................KO
test de la commande bidultrucmachinchouette :.....OK
je ne saurais pas expliquer '%0.s'. si quelqu'un sait...
http://manpagesfr.free.fr/man/man3/printf.3.html
Une précision éventuelle, sous la forme d'un point (« . ») suivi par un nombre. ..... le nombre maximum de caractères à imprimer depuis une chaîne pour les conversions s et S.
printf va s'exécuter N fois sans afficher les paramètres mais en affichant le texte hors format
$ printf " hello%.0s world" {1..5}; echo
hello world hello world hello world hello world hello world
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjour,
Merci pour votre réponse. CE code est presque ce que je souhaite mais sauf incompréhension de ma part, il y a un point que ne convient pas à je que je souhaite faire.
ici, la réponse est donnée APRES l'exécution de la commande. De mon côté j'aimerais que l'utilisateur voit le temps d'exécution de sa requête soit chronologiquement:
test de la commande machintruc1 : ....................
lancement la commande
récupération du statut OK ou KO
enfin:
test de la commande machintruc1 : .................... OK ou KO
Merci pour votre réponse. CE code est presque ce que je souhaite mais sauf incompréhension de ma part, il y a un point que ne convient pas à je que je souhaite faire.
ici, la réponse est donnée APRES l'exécution de la commande. De mon côté j'aimerais que l'utilisateur voit le temps d'exécution de sa requête soit chronologiquement:
test de la commande machintruc1 : ....................
lancement la commande
récupération du statut OK ou KO
enfin:
test de la commande machintruc1 : .................... OK ou KO
merci, c'est presque ça.
Pour plus de lisibilité, j'aimerais garder les .... avant le OK ou KO et donc remplacer les blancs par des "."
un idée? :-)
De plus, l'idéal serait que comme le shell d'origine, le texte soit affiché AVANT le résultat OK ou KO.