改進現有別名以動態替換命令列文本

改進現有別名以動態替換命令列文本

.bashrc我有一個這樣的別名:

alias ylog = "yarn logs -applicationId"

當我這樣做時,這很有效ylog application_123

job_123有時,我的工作名稱以代替的形式出現application_123,為了獲得ylog我需要在命令列中手動將文字“工作”替換為“應用程式”。

是否可以改進別名,以便發生以下情況:

  • ylog job_123決心ylog application_123
  • ylog application_123決心ylog application_123

答案1

Bash 不允許在別名中使用參數,因此您需要定義和使用函數,例如:

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

相關內容