Você não pode. Ao executar seu script, você executa um novo shell. Os aliases não serão vistos pelo processo pai.
A única maneira indicada é usar source
para que o shell atual processe seu arquivo de script (sem iniciar um novo processo).
Estou tentando escrever um script de utilitário que define certos aliases.
Minha SHELL é tcsh
(não pode mudar isso).
Eu tentei o seguinte
#!/bin/tcsh
alias log 'less ~/logs/log.'date '+%Y%m%d''''
Então eu corro assim:
./myscript
log
A saída que recebo é: log: Command not found.
Naturalmente, se eu executar assim:
source myscript
log
Tudo está bem.
Qualquer maneira de fazer isso sem especificar source ...
?
Você não pode. Ao executar seu script, você executa um novo shell. Os aliases não serão vistos pelo processo pai.
A única maneira indicada é usar source
para que o shell atual processe seu arquivo de script (sem iniciar um novo processo).
Tags alias tcsh shell-script