次のコマンドは何を行い、どのような結果を提供しますか?
echo "{$begin_dt/{0[7-9],1*,2*},$dates/*,$next_dt/0[0-6]}"
$begin_dt
日付はどこに$next_dt
あり、日付は何ですか?
ベストアンサー1
質問タイトルの文字列は、質問自体の文字列とは若干異なります。つまり、後者は引用符で囲まれていますが、タイトルのものはそうではありません。
外部引用する、支柱{...}
の拡張中かっこの横の文字列に追加し、中かっこ内のカンマ区切りのすべての文字列を連結します。つまり、 とstring{this,that}
で拡張されるので共通部分が重複しません。stringthis
stringthat
その後、ファイル名のグロービングが発生するため、同様のものが展開され、すべてが一致するファイル名に拡張されdir/{0[7-9],1*,2*}
ます。dir/0[7-9]
dir/1*
dir/2*
ファイル名が月の2桁の日の場合は、07から29までの数字が一致します。 (しかし、30または31は一致しません!)
例の外部支柱グループも同様に拡張されます。
~へ引用符、中括弧など特別な内容はなく、ファイル名拡張はしないので変数だけ拡張する。
中かっこ拡張を含むBashおよび他のシェルでは、これはPOSIX sh機能ではありません。