ワイルドカード展開から最初の一致を取得するにはどうすればよいですか?BashやZshなどのシェルは、ワイルドカードを引数に展開します。*.txt1.txtシェル固有の解決策は気にしませんが、ファイル名の空白に対応する解決策が欲しいです。欠落しているインデックスは[0]として扱われます。)これは、ファイル名を展開するときに、スペース/タブ/改行およびその他のメタキャラクターを安全に処理します。有効なロケール設定により、「最初の」が変更される可能性があることに注意してください。コマンド(通常の完了をオーバーライドする)。余分な「*」が上記のコードに追加されます。ファイル名の一部でタブを押すだけで、うまくいけば正しいことが起こります。globをいくつかの一致に展開できます。その後、安全に配列に展開し、最後にCOMPREPLYを設定して、引用が堅牢になるようにします。引用符なしで標準出力に出力されるため、堅牢ではありません。いつものように、完了はかなり複雑です。デフォルトの動作をエミュレートする詳細については、こちら)。)注意すべき点の1つは、「〜」はグロブではなく、$variablesやその他の展開と同様に、展開の別の段階でbashによって処理されることです。安全に引用されています(格差は説明できません)。トークンを展開するということです。そのようなファイルが存在しない場合でも「a」を「a」に展開することになるため、おそらく理想的ではありません。安全に値を引用します。この特殊なケースは最大で1つの一致を返しますが、それでもリストであり、グロブは割り当て(配列の割り当ては別として)などの単一の単語を期待するコンテキストでは展開されないことに注意してください。*.txt([1])kshまたはbashでは、一致するリスト全体を配列に詰め込み、最初の要素を使用できます。"${tmp[0]}"どのシェルでも、位置パラメータを設定して最初のパラメータを使用できます。"$1"これは、位置パラメータを破壊します。必要ない場合は、サブシェルを使用できます。"$1")"独自の位置パラメータのセットを持つ関数を使用することもできます。done1.txtファイル名の展開は、現在のロケールで有効な照合シーケンスに従ってソートされることに注意してください。old私はこの古い質問に出くわしたが、同じことを疑問に思った。