0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZを使用して変数を生成する簡単な方法

0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZを使用して変数を生成する簡単な方法

スクリプトは、目的のために(この質問の範囲を超えて)bash変数を使用します。Q

Q=0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ

このスクリプトは、すべてのバイトが計算される環境で使用されるため、これは無駄です。しかし、いくつかの解決策は次のとおりです。

Q=0$(seq -s "" 9)$(echo {A..Z}|tr -d " ")

Cロケールの場合)もっと悪いです。このような単純なシーケンスを簡潔に生成する明白なトリックを見るには、私はあまりにも目が遠くなるでしょうか?

ベストアンサー1

支柱の拡張が可能なすべてのシェルの場合:

使用printf:

$ printf %s {0..9} {A..Z}
0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ

-->

Q=$(printf %s {0..9} {A..Z})

代わりに、バックティックは$()バイトを格納します。特にBashでは、printf -v varprintfを変数に書き込むのが良いですが、バックティックよりも短くはありません。

printf -vQ %s {0..9} {A..Z}
Q=`printf %s {0..9} {A..Z}`

おすすめ記事