问题是您在 子 外壳中添加了元素。详细说明:
command1 | command2
导致
command2在子shell中执行,这是一个单独的执行环境。这意味着设置的变量
command2不适用于 当前
外壳,其执行环境不会受到影响。您可以改为使用流程替代来实现相同目的:
while read line; do ...done < <(ls -l)
请注意,不建议解析
ls。尝试使用
find代替。

问题是您在 子 外壳中添加了元素。详细说明:
command1 | command2
导致
command2在子shell中执行,这是一个单独的执行环境。这意味着设置的变量
command2不适用于 当前
while read line; do ...done < <(ls -l)
请注意,不建议解析
ls。尝试使用
find代替。