Bash - Assigner la valeur d'une fonction

Résolu
artagon7 Messages postés 417 Date d'inscription   Statut Membre Dernière intervention   -  
 yesyes -
Bonjour,

Je voulais savoir s'il est possible, sous Bash, d'assigner a une variable la valeur de retour d'une fonction. Voici mon script :

#! /bin/bash

function Retour()
{
nombre=3
carre=$(( $nombre * $nombre))
return $carre
}

y=$Retour;

echo -e "\n\n\t\tLe carre de $nombre est $y\n\n";


Je l'ai essaye mais ca ne fonctionne pas.

Merci,
A voir également:

5 réponses

jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 896
 
Salut,

Essaie plutôt :
y=$(Retour)
;-))
3
artagon7 Messages postés 417 Date d'inscription   Statut Membre Dernière intervention   7
 
Salut jipicy,

J'ai fait ce que tu as propose mais ca ne fonctionne pas. :-(

Merci
0
lami20j Messages postés 21331 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 570
 
Salut,
#! /bin/bash

nombre="3";
function Retour()
{
  carre=$(( $nombre * $nombre))
  echo $carre
}

y=$(Retour);

echo -e "\n\n\t\tLe carre de $nombre est $y\n\n";
0
lami20j Messages postés 21331 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 570
 
En fait pas besoin de la variable carre
#! /bin/bash

nombre=3
function Retour()
{
  echo $(( $nombre * $nombre))
}

y=$(Retour);
echo -e "\n\n\t\tLe carre de $nombre est $y\n\n";
0

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

Posez votre question
artagon7 Messages postés 417 Date d'inscription   Statut Membre Dernière intervention   7
 
Resalut lami20j,

Ta suggestion fonctionne. J'ai deux commentaires.

1) Je trouve ca bizarre que l'on peut utiliser les guillemets pour assigner 3 a nombre. Tu consideres nombre, dans ce cas, comme etant un caractere et non un nombre. J'aime mieux ta deuxieme facon de faire.

2) tu utilises echo pour retourner la valeur de la fonction. A quoi sert dans ce cas la fonction return? Je vais lire a ce sujet.

Merci de ton aide :-)
0
yesyes
 
la commande interner return quitte la fonction et retourne la valeur numérique uniquement comme code d'erreur. Dans ton programme principal (main), elle peut être lue dans la variable magique $? .

Par contre, tous les echo de la fonction serons affectes au retour.
0