Can I "export" an alias to the SHELL that invoked a script?

12

I'm trying to write a utility script that defines certain aliases.
My SHELL is tcsh (can't change that).

I tried the following

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

Then I run it like this:

./myscript  
log

The output I get is: log: Command not found.

Naturally if I run it like this:

source myscript  
log

Everything is fine.

Any way to do it without specifying source ...?

RonK

Posted 2012-07-11T08:19:30.760

Reputation: 1 280

Did you put the alias in your ~/.cshrc file? – qweet – 2012-07-11T08:32:08.203

@qweet - That is not my goal - I wanted something dynamic. – RonK – 2012-07-11T11:14:43.757

Answers

16

You can't. By running your script you execute a new shell. Aliases will not be seen by the parent process.

The only way as pointed out is using source so that the current shell processes your script file (without starting a new process).

Matteo

Posted 2012-07-11T08:19:30.760

Reputation: 6 553

2Thank you - that is what I thought - I'll add an alias to my .alias that will to source myscript - I wanted something easy that can be shared by all team members - an alias will do it. – RonK – 2012-07-11T11:15:28.047