3

次のことを守ってください。

[user@machine deploy]$ echo ?
?
[user@machine deploy]$ echo ??
??
[user@machine deploy]$ echo ???
lib
[user@machine deploy]$ echo ????
????

どうしたのecho ????なぜそれが「lib」なのですか?

env または .bashrc に何も表示されず、マシン間で一貫性がありません (私の開発マシンでは、文字列 ??? は ??? のままでした。これは、テストしていた場所で役に立ちました)。

私はこれを問題なく回避できます-「???」プレースホルダー値は完全に任意でした。しかし今、私は興味があります。誰にもアイデアはありますか?

ありがとう。

4

2 に答える 2

7

shell globsでは、?1 文字を表します (正確には 1 つだけです)。そのため、正確に 3 文字の名前を持つファイル (またはディレクトリ) がある場合は、???それに一致します。

試してみてくださいtouch a; touch bb ; echo ? ??

パターンに一致するファイルがない場合、パターンは置き換えずにそのまま印刷されます。

于 2012-08-02T13:40:38.000 に答える
1

ヒント #1: 試してくださいls ヒント #2: これはグロビングと呼ばれます。

于 2012-08-02T13:40:48.557 に答える