¿Cómo pasar argumentos de línea de comando a un alias de shell? [duplicar]

Resuelto Vini asked hace 15 años • 11 respuestas

¿Cómo paso los argumentos de la línea de comando a un alias? Aquí hay una muestra:

alias mkcd='mkdir $1; cd$1;'

Pero en este caso, $xx se traduce en el momento de creación del alias y no en tiempo de ejecución. Sin embargo, he creado una solución utilizando una función de shell (después de buscar un poco en Google) como se muestra a continuación:

función mkcd(){
  mkdir$1
  disco compacto $1
}

Sólo quería saber si hay alguna manera de crear alias que acepten parámetros CL.
Por cierto, uso 'bash' como mi shell predeterminado.

Vini avatar Jun 03 '09 02:06 Vini
Aceptado

Solo para reiterar lo que se ha publicado para otros shells, en Bash funciona lo siguiente:

alias blah='function _blah(){ echo "First: $1"; echo "Second: $2"; };_blah'

Ejecutando lo siguiente:

blah one two

Da el resultado a continuación:

First: one
Second: two
Thomas Bratt avatar Mar 27 '2014 10:03 Thomas Bratt

Encontraste la manera: crea una función en lugar de un alias. El shell C tiene un mecanismo para hacer argumentos para alias, pero bash y el shell Korn no lo tienen, porque el mecanismo de función es más flexible y ofrece la misma capacidad.

Charlie Martin avatar Jun 02 '2009 19:06 Charlie Martin