{0[7-9],1*,2*} の意味

{0[7-9],1*,2*} の意味

次のコマンドは何を行い、どのような結果を提供しますか?

echo "{$begin_dt/{0[7-9],1*,2*},$dates/*,$next_dt/0[0-6]}"

$begin_dt日付はどこに$next_dtあり、日付は何ですか?

ベストアンサー1

質問タイトルの文字列は、質問自体の文字列とは若干異なります。つまり、後者は引用符で囲まれていますが、タイトルのものはそうではありません。

外部引用する、支柱{...}の拡張中かっこの横の文字列に追加し、中かっこ内のカンマ区切りのすべての文字列を連結します。つまり、 とstring{this,that}で拡張されるので共通部分が重複しません。stringthisstringthat

その後、ファイル名のグロービングが発生するため、同様のものが展開され、すべてが一致するファイル名に拡張されdir/{0[7-9],1*,2*}ます。dir/0[7-9]dir/1*dir/2*

ファイル名が月の2桁の日の場合は、07から29までの数字が一致します。 (しかし、30または31は一致しません!)

例の外部支柱グループも同様に拡張されます。

~へ引用符、中括弧など特別な内容はなく、ファイル名拡張はしないので変数だけ拡張する。

中かっこ拡張を含むBashおよび他のシェルでは、これはPOSIX sh機能ではありません。

おすすめ記事