Puis-je «exporter» un alias vers le SHELL qui a invoqué un script?

14

J'essaie d'écrire un script utilitaire qui définit certains alias.
Ma coquille est tcsh(ne peut pas changer cela).

J'ai essayé ce qui suit

#!/bin/tcsh  
alias log 'less ~/logs/log.`date '+%Y%m%d'`''

Ensuite, je le lance comme ceci:

./myscript  
log

La sortie que j'obtiens est: log: Command not found.

Naturellement, si je le lance comme ceci:

source myscript  
log

Tout va bien.

Une façon de le faire sans préciser source ...?

RonK
la source
Avez-vous mis le aliasdans votre ~/.cshrcdossier?
qweet
@qweet - Ce n'est pas mon objectif - je voulais quelque chose de dynamique.
RonK

Réponses:

18

Tu ne peux pas. En exécutant votre script, vous exécutez un nouveau shell. Les alias ne seront pas vus par le processus parent.

La seule façon, comme indiqué, est d'utiliser sourcepour que le shell actuel traite votre fichier de script (sans démarrer un nouveau processus).

Matteo
la source
2
Merci - c'est ce que je pensais - je vais ajouter un alias à mon .alias qui va source myscript- je voulais quelque chose de facile qui puisse être partagé par tous les membres de l'équipe - un alias le fera.
RonK