Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
780 connectés 

  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  Récupérer le retour d'une commande et le mettre dans une variable

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Récupérer le retour d'une commande et le mettre dans une variable

n°670860
triso1007
Posté le 01-05-2005 à 16:35:42  profilanswer
 

Bonjour à tous.  :hello:  
Ca fait un moment que je cherche à récupérer la valeur que retourne une fonction dans un script et la placer dans une variable mais je n'y arrive pas!  :pt1cable:  Si quelqu'un peut m'aider. Je suis sur que c'est tout simple en fait.
Par exemple: je fais :  
read x
find -type d -name $x
qui va me chercher le chemin d'un répertoire, et là je voudrai mettre ce chemin dans une variable! Voilà merci à tous :bounce:  

mood
Publicité
Posté le 01-05-2005 à 16:35:42  profilanswer
 

n°670863
Spy-master
from Belgium
Posté le 01-05-2005 à 16:37:53  profilanswer
 

echo $?
 :jap:

n°670868
triso1007
Posté le 01-05-2005 à 16:44:18  profilanswer
 

mici mais je le mets où ce echo $? avec un | ou avec un =?

n°670875
Pillow
'cos the trees won't talk
Posté le 01-05-2005 à 17:02:55  profilanswer
 

La valeur de retour (0=succès etc) et l'output de la commande ne sont pas la même chose.
 
$? contient la valeur de retour de la dernière commande executée.
 
Si tu veux l'output:

ta_variable=$(ta_commande)

ou

ta_variable=`ta_commande`

(mais tu ne peux pas imbriquer les appels à plusieurs commandes avec cette seconde solution).

n°670882
triso1007
Posté le 01-05-2005 à 17:24:02  profilanswer
 

Mici pillow
Pour voir si ça marchait, j'ai tapé ça:
read x
y=$(find -type d -name $x)
echo $y
 
Mais..... ça marche pas, ça affiche ben... rien! Comme tu le dis pillow je veux l'output de la commande et non la valeur de retour.  
Dans mon exemple je veux réutiliser le chemin trouvé par le find avec un cd donc la suite de mon code sera:
cd $y
Peut-être qu'il y a moyen sans passer par une variable, non?

n°670895
Pillow
'cos the trees won't talk
Posté le 01-05-2005 à 17:50:14  profilanswer
 

triso1007 a écrit :

Mici pillow
Pour voir si ça marchait, j'ai tapé ça:
read x
y=$(find -type d -name $x)
echo $y
 
Mais..... ça marche pas, ça affiche ben... rien!

Bah ça veut dire que ton find ne trouve rien [:spamafote]  
 
Tu utilises un '*', un '?' ou des espaces dans ton read?  
Il faut rajouter des guillemets autour de $x.
 

Citation :

Dans mon exemple je veux réutiliser le chemin trouvé par le find avec un cd donc la suite de mon code sera:
cd $y

Il faut tester que y n'est pas vide (ou que le cd marche), il faut des guillemets, et il faut que tu gères le cas où find donne plusieurs résultats.
 

Citation :

Peut-être qu'il y a moyen sans passer par une variable, non?

Tu pourrais faire cd "$(find blabla)", mais tu ne pourrais pas vérifier le résultat de find et ça, c'est une très mauvaise idée ;)  
 

n°670897
triso1007
Posté le 01-05-2005 à 17:59:45  profilanswer
 

ben ds mon read j'ai tapé HOME et si je mets le find tout seul ça marche, il affiche le chemin! Par contre je suis sous cygwin, ça peut jouer?

n°670903
triso1007
Posté le 01-05-2005 à 18:10:21  profilanswer
 

ah j'ai compris en fait c'est simple c'est que sous linux les majuscules ça change tout! En fait ça marche nickel merci pillow


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  Récupérer le retour d'une commande et le mettre dans une variable

 

Sujets relatifs
XMMS - comment récuperer sa playslist ?Coment recuperer une vidéo sur une page WEB
Lecteur News Binaires avec interface HTML ou en ligne de commande ?Commande différence entre "./" et "sh" ( resolue )
[rar] pb commande updateQuestion commande Unix ( Résolue )
[ NAGIOS ] Votre retour d'expérience[bash] Compte le nombre de caractères ds 1 variable ?
CUPS et ligne de commandeLa commande TOP
Plus de sujets relatifs à : Récupérer le retour d'une commande et le mettre dans une variable


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR