既存のエイリアスを改良してコマンドラインテキストを動的に置き換える

既存のエイリアスを改良してコマンドラインテキストを動的に置き換える

次のようなエイリアスがあります.bashrc:

alias ylog = "yarn logs -applicationId"

これは私が行うときにはうまく機能しますylog application_123

job_123場合によっては、ジョブ名がではなくの形式になっていることがありますapplication_123。これを取得するには、ylogコマンド ラインでテキスト「job」を「application」に手動で置き換える必要があります。

エイリアスを改善して、次のようになるようにすることは可能ですか?

  • ylog job_123解決するylog application_123
  • ylog application_123解決するylog application_123

答え1

Bash ではエイリアス内のパラメータが許可されていないため、関数を定義して使用する必要があります。例:

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

関連情報