Melhore o alias existente para substituir dinamicamente o texto da linha de comando

Melhore o alias existente para substituir dinamicamente o texto da linha de comando

Eu tenho um alias .bashrcassim:

alias ylog = "yarn logs -applicationId"

Isso funciona bem quando eu faço isso ylog application_123.

Às vezes, os nomes dos meus trabalhos vêm na forma de job_123em vez de application_123e, para obtê-los, ylogpreciso substituir manualmente o texto "trabalho" por "aplicativo" na minha linha de comando.

É possível melhorar o alias para que aconteça o seguinte:

  • ylog job_123resolveylog application_123
  • ylog application_123resolveylog application_123

Responder1

Bash não permite parâmetros em aliases, então você precisa definir e usar uma função, por exemplo:

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

informação relacionada