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 ...?


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).


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
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.