スクリプトは、目的のために(この質問の範囲を超えて)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 var
printfを変数に書き込むのが良いですが、バックティックよりも短くはありません。
printf -vQ %s {0..9} {A..Z}
Q=`printf %s {0..9} {A..Z}`