Je peux définir une fonction comme :
myfunction () { ls -R "$1" ; }
Et puis
myfunction .
fonctionne.
Mais si je le fais
echo "myfunction ." | sh
echo "myfunction ." | bash
les messages sont :
sh: myfunction: not found
bash: line 1: myfunction: command not found
Pourquoi ? Et comment puis-je appeler une fonction qui vient d'une chaîne de caractères si ce n'est en la passant dans sh ou bash ?
Je sais qu'il y a cette commande source
mais je ne sais pas quand je dois utiliser l'option source
et quand sh
o bash
. De plus, je ne peux pas passer par le canal source
. Pour ajouter à la confusion, il y a cette commande .
qui ne semble pas avoir de rapport avec le "." qui signifie "répertoire actuel".