
Eu tenho este arquivo:
/Users/MYUSERNAME/asciidots/asciidots/__main__.py
Quero criar um alias para que ele seja executado como se estivesse no meu diretório atual. Eu estava pensando algo assim:
alias asciidots="OLDCWD=$PWD && cd /Users/MYUSERNAME/asciidots/asciidots/ && python3 __main__.py ALL_ARGUMENTS_FOLLOWING_THE_ALIAS && cd $OLDCWD"
mas não conheço uma maneira de fazer isso.
Responder1
Em vez disso, use uma função:
asciidots() (
cd /Users/MYUSERNAME/asciidots/asciidots/ &&
python3 __main__.py "$@"
)
"$@"
expande para os argumentos da função, e aqui usei ( .. )
em vez de { .. }
ao redor do corpo da função para fazê-la funcionar em um subshell. O ambiente subshell possui um diretório de trabalho próprio, portanto, não é necessário retornar ao diretório original posteriormente.
(Isso deve funcionar pelo menos no Zsh e no Bash, se não me engano.)
Ver:No Bash, quando criar um alias, quando criar um script e quando escrever uma função?(o título diz Bash, mas a maior parte disso provavelmente também é relevante para Zsh.)