Est-il possible de créer quelque chose d'analogique à une fonction anonyme dont la valeur peut être attribuée à un élément de tableau et ensuite appelée? Je ne trouve pas de moyen de le faire dans un script bash mais peut-être qu'il y a une solution de contournement.
Réponses
Trop de publicités?Il est possible; J'ai écrit une bibliothèque pour faire exactement cela, même si c'est un projet très étrange. Le code source est disponible sur http://github.com/spencertipping/bash-lambda. Utilisation de cette bibliothèque :
$ my_array=()
$ my_array[0]=$(fn x 'echo $((x + 1))')
$ my_array[1]=$(fn x 'echo $((x + 2))')
$ ${my_array[0]} 5
6
$ ${my_array[1]} 5
7
$
Le truc est d'avoir la fonction fn
créer un fichier contenant le corps de la fonction, exécuter chmod +x
sur ce fichier, puis retourner son nom. Cela provoque l'accumulation de fichiers indésirables, c'est pourquoi la bibliothèque implémente également un garbage collector asynchrone mark/sweep.
- Réponses précédentes
- Plus de réponses