~からhttps://unix.stackexchange.com/a/7739/674以下の例では、中括弧拡張の前にパラメータ拡張が発生するのはなぜですか?
eval rm foo.{$ext0..$extN}
答え1
まず、ランダムな中括弧拡張(開始項目への拡張)を実行してから引数拡張を実行し、「eval」内で中括弧拡張を実行します。
# No-op brace expansion example:
echo foo.{not..understood}
# See: foo.{not..understood}
ext0=10
extN=20
# Parameter expansion
echo foo.{$ext0..$extN}
# See: foo.{10..20}
# Final brace expansion
eval echo foo.{$ext0..$extN}
# See: foo.10 foo.11 foo.12 foo.13 foo.14 foo.15 foo.16 foo.17 foo.18 foo.19 foo.20
# Now if you want to have fun with it (each eval unwraps one level of escapes)
eval eval eval eval echo foo.{\\\\\\\$ext0..\\\\\\\$extN}
# See: foo.10 foo.11 foo.12 foo.13 foo.14 foo.15 foo.16 foo.17 foo.18 foo.19 foo.20