Suppression des zeros non significatifs d'une variable

Résolu
tbeghain Messages postés 58 Date d'inscription   Statut Membre Dernière intervention   -  
lEprofSonDkon Messages postés 211 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Je rebondis sur une demande identique faite il y a longtemps. J'ai le même problème (je veux supprimer les 0 non significatifs devant une variable alphanumérique qui ne contient que des chiffres).
J'ai repris exactement l'exemple qui avait été donné à l'époque
Si j'applique la solution préconisée, directement à partir de la ligne de commande, ça fonctionne

>var=0000001253; echo ${var##*(0)}
1253


Par contre, dès le moment où je le mets dans un script shell, je n'ai pas du tout le résultat attendu :
>cat test.sh


#!/bin/bash
var=0000001253; echo ${var##*(0)}


>test.sh
0000001253


Bon, je suis en Linux CentOS7. Ça doit être tout con. Peut être il manque quelque chose....

Merci pour vos réponses

Configuration: CentOS Linux release 7.5.1804 (Core)
A voir également:

5 réponses

dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 636
 
$ cat test.sh
#!/bin/bash
shopt -s extglob
var=0000001253; echo ${var##*(0)}
$ test.sh
1253
$
2
mamiemando Messages postés 33766 Date d'inscription   Statut Modérateur Dernière intervention   7 878
 
Bonjour,

Effectivement ça ne marche pas. Tu peux supprimer les zéros de gauche avec
sed
:

#!/bin/bash 
var=0000001253
var=$(echo $var | sed -e "s/^0*//")
echo $var


Bonne chance
1
tbeghain Messages postés 58 Date d'inscription   Statut Membre Dernière intervention   3
 
Bonjour,

Oui, ça, ça fonctionne. Merci bien. Mais n'empêche que j'aimerais comprendre ce qui fait que la commande directe ne fonctionne pas dans le script...
0
dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 636
 
hello
ne pas exécuter le script par:
sh test.sh
0
tbeghain Messages postés 58 Date d'inscription   Statut Membre Dernière intervention   3
 
Bonjour,

Euh !!! Mais comment exécuter le script alors ? De toute façon, je ne l'exécutais pas avec sh test.sh, mais test.sh tout court...
0
tbeghain Messages postés 58 Date d'inscription   Statut Membre Dernière intervention   3
 
Bonjour,

Ouaip ! Ca marche aussi avec shopt. Merci bien .Je sais pas ce c'est que ce shopt. Je vais me renseigner.
0
dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 636
 
dans la page man de bash, voir
Développement des noms de fichiers
....
Si l'option extglob du shell option est activée par la commande shopt plusieurs opérateurs de correspondance étendue sont reconnus. ...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
lEprofSonDkon Messages postés 211 Date d'inscription   Statut Membre Dernière intervention   13
 
salut,

en bash :
echo $((10#$var))
0