bash while循环问题

时间:2016-02-18 17:57:20

标签: bash shell syntax printf

所以我有一个循环

while read line
do
    printf $line"\n"
done < file.txt

这会在新行上打印每一行(如原始文件)。 然而当我做的时候

while read line
do
    printf $line
done < file.txt

当我希望它将所有的线放在一起时,它不会打印任何东西。

(有关额外信息:我只是看到循环是如何工作的,因为我在每一行都有一个数字文件,我想对每个数字应用相同的操作然后总结它们)

2 个答案:

答案 0 :(得分:1)

printf记录如下:

1.1e+10

第一个参数(即你的case.txt中每一行的第一个单词)被解释为一个格式字符串,因此它没有按照你的预期进行操作。你需要

SYNOPSIS
     printf format [arguments ...]

答案 1 :(得分:-1)

我认为它打印,但你没有看到它。

如果这是您的程序中打印的所有内容,则最终输出(可能很长)行,但没有尾随换行符。现在,回到你的shell,shell显示它的提示。可能,此提示会从您的终端中删除您刚刚打印的行。

要验证它,请将标准输出重定向到文件,然后使用lesswcod等工具查看文件内容。