Próbuję napisać skrypt narzędzia, który definiuje pewne aliasy.
Mój SHELL to tcsh
(nie mogę tego zmienić).
Próbowałem następujące
#!/bin/tcsh
alias log 'less ~/logs/log.`date '+%Y%m%d'`''
Następnie uruchamiam to w następujący sposób:
./myscript
log
Otrzymuję wynik: log: Command not found.
Oczywiście, jeśli uruchomię to w ten sposób:
source myscript
log
Wszystko w porządku.
Jakiś sposób to zrobić bez określania source ...
?
shell-script
alias
tcsh
RonK
źródło
źródło
alias
w swoim~/.cshrc
pliku?Odpowiedzi:
Nie możesz Uruchamiając skrypt wykonujesz nową powłokę. Aliasy nie będą widoczne w procesie nadrzędnym.
Jedynym sposobem, jak wskazano, jest użycie,
source
aby bieżąca powłoka przetworzyła plik skryptu (bez rozpoczynania nowego procesu).źródło
source myscript
- chciałem czegoś łatwego, z którego mogą korzystać wszyscy członkowie zespołu - alias to zrobi.