シェル関数名に特殊文字を使用できますか?

シェル関数名に特殊文字を使用できますか?

シェルスクリプトから関数を生成する必要があり、関数名に特殊文字を含める必要があります。良い

     >()
      {
       echo $1 $2
      }

ここで私の関数名は、可能であれば上記のようにどのように>提供できますか?試しましたが、エラーが発生しました。

答え1

ほとんどのシェルは関数名を引用符を必要としない文字に限定します>

関数名として受け入れるいくつかのシェルでも>(zshだけを知っています)呼び出された関数を定義することは、>コマンドで呼び出される場合にのみ機能します>(引用符が必要です。つまり\>orまたは">"実行'>')。リダイレクトの仕組みは変わりません。

汎用シェルには、スクリプトの後続部分がリダイレクトを実行したときに発生する状況を構成する機能はありません。この種の機能が必要な場合、シェルは十分に柔軟な言語ではありません。しかし、より良い解決策があるかもしれません。どんな問題を解決したいのか- おそらくシェルスクリプトでこの問題を解決することは可能でしょう。

答え2

>シェルでは特別な意味を持ち、リダイレクト演算子です。マンページを参照してください。

[n]> fileは標準出力(またはn)をファイルにリダイレクトします。

関数名には、文字(azまたはAZ)、数字(0〜9)、またはアンダースコア文字(_)のみを含めることができます。そして数字で始めることはできません。 (望むより機能定義コマンドそして名前)

関連情報