
Tengo este archivo:
/Users/MYUSERNAME/asciidots/asciidots/__main__.py
Quiero asignarle un alias para que se ejecute como si estuviera en mi directorio actual. Estaba pensando algo como esto:
alias asciidots="OLDCWD=$PWD && cd /Users/MYUSERNAME/asciidots/asciidots/ && python3 __main__.py ALL_ARGUMENTS_FOLLOWING_THE_ALIAS && cd $OLDCWD"
pero no conozco una manera de hacer esto.
Respuesta1
Utilice una función en su lugar:
asciidots() (
cd /Users/MYUSERNAME/asciidots/asciidots/ &&
python3 __main__.py "$@"
)
"$@"
se expande a los argumentos de la función, y aquí lo usé ( .. )
en lugar de { .. }
alrededor del cuerpo de la función para que se ejecute en una subcapa. El entorno del subshell tiene su propio directorio de trabajo, por lo que no es necesario volver al directorio original después.
(Eso debería funcionar al menos en Zsh y Bash, si no me equivoco).
Ver:En Bash, ¿cuándo crear un alias, cuándo crear un script y cuándo escribir una función?(El título dice Bash, pero es probable que la mayor parte de eso también sea relevante para Zsh).