Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#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...

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" lol)

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