Envoi paramètre a fonction dans Shell
juliencolin54
Messages postés
238
Statut
Membre
-
dubcek Messages postés 19021 Statut Contributeur -
dubcek Messages postés 19021 Statut Contributeur -
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 ! :)
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:
- Envoi paramètre a fonction dans Shell
- Fonction si et - Guide
- Classic shell - Télécharger - Personnalisation
- Remettre parametre usine pc - Guide
- Parametre dns - Guide
- Parametre windows - Guide
3 réponses
hello
oui c'est possible
oui c'est possible
$ triple() { echo $((3*$1)) ; }
$ triple 9
27
$ triple 33
99
$ triple 1
3
$
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
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
$
En fait ma fonction est programmée en C.
Pour un triple cela donnerait :
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 :
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)