Os paso tres pruebecitas curiosas: Si 'Prueba1' funciona:
# Prueba1 prukk() { echo hhhhhhhhhhhh | cat cat <<FIN aaa bbb FIN } export -f prukk echo 'prukk' | sh Y 'Prueba2' también funciona: # Prueba2 prukk() { cat <<FIN | cat aaa bbb FIN } prukk ¿ Porque 'Prueba3' no solo no funciona sino que provoca un error de sintaxis en la función exportada ? # Prueba3 prukk() { cat <<FIN | cat aaa bbb FIN } export -f prukk echo 'prukk' | sh :-O :-O :-O sh: prukk: line 5: syntax error near unexpected token `|' sh: prukk: line 5: ` | cat' sh: error importing function definition for `prukk' sh: prukk: command not found :-O :-O :-O No le veo el sentido. Es como si bash tuviera implementada su gramática en dos lugares distintos y fueran diferentes. Me ha ocurrido esto mientras intentaba ejecutar una función con sudo. Al no ser un comando se me ocurrió exportar la función y ejecutarla desde una subshell con sudo. (echo 'prukk' | sudo sh) pero me da un error que no tiene nada que ver con sudo. Quizás exista otra forma de conseguir lo que quiero pero lo que ahora me tiene comida la moral es porque una función importada da un error de sintaxis que no existía en la función exportada siendo logicamente idénticas. -- Un saludo Antonio Castro /\ /\ Ciberdroide Informática \\W// << http://www.ciberdroide.com >> _|0 0|_ +-oOOO-(___o___)-OOOo---------------------+ | . . . . U U . Antonio Castro Snurmacher | | . . . . . . . [EMAIL PROTECTED] | +()()()---------()()()--------------------+