2016-08-13 8 views

答えて

2

必要な動作は、シェル固有の拡張機能によって異なります。 POSIX標準は、エイリアス(XSIとユーザーポータビリティの拡張機能の両方を実装するシェルの場合のみである)行動、許可名のセットを指定した場合にも備える必要がされていないか-=

3.10 Alias Name

シェルコマンド言語では、ポータブルキャラクタセットと、 '!'、 '%'、 '、'、 '@'のいずれかのアンダースコア、数字、アルファベットのみからなる単語です。

実装では、エイリアス名内の他の文字を拡張子として使用できます。

alias -- -=date 

別のオプション:bashのエイリアスを定義する場合、--は(POSIX syntax guidelinesエントリ#10あたり)のオプションとして解析されない以降の引数を引き起こすために使用することができ、言っ


実際にbash(3.2.57(1)と4.3.46(1)の両方でテストされていますが、これらの名前でサポートされているPOSIX規格では必要ありません)は、関数を定義することです:

$ =() { date "[email protected]"; } 
$ -() { date "[email protected]"; } 
$ = 
Sat Aug 13 18:12:37 CDT 2016 
$ - 
Sat Aug 13 18:12:08 CDT 2016 

繰り返しますが、これは、POSIXによって要求される名前のセットを超えて次のように

2.9.5 Function Definition Command

関数定義コマンドの形式は次のとおりです。

fname() compound-command[io-redirect ...] 

機能の名前はfname; アプリケーションでは、名前がであることが保証されます(IEEE Std 1003.1-2001の基本定義ボリューム、セクション3.230、名前を参照)。 実装では、関数名に他の文字を拡張子として使用できます。実装は、関数と変数のために別々の名前空間を維持しなければならない。シェルコマンド言語で

3.230 Name

、ポータブル文字セットのみからアンダースコア、数字、アルファベットからなる単語。名前の最初の文字は数字ではありません。

...したがって、POSIXもbash自身のマニュアルも定義されていないため、将来のリリースで変更される可能性があります。

3

あなたはこのような名前-で別名を持つことができます:私は=という別名を定義する任意の方法を認識していないよ

alias -- -=date 

+0

これは文書化されていない機能のようです。 –

関連する問題