bash関数の名前を正規表現として定義する方法

bash関数の名前を正規表現として定義する方法

周辺を検索しましたが、答えが見つかりませんでした。

このような関数を定義したい

function \d{2} () {
    echo $1_or_smth
}

それから端末で話すと

12

12をエコしたいです。

ベストアンサー1

次の方法はzshで動作します。

preexec() {
  if [[ $1 = <-> ]]; then
    $1() {
      echo $0
      unfunction $0
    }                                                            
  fi
}

あなたの質問に対するコメントで指摘したように、変数名を持つ関数は使用できません。これは、preexecフックを使用してコマンドを傍受し、失敗する前に一時機能を生成することです。私はそのバリエーションであるnmhメーラーを使用して電子メールメッセージを数字で表示します。

おすすめ記事