答え1
bash
マニュアルで(ハイライト):
シーケンス式は、合計が整数または単一文字で、オプションで増分が整数である形式
{x..y[..incr]}
をx
取りy
ますincr
。整数が指定されると、式はその間x
のすべての数字に展開されますy
。指定された整数の前にプレフィックスを付けて、0
各項目の幅を同じにすることができます。x
または、ゼロで始まると、シェルは、生成されたy
すべての用語に必要な場合はゼロパディングを使用して同じ桁数を含めようとします。x
文字が指定されると、式はデフォルトのCロケールを使用して、および間のすべての文字(含む)に辞書式に展開されます。y
どちらもx
同じy
タイプでなければなりません。デルタが提供されると、各項目の差として使用されます。デフォルトの増分は適切に1または-1です。
文字範囲を使用した中括弧拡張は、との間の文字を受け入れますbash
。したがって、表示されるのはASCIIテーブルG
内との間の文字ですa
(値はテーブルの順に表示されるため、デフォルトの増分は1です)。
標準ASCIIテーブルの最後の大文字(Z
)と最初の小文字(a
)の間には、次の文字があります。
[ \ ] ^ _ `
この順番で。
\
シェルはエスケープされたスペース文字をリテラルスペースとして扱うため、出力されません。また、引用符のない逆引用符が出力されるため、次のような予期しないコード実行が発生する可能性があります。ステファンが指摘した2015年にメーリングリストに送信されたメッセージからbug-bash
。
しかし、ドキュメントで「入力」が何を意味するのかはわかりませんが{1..z}
(拡張されていません)などの文字や数字は使用できないようです。