Bashの中{}
括弧拡張構文を使用すると、単純な置換を生成できます。
# echo {b,c,d}{a,e,i,o,u}
ba be bi bo bu ca ce ci co cu da de di do du
$()
echo
しかし、非常に厄介な使用を除いて、これを配列で使用できるかどうかを使用することは私には明らかではありません。eval
中かっこ(順列)拡張を使用して配列を使用する簡単な方法はありますか?
たとえば、次のことを想像してみてください(もちろんこれは機能しません)。
CONS=( b c d )
VOWEL=( a e i o u )
echo {${CONS[@]}}{${VOWEL[@]}}
ベストアンサー1
eval を使用するかIFS=,; "${array[*]}"
(値をカンマで連結する)、2 つの for ループを使用できます。
$ CONS=(b c d);VOWEL=(a e i o u)
$ IFS=,;eval echo "{${CONS[*]}}{${VOWEL[*]}}"
ba be bi bo bu ca ce ci co cu da de di do du
$ for c in "${CONS[@]}";do for v in "${VOWEL[@]}";do echo "$c$v";done;done|paste -sd' ' -
ba be bi bo bu ca ce ci co cu da de di do du