Mejorar el alias existente para reemplazar dinámicamente el texto de la línea de comando

Mejorar el alias existente para reemplazar dinámicamente el texto de la línea de comando

Tengo un alias .bashrccomo este:

alias ylog = "yarn logs -applicationId"

Esto funciona bien cuando lo hago ylog application_123.

A veces, los nombres de mis trabajos vienen en forma de job_123en lugar de application_123y para obtenerlos ylognecesito reemplazar manualmente el texto "trabajo" por "aplicación" en mi línea de comando.

¿Es posible mejorar el alias para que suceda lo siguiente?

  • ylog job_123resuelveylog application_123
  • ylog application_123resuelveylog application_123

Respuesta1

Bash no permite parámetros en alias, por lo que necesita definir y usar una función, por ejemplo:

ylog() {
    yarn logs -applicationId "${1/#job_/application_}"
}

información relacionada