我写了以下代码
var=0
cat $file | while read line do
var=$line
done
echo $var
现在据我了解,管道 (|) 将导致创建一个子 shell,因此第 1 行的变量 var 在最后一行将具有相同的值。
但是,这将解决它:
var=0
while read line do
var=$line
done < $file
echo $line
我的问题是为什么重定向不会导致创建子shell,或者如果您喜欢为什么管道会导致创建子shell?
谢谢