Bash - Assigner la valeur d'une fonction

Résolu
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,
Configuration: Linux
Konqueror 3.5

5 réponses

  1. Modérateur
    Salut,

    Essaie plutôt :
    y=$(Retour)
    ;-))
    3
    1. Salut jipicy,

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

      Merci
      0
      1. Modérateur
        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
        1. Modérateur
          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
          1. 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
            1. 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