很难用谷歌搜索这个,我有这个:
echo "age" | while read line; do
echo "$line"
done
但是有这种风格:
while read line; do
echo "$line"
done < echo "age"
首先,第二种样式不太正确,但是第一种和第二种样式有名称吗?功能/行为上有区别吗?
答案 0 :(得分:1)
最大的功能差异是,第一个(在bash中)将在子shell中运行循环。结果,$line
将在循环完成后丢失其值。为了避免使用子shell,您可以使用heredoc将内容直接嵌入到shell中:
while read line; do
echo "$line"
done << EOF
age
EOF