从bash中的文件中读取行

时间:2016-03-15 21:56:03

标签: bash

由于一些奇怪的原因,我无法从bash中的文件中逐行读取。 我一直使用经典的while read line; do echo $line; done < file.txt,但它突然停止了工作。

有人知道最近是否有更新bash的更新改变了sintaxis或类似的?

1 个答案:

答案 0 :(得分:0)

您的问题并未提供足够的详细信息来诊断问题。但是很公平:你不知道问题是什么,所以你不知道什么是相关的。这是一个变体命令,它可以解决一些更可能的原因,或者可能会解释一些问题:

$ ( 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

你从同一个命令得到什么结果?这里的想法是检查readecho命令是否已转换为别名或shell函数。您也可以使用type echotype read进行检查。