Kann ich einen Alias ​​in die SHELL "exportieren", die ein Skript aufgerufen hat?

13

Ich versuche, ein Dienstprogramm-Skript zu schreiben, das bestimmte Aliase definiert.
Meine SHELL ist tcsh(kann das nicht ändern).

Ich habe folgendes versucht

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

Dann führe ich es so aus:

./myscript  
log

Die Ausgabe, die ich bekomme, ist: log: Command not found.

Natürlich, wenn ich es so laufen lasse:

source myscript  
log

Alles ist gut.

Wie kann man das ohne Angabe machen source ...?

RonK
quelle
Hast du das aliasin deine ~/.cshrcAkte aufgenommen?
Qweet
@qweet - Das ist nicht mein Ziel - ich wollte etwas Dynamisches.
RonK

Antworten:

17

Das kannst du nicht. Durch Ausführen Ihres Skripts führen Sie eine neue Shell aus. Aliase werden vom übergeordneten Prozess nicht angezeigt.

Wie bereits erwähnt, wird nur verwendet, sourcedamit die aktuelle Shell Ihre Skriptdatei verarbeitet (ohne einen neuen Prozess zu starten).

Matteo
quelle
2
Vielen Dank - das habe ich mir gedacht - ich werde meinem .alias einen Alias ​​hinzufügen, der dazu dient source myscript- ich wollte etwas Einfaches, das von allen Teammitgliedern geteilt werden kann - ein Alias ​​wird es tun.
RonK