在bash中从文件中读取行

在bash中从文件中读取行,bash,Bash,出于某种奇怪的原因,我无法在bash中逐行读取文件。 我总是在读台词时使用经典的;不要重复$line;完成

出于某种奇怪的原因,我无法在bash中逐行读取文件。 我总是在读台词时使用经典的
;不要重复$line;完成
,但它突然停止工作


有人知道bash最近是否更新了sintaxis或类似版本吗?

您的问题并没有提供足够的细节来诊断问题。不过,很公平:你不知道问题出在哪里,所以你不知道什么是相关的。下面是一个变体命令,它可能会解决一些更可能的原因,或者可能会提供一些线索:

$ ( unset IFS; while builtin read line; do builtin echo xxx "$line" yyy; done < /etc/motd ) 
xxx  yyy
xxx The programs included with the Debian GNU/Linux system are free software;     yyy
xxx the exact distribution terms for each program are described in the yyy
xxx individual files in /usr/share/doc/*/copyright. yyy
xxx  yyy
xxx Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent yyy
xxx permitted by applicable law. yyy
$(取消设置IFS;而内置读取行;执行内置回显xxx“$line”yyy;完成

同一个命令会产生什么结果?这里的想法是检查
read
echo
命令是否已转换为别名或shell函数。您也可以使用
类型echo
类型read

检查这一点,症状是什么?“不工作”是非常通用的。请提供bash的版本和一个示例文件。@Ghost
cat file.txt
请在读取行时确实使用
还是在读取$line时使用
?您的标准输出可能会被重定向到某个奇怪的地方。尝试执行
reset
并重新运行(可能有效,也可能无效,取决于您运行的是什么)。否则,只需打开另一个实例