#1 Le 22/11/2017, à 08:52
- ar barzh paour
[Résolu] meilleure solution de choix commande bash
je cherche à obtenir ce résultat sur un terminal
XXXXXXXXX ....................
XXXXXXXXX .................... doit être de longueur 30
#!/bin/bash
max=30
chaine="XXXXXXXXX"
chaine1=$chaine" ."
while [[ ${#chaine1} -lt $max ]]
do
chaine1=$chaine1"."
done
echo "solution 1 avec while -lt"
echo ${chaine1}
chaine2="$chaine ......................................................................."
echo 'solution 2 avec ${ch ......}'
echo ${chaine2:0:$max}
chaine3="$chaine "$(cat $0 | tr -dc '.' | fold -w $max | head -n 1)
echo "solution 3 avec tr fold head"
echo ${chaine3:0:$max}
read g
le résultat
solution 1 avec while -lt
XXXXXXXXX ....................
solution 2 avec ${ch ......}
XXXXXXXXX ....................
solution 3 avec tr fold head
XXXXXXXXX ....................
quelle est la meilleure solution ?
ou une autre .....
Dernière modification par ar barzh paour (Le 23/11/2017, à 10:19)
PC : B760M DS3H DDR4, 12th Gen Intel(R) Core(TM) i3-12100, RAM DDR4 8GiB -2400 Ubuntu 20.04, 22.04, 24.04 (en test )
Portable1 : ThinkPad P50 I7-6820HQ, 16G0 Ram Ubuntu 22.04 Ubuntu 24.04 , W10-PRO( en voyage )
Portable2 : T5750 @ 2.00GHz RAM 1GiB DDR2 667 Mhz Ubuntu 20.04 ( batterie HS )
stourm a ran war bep tachenn (Angela Duval) ( Je combats sur tous les fronts )
Hors ligne
#2 Le 22/11/2017, à 09:02
- Watael
Re : [Résolu] meilleure solution de choix commande bash
salut,
la deuxième sans hésiter !
Dernière modification par Watael (Le 22/11/2017, à 09:04)
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#3 Le 22/11/2017, à 12:19
- ar barzh paour
Re : [Résolu] meilleure solution de choix commande bash
c'était en relation avec le post 10 de
https://forum.ubuntu-fr.org/viewtopic.php?id=2017783
post 10
(en fait max est variable c'est pour ça que j'hésitais sur la solution 2)
PC : B760M DS3H DDR4, 12th Gen Intel(R) Core(TM) i3-12100, RAM DDR4 8GiB -2400 Ubuntu 20.04, 22.04, 24.04 (en test )
Portable1 : ThinkPad P50 I7-6820HQ, 16G0 Ram Ubuntu 22.04 Ubuntu 24.04 , W10-PRO( en voyage )
Portable2 : T5750 @ 2.00GHz RAM 1GiB DDR2 667 Mhz Ubuntu 20.04 ( batterie HS )
stourm a ran war bep tachenn (Angela Duval) ( Je combats sur tous les fronts )
Hors ligne
#4 Le 22/11/2017, à 14:08
- Watael
Re : [Résolu] meilleure solution de choix commande bash
à quelques rares exceptions, il vaut mieux privilégier les solutions full shell.
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#5 Le 23/11/2017, à 08:37
- ar barzh paour
Re : [Résolu] meilleure solution de choix commande bash
"full shell ?" qu'est-ce que c'est ?
la solution 2 a comme inconvénient (tout petit inconvénient) de ne pas fonctionner correctement si on mettait max à une valeur plus grande (dans le post 1 pour l'exemple j'ai indiqué max=30 , j'aurais du faire autrement )
( en fait c'est celle je j'utilise quand même )
Dernière modification par ar barzh paour (Le 23/11/2017, à 08:38)
PC : B760M DS3H DDR4, 12th Gen Intel(R) Core(TM) i3-12100, RAM DDR4 8GiB -2400 Ubuntu 20.04, 22.04, 24.04 (en test )
Portable1 : ThinkPad P50 I7-6820HQ, 16G0 Ram Ubuntu 22.04 Ubuntu 24.04 , W10-PRO( en voyage )
Portable2 : T5750 @ 2.00GHz RAM 1GiB DDR2 667 Mhz Ubuntu 20.04 ( batterie HS )
stourm a ran war bep tachenn (Angela Duval) ( Je combats sur tous les fronts )
Hors ligne
#6 Le 23/11/2017, à 09:17
- pingouinux
Re : [Résolu] meilleure solution de choix commande bash
Bonjour,
Autre idée, mais pas plus simple :
lon=${#chaine}
echo -n "$chaine "
while ((++lon<max));do echo -n "."; done; echo
Attention, si chaine contient des espaces, surtout si elles sont consécutives, n'oublie pas les " " (par exemple, echo "${chaine1}").
Hors ligne
#7 Le 23/11/2017, à 10:14
- krodelabestiole
Re : [Résolu] meilleure solution de choix commande bash
ar barzh paour tu peux donner un titre plus évocateur à ton sujet stp ?
là on sait pas du tout de quoi il s'agit donc tout le monde clique dessus même sans les compétences...
nouveau forum ubuntu-fr on en parle là : refonte du site / nouveau design
profil - sujets récurrents - sources du site
Hors ligne
#8 Le 23/11/2017, à 10:20
- ar barzh paour
Re : [Résolu] meilleure solution de choix commande bash
@ krodelabestiole
excuse , tu as raison , c'est fait
(mais c'est quand même dans "Truc, astuces et scripts utiles" )
Dernière modification par ar barzh paour (Le 23/11/2017, à 10:27)
PC : B760M DS3H DDR4, 12th Gen Intel(R) Core(TM) i3-12100, RAM DDR4 8GiB -2400 Ubuntu 20.04, 22.04, 24.04 (en test )
Portable1 : ThinkPad P50 I7-6820HQ, 16G0 Ram Ubuntu 22.04 Ubuntu 24.04 , W10-PRO( en voyage )
Portable2 : T5750 @ 2.00GHz RAM 1GiB DDR2 667 Mhz Ubuntu 20.04 ( batterie HS )
stourm a ran war bep tachenn (Angela Duval) ( Je combats sur tous les fronts )
Hors ligne
#9 Le 23/11/2017, à 10:36
- credenhill
Re : [Résolu] meilleure solution de choix commande bash
hello
$ max=30; chaine="XXXXXXXXX"
$ printf -v var "%*s" $((${max}-${#chaine})); echo "${chaine}${var// /.}"
XXXXXXXXX.....................
$ max=50
$ printf -v var "%*s" $((${max}-${#chaine})); echo "${chaine}${var// /.}"
XXXXXXXXX.........................................
Hors ligne
#10 Le 25/11/2017, à 20:50
- ar barzh paour
Re : [Résolu] meilleure solution de choix commande bash
@credenhill
pas mal !! et même si j'avais pensé à printf , je n'aurais pas trouvé ce codage !!!!!
PC : B760M DS3H DDR4, 12th Gen Intel(R) Core(TM) i3-12100, RAM DDR4 8GiB -2400 Ubuntu 20.04, 22.04, 24.04 (en test )
Portable1 : ThinkPad P50 I7-6820HQ, 16G0 Ram Ubuntu 22.04 Ubuntu 24.04 , W10-PRO( en voyage )
Portable2 : T5750 @ 2.00GHz RAM 1GiB DDR2 667 Mhz Ubuntu 20.04 ( batterie HS )
stourm a ran war bep tachenn (Angela Duval) ( Je combats sur tous les fronts )
Hors ligne