Envoi paramètre a fonction dans Shell

Bonjour,
Le titre en dit déjà grandement !
Imaginons une simple fonction qui retourne le triple d'un int donné;
Est-ce qu'il serait alors possible dans le shell d'appeler cette fonction en lui envoyant le paramètre "3" pour qu'elle nous renvoie donc 9 ?

Merci d'avance ! :)

3 réponses

  1. Contributeur
    hello
    oui c'est possible
    $ triple() { echo $((3*$1)) ; } 
    $ triple 9 
    27 
    $ triple 33 
    99 
    $ triple 1 
    3 
    $
    1
    1. Contributeur
      non, on ne peut pas appeler une fonction C en shell.
      Mais si on compile un main() on peut l'exécuter dans le shell
      $ cat  triple.c
      #include <stdio.h>
      #include <stdlib.h>
      
      main(int argc, char *argv[])
      {
      	printf("%d\n", 3*atoi(argv[1]));
      }
      $ 
      $ make triple
      cc     triple.c   -o triple
      $ ./triple 33
      99
      $ 
      $ x=$(./triple 33)
      $ echo $x
      99
      $ 
      1
      1. En fait ma fonction est programmée en C.

        Pour un triple cela donnerait :
        #include <stdio.h>
        #include <stdlib.h>
        
        int triple(int n)
        {
          return 3*n
        }

        Donc est ce que je peux appeler cette fonction depuis le shell pour lui envoyer un paramètre sans l'avoir codé avant dans le shell comme tu l'a fais ?
        Imaginons que dans le shell je tape seulement :
        triple(3)
        0