Suppression des zeros non significatifs d'une variable [Résolu/Fermé]

Signaler
Messages postés
56
Date d'inscription
mercredi 31 mars 2004
Statut
Membre
Dernière intervention
9 avril 2019
-
Messages postés
213
Date d'inscription
jeudi 13 décembre 2018
Statut
Membre
Dernière intervention
27 septembre 2019
-
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)

5 réponses

Messages postés
29231
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
2 juin 2020
6 861
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
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 79140 internautes nous ont dit merci ce mois-ci

Messages postés
56
Date d'inscription
mercredi 31 mars 2004
Statut
Membre
Dernière intervention
9 avril 2019
2
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...
Messages postés
18123
Date d'inscription
lundi 15 janvier 2007
Statut
Non membre
Dernière intervention
2 juin 2020
4 851
$ cat test.sh
#!/bin/bash
shopt -s extglob
var=0000001253; echo ${var##*(0)}
$ test.sh
1253
$
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 79140 internautes nous ont dit merci ce mois-ci

Messages postés
18123
Date d'inscription
lundi 15 janvier 2007
Statut
Non membre
Dernière intervention
2 juin 2020
4 851
hello
ne pas exécuter le script par:
sh test.sh
Messages postés
56
Date d'inscription
mercredi 31 mars 2004
Statut
Membre
Dernière intervention
9 avril 2019
2
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...
Messages postés
56
Date d'inscription
mercredi 31 mars 2004
Statut
Membre
Dernière intervention
9 avril 2019
2
Bonjour,

Ouaip ! Ca marche aussi avec shopt. Merci bien .Je sais pas ce c'est que ce shopt. Je vais me renseigner.
Messages postés
18123
Date d'inscription
lundi 15 janvier 2007
Statut
Non membre
Dernière intervention
2 juin 2020
4 851
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. ...
Messages postés
213
Date d'inscription
jeudi 13 décembre 2018
Statut
Membre
Dernière intervention
27 septembre 2019
14
salut,

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