echo " a" | while read; do echo "$REPLY"; done
Run Code Online (Sandbox Code Playgroud)
将输出包含前导空格的“.....a”。然而,
echo " a" | while read line; do echo "$line"; done
Run Code Online (Sandbox Code Playgroud)
将输出“a”,并跳过前导空格(好的,因为分词)。
看起来 REPLY 变量与 IFS 设置为 null 具有相同的效果:
echo " a" | while IFS= read line; do echo "$line"; done
Run Code Online (Sandbox Code Playgroud)
从bash手册中我找不到原因。你有什么想法?谢谢。