¿Puede un script de shell establecer variables de entorno del shell que llama?


Estoy tratando de escribir un script de shell que, cuando se ejecute, establecerá algunas variables de entorno que permanecerán establecidas en el shell de la persona que llama.

setenv FOO foo

En csh / tcsh, o

export FOO=foo

En sh/bash solo se establece durante la ejecución del script.

Ya sé que

source myscript

Ejecutará los comandos del script en lugar de lanzar un nuevo shell, y eso puede resultar en establecer el entorno del "llamador".

Pero aquí está el problema:

Quiero que este script sea se puede llamar desde bash o csh. En otras palabras, quiero que los usuarios de cualquiera de los shell puedan ejecutar mi script y cambiar el entorno de su shell. Así que 'source' no funcionará para mí, ya que un usuario que ejecuta csh no puede obtener un script bash, y un usuario que ejecuta bash no puede obtener un script csh.

¿Hay alguna solución razonable que no implique tener que escribir y mantener DOS versiones en el script?


Warning: Undefined property: agent_blog_content::$date_asked in /var/www/agent_etc/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 32

Warning: Undefined property: agent_blog_content::$count_answers in /var/www/agent_etc/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 52