Verbessern Sie den vorhandenen Alias, um Befehlszeilentext dynamisch zu ersetzen.

Verbessern Sie den vorhandenen Alias, um Befehlszeilentext dynamisch zu ersetzen.

Ich habe einen Alias .bashrc​​wie diesen:

alias ylog = "yarn logs -applicationId"

Wenn ich das tue, funktioniert das gut ylog application_123.

Manchmal haben meine Jobnamen die Form „ job_123anstelle von“. application_123Um diese zu erhalten, ylogmuss ich den Text „Job“ in meiner Befehlszeile manuell durch „Anwendung“ ersetzen.

Ist es möglich, den Alias ​​so zu verbessern, dass Folgendes passiert:

  • ylog job_123beschließt,ylog application_123
  • ylog application_123beschließt,ylog application_123

Antwort1

Bash erlaubt keine Parameter in Aliasnamen, daher müssen Sie eine Funktion definieren und verwenden, z. B.:

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

verwandte Informationen