2つ未満の引数では中括弧拡張は機能しません。

2つ未満の引数では中括弧拡張は機能しません。

私は中括弧拡張が複数の引数に対して機能することを期待しています。ただし、n=1 の場合、次のような結果が得られます。

$ find models/nsf-projects-{7}*
models/nsf-projects-{7}.rdf

n> 1の場合、予想どおり拡張が発生します。たとえば、次のようになります。

$ find models/nsf-projects-{6,7}*
find: ‘models/nsf-projects-6*’: No such file or directory
find: ‘models/nsf-projects-7*’: No such file or directory

私はGNUのマニュアルを見ましたが、どこにも明示的に言及されている> 1引数の要件を見つけることができませんでした。

Q:n> 1は実際に校正器の拡張の要件ですか?では、なぜ役に立ちますか?

ベストアンサー1

はい、n> 1は明示的な要件です。:

正しい形式の中括弧の拡張には、引用符のない開かっこと閉じ括弧、および引用符のない1つ以上のカンマまたは有効なシーケンス式を含める必要があります。誤って形成された中括弧の拡張は変更されません。

その理由はかなり歴史的です(たとえcsh他の動作がある元からコピーされていますが)。一部のコマンドは{}リテラル引数(findparallel、より複雑なパラメータを持つ他の項目)とその他の用途{}シェル言語で。中括弧拡張は文字通り(変数ではなく)作成された場合にのみ処理されるため、縮退拡張をサポートするインセンティブが実際にはなく、サポートしない理由がいくつかあります。

おすすめ記事