Estoy buscando una manera de hacer que el siguiente alias funcione para cualquier nombre de archivo.
alias dim='cd /home/jason/Documents; vim *the desired file*; cd'
Me pregunto si hay una manera de cambiar este alias para que pueda escribir cualquier nombre de archivo como tal:
dim *the desired file*
Y sigue obteniendo el mismo resultado. Básicamente, ¿hay alguna forma de invocar lo que se escribe después del nombre del alias en el alias mismo? Algo como:
alias dim='cd /home/jason/Documents; vim <what is typed after alias>; cd'

Respuestas:
No, no puede hacerlo utilizando alias de shell. Necesitas usar una función.
Aquí hay una función simple para hacer el trabajo:
La función
dimtomará un nombre de archivo como argumento. Puede poner este fragmento de código al final de su~/.bashrcarchivo y luego ejecutarlo como:Reemplace
file.txtcon cualquier nombre de archivo que desee.Para ejecutarlo desde la sesión de shell actual, primero
sourceel~/.bashrcarchivo:fuente
$1indica el primer parámetro posicional o argumento de la función ... piense en ello como una forma de dar entrada a una función o script ... como todos los lenguajes de programaciónbashtambién usa esto ... encontrar numerosos recursos sobre esto en Google ..No con alias, use funciones en su lugar.
Desde la página de manual de Bash :
Entonces su función podría ser:
fuente
cdpara llevarlo a su directorio de inicio;cd ..sube un nivelcd -lo lleva al directorio anterior desde el cualcdeditó.$*es como$1 $2 $3...darle toda la lista a vim, no el primer argumento que escribe. Y como dijo Chriki,cd -volverá al directorio anterior (el que era cuando invocó la función).