読み込み組み込みのREPLY変数が空白をスキップするのはなぜですか?

読み込み組み込みのREPLY変数が空白をスキップするのはなぜですか?
echo "     a" | while read; do echo "$REPLY"; done

先行スペースを含む「.....a」を出力します。しかし、

echo "     a" | while read line; do echo "$line"; done

先行スペースをスキップして「a」を出力します(単語の分離のため)。

REPLY変数は、IFSをnullに設定するのと同じ効果を持つようです。

echo "     a" | while IFS= read line; do echo "$line"; done

bashのマニュアルに理由が見つかりません。どんな考えがありますか?ありがとうございます。

ベストアンサー1

~からread マニュアルページ:

標準入力(またはファイル)から1行を読み取って割り当てる性格)変数名。

名前が指定されていない場合、ワイヤー読み取りは変数に割り当てられます返信する

だから$REPLYいつもフルワイヤー、割り当てられた変数は常に性格。それ以外の場合は動作しません。たとえば、複数の単語がある場合は$REPLYどうなりますか?

おすすめ記事