Envoi paramètre a fonction dans Shell

Fermé
juliencolin54 Messages postés 217 Date d'inscription dimanche 22 juillet 2012 Statut Membre Dernière intervention 1 octobre 2013 - 3 août 2012 à 22:24
dubcek Messages postés 18764 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 9 février 2025 - 4 août 2012 à 12:49
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 ! :)


A voir également:

3 réponses

dubcek Messages postés 18764 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 9 février 2025 5 624
Modifié par dubcek le 4/08/2012 à 08:12
hello
oui c'est possible
$ triple() { echo $((3*$1)) ; } 
$ triple 9 
27 
$ triple 33 
99 
$ triple 1 
3 
$
1
dubcek Messages postés 18764 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 9 février 2025 5 624
4 août 2012 à 12:49
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
juliencolin54 Messages postés 217 Date d'inscription dimanche 22 juillet 2012 Statut Membre Dernière intervention 1 octobre 2013 55
4 août 2012 à 12:30
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