0
いくつかの変数を展開していないと、簡略化した例にある出力バッシュ私はarray.Bellowでいくつかのコマンドを格納しています
#!/bin/bash
test_arr=()
x="mural.png"
for q in 10 12 14; do
for i in 4 6 8; do
test_arr+=("$x_$q_$i")
done
done
echo "${test_arr[@]}"
unset test_arr
for q in 10 12 14; do
for i in 4 6 8; do
test_arr+=("$x"_"$q"_"$i")
done
done
echo "${test_arr[@]}"
:
4 6 8 4 6 8 4 6 8
4 6 8 4 6 8 4 6 8 test_stack.png_10_4 test_stack.png_10_6 test_stack.png_10_8 test_stack.png_12_4 test_stack.png_12_6 test_stack.png_12_8 test_stack.png_14_4 test_stack.png_14_6 test_stack.png_14_8
以下は正しい出力を与える
#!/bin/bash
test_arr=()
x="mural.png"
#for q in 10 12 14; do
# for i in 4 6 8; do
# test_arr+=("$x_$q_$i")
# done
#done
#echo "${test_arr[@]}"
unset test_arr
for q in 10 12 14; do
for i in 4 6 8; do
test_arr+=("$x"_"$q"_"$i")
done
done
echo "${test_arr[@]}"
出力:
mural.png_10_4 mural.png_10_6 mural.png_10_8 mural.png_12_4 mural.png_12_6 mural.png_12_8 mural.png_14_4 mural.png_14_6 mural.png_14_8
"$x_$q_$i"
ではなく、"$x"_"$q"_"$i"
を使用すると変数が拡大されるのはなぜですか?