Précédent   Forum des professionnels en informatique > Systèmes > Linux > Applications > Shell
Shell Vos questions sur l'utilisation des commandes shell
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
Vieux 22/01/2010, 11h40   #1
Invité régulier
 
Inscription : novembre 2009
Messages : 16
Détails du profil
Informations personnelles :
Âge : 25

Informations forums :
Inscription : novembre 2009
Messages : 16
Points : 7
Points : 7
Par défaut Petit soucis de variable

Bonjour,

Je suis plutot novice en script shell, voici mon code:

Code :
1
2
3
4
5
6
7
#!/bin/bash
atlas=p000p004
 
echo $atlas;
echo $atlas | cut -b8
atlas2=$(($atlas | cut -b8))
echo $atlas2
En gros, j ai une variable (atlas=p000p004), et je souhaite recuperer dans la variable atlas2 le dernier chiffre de $atlas.

En faisant j obtiens bien 4, mais je n arrive pas a assigner cette valeur a atlas2. Le code
Code :
atlas2=$(($atlas | cut -b8))
me renvoie 0.

Merci!
mapotam est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/01/2010, 12h05   #2
Expert Confirmé
 
Avatar de N_BaH
 
Inscription : février 2008
Messages : 1 896
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 1 896
Points : 3 676
Points : 3 676
oula !

- les doubles parenthèses servent pour l'évaluation arithmétique.
- il faudrait au moins un echo pour passer la variable au cut par le pipe.

Enfin, si tu veux récupérer des caractères d'une variable, il existe les Remplacements de paramètres voir Extraction de sous-chaînes
donc :
Code :
1
2
atlas=p000p004
atlas2=${atlas:$((${#atlas}-1)):1}
ce qui signifie
atlas2=${atlas:$((${#atlas}-1)):1} -> atlas2=${atlas:début:longueur}
$((${#atlas}-1)) -> compte du nombre de caractère de $atlas moins 1 (car ce n'est pas un paramètre positionnel)
N_BaH est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/01/2010, 12h10   #3
Invité régulier
 
Inscription : novembre 2009
Messages : 16
Détails du profil
Informations personnelles :
Âge : 25

Informations forums :
Inscription : novembre 2009
Messages : 16
Points : 7
Points : 7
Tres bien, et merci pour les explications, ca pourra m aider pour le futur
mapotam est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/01/2010, 12h15   #4
Expert Confirmé Sénior
 
Homme Laurent Willems
Expert Stop/Start
Inscription : septembre 2002
Messages : 2 472
Détails du profil
Informations personnelles :
Nom : Homme Laurent Willems
Âge : 33
Localisation : Belgique

Informations professionnelles :
Activité : Expert Stop/Start

Informations forums :
Inscription : septembre 2002
Messages : 2 472
Points : 4 097
Points : 4 097
Salut,

Code :
1
2
3

atlas2=$(echo $atlas | cut -b8)
__________________
Alea Jacta Test!
Mygale1978 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +1. Il est actuellement 12h10.


 
 
 
 
Partenaires

Hébergement Web