Envoi paramètre a fonction dans Shell

juliencolin54 Messages postés 238 Statut Membre -  
dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   -
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. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 659
     
    hello
    oui c'est possible
    $ triple() { echo $((3*$1)) ; } 
    $ triple 9 
    27 
    $ triple 33 
    99 
    $ triple 1 
    3 
    $
    1
  2. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 659
     
    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
  3. juliencolin54 Messages postés 238 Statut Membre 55
     
    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