bash / shellスクリプトで⏰などのUTF-8文字を使用する必要がありますか?

bash / shellスクリプトで⏰などのUTF-8文字を使用する必要がありますか?

ここの簡単なコードは、次のように実行されている場合、私のコンピュータで期待どおりに機能しますbash

function ⏰(){
 date
}

他の人がこれを使用するのに問題がありますか、それとも普遍的ですか?

今まで他のソースコードでこれを見たことがないので、知りたいです。

編集:無限の可能性があります。たとえば、絵文字を使用して機能的な役割をすばやく区別するために使用できます。

答え1

便利なガイドは、ほとんどのUnixシリーズシステムで実装されている標準セットであるPOSIX(Portable Operating System Interface)です。通常、シェルスクリプトをPOSIX固有の機能に制限して、さまざまなシェルやプラットフォームで使用できるようにするのが最善です。

POSIX仕様によると「シェルコマンド言語」の関数定義:

関数の名前は fname です。アプリケーションではそれが名前であることを確認する必要があります(IEEE Std 1003.1-2001のデフォルト定義ボリュームを参照)。セクション3.230、名前)。実装では、関数名に拡張子として追加の文字を許可できます(MAY)。

リンクをたどる「名前」の定義:

シェルコマンド言語の下線、数字、文字のみで構成される単語ポータブル文字セット

この文字セットには、U0000からU007Eまでの文字のみが含まれます。
したがって、「⏰」(U23F0)などの文字は、POSIX準拠の識別子では無効です。

あなたのシェルはこれを受け入れることができますが、これは保証されません。他の人それもそうだろう。
さまざまなプラットフォームおよびソフトウェアバージョンでスクリプトを使用するには、これらの非準拠識別子を使用しないでください。

関連情報