Posso "esportare" un alias nello SHELL che ha invocato uno script?


14

Sto cercando di scrivere uno script di utilità che definisca determinati alias.
Il mio SHELL è tcsh(non posso cambiarlo).

Ho provato quanto segue

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

Quindi lo eseguo in questo modo:

./myscript  
log

L'output che ottengo è: log: Command not found.

Naturalmente se lo eseguo in questo modo:

source myscript  
log

Va tutto bene.

Un modo per farlo senza specificare source ...?


Hai inserito il aliasnel tuo ~/.cshrcfile?
qweet

@qweet - Questo non è il mio obiettivo - Volevo qualcosa di dinamico.
RonK,

Risposte:


18

Non puoi. Eseguendo il tuo script esegui una nuova shell. Gli alias non verranno visualizzati dal processo padre.

L'unico modo indicato è usare in sourcemodo che la shell corrente elabori il file di script (senza avviare un nuovo processo).


2
Grazie - questo è quello che ho pensato - Aggiungerò un alias al mio .alias che lo farà source myscript- Volevo qualcosa di facile che possa essere condiviso da tutti i membri del team - un alias lo farà.
RonK,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.