Bash - Assigner la valeur d'une fonction

Résolu/Fermé
artagon7 Messages postés 417 Date d'inscription dimanche 6 novembre 2005 Statut Membre Dernière intervention 12 novembre 2024 - 25 déc. 2007 à 23:07
 yesyes - 13 janv. 2009 à 11:51
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,

5 réponses

jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 897
25 déc. 2007 à 23:11
Salut,

Essaie plutôt :
y=$(Retour)
;-))
3
artagon7 Messages postés 417 Date d'inscription dimanche 6 novembre 2005 Statut Membre Dernière intervention 12 novembre 2024 7
25 déc. 2007 à 23:34
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 jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 569
25 déc. 2007 à 23:37
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 jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 569
25 déc. 2007 à 23:43
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 dimanche 6 novembre 2005 Statut Membre Dernière intervention 12 novembre 2024 7
26 déc. 2007 à 00:08
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
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