空の要素を持つ配列をコピーする bash (ver 4.2.25) で問題が発生しています。配列のコピーを別の変数に作成すると、空の要素は一緒にコピーされません。
#!/bin/bash
array=( 'one' '' 'three' )
copy=( ${array[*]} )
IFS=$'\n'
echo "--- array (${#array[*]}) ---"
echo "${array[*]}"
echo
echo "--- copy (${#copy[*]}) ---"
echo "${copy[*]}"
これを行うと、出力は次のようになります。
--- array (3) ---
one
three
--- copy (2) ---
one
three
元の配列には、空の要素を含む 3 つの要素がすべて含まれていますが、コピーには含まれていません。ここで何が間違っていますか?