bashについてお伺いします
ファイルの各行を1つの要素とする配列を簡単に作る方法を模索しています
データには空白文字が含まれている可能性があり、そこで要素に分割されないように
空白文字を保護する必要があります
ループ回して1行読み込んでは配列に追加するという方法なら確実かと思いますが
簡潔にできないかと考えたあげく出たのが次のコードです

eval array=( $( cat file | sed "s/.*/'&'/" ) )

各行の先頭と末尾にシングルクォートを追加した上で、evalに再解釈させるという方法です
(話の単純化のためデータには元々シングルクオートが含まれていないとします)

この方法は一見うまくいったようでした
空白文字の箇所で区切られることなく1つの要素に収まりました
しかし連続するスペースが1つのスペースに圧縮されていることに気づきました
これはevalが実行される前に、連続するスペースが要素の区切りと見なされ
1つのスペースに整形されてしまうのが原因ではないかと考えています

そこで質問としては、うまくいかない理由の認識はあっていますか?
それと他にこの目的を簡単に達成できるような方法はありますか?