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
dim
tomará un nombre de archivo como argumento. Puede poner este fragmento de código al final de su~/.bashrc
archivo y luego ejecutarlo como:Reemplace
file.txt
con cualquier nombre de archivo que desee.Para ejecutarlo desde la sesión de shell actual, primero
source
el~/.bashrc
archivo:fuente
$1
indica 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ónbash
tambié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
cd
para llevarlo a su directorio de inicio;cd ..
sube un nivelcd -
lo lleva al directorio anterior desde el cualcd
editó.$*
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).