printf没有正确打印行bash unix

时间:2015-03-27 11:01:21

标签: bash unix printf

我使用printf命令在文件中记录一些值,如下所示:

printf "Parameter = $parameter v9_value = $v9_val v9_line = $V9_Line_Count v16_val = $v16_val v16_line = $V16_Line_Count"

但我得到的输出如下:

 v16_line = 8elayServerPort v9_value = 41 v9_line = 8 v16_val = 4571

似乎线条以旋转方式打印,最后的值来自开始。

预期产出:

Parameter = RelayServerPort v9_value = 41 v9_line = 8 v16_val = 4571 v16_line = 8

但是v16_line = 8会覆盖Parameter = R

1 个答案:

答案 0 :(得分:1)

printf最后没有添加NL。您需要将\n添加到printf

的末尾

没有看到你的程序的其余部分,或者你得到变量值的地方,很难说这还有什么问题。

您可以做的一件事是将输出重定向到一个文件,并通过一个好的程序编辑器或使用cat -v来禁用控制字符来查看该文件。

看看您的输出中是否显示^M。如果您这样做,可能是您的变量中有^R

同时从您的$v16_val(暂时)中删除printf,看看您的输出是否更好。如果是,则$v16_val可能包含CR(^M)。