printf 没有正确打印行 bash unix
printf not printing line correctly bash unix
我正在使用 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
上。
printf
没有在末尾添加 NL。您需要将 \n
添加到 printf
.
的末尾
没有看到程序的其余部分,也没有看到变量值的位置,很难说还有什么问题。
您可以做的一件事是将您的输出重定向到一个文件,然后通过一个好的程序编辑器或使用禁用控制字符的 cat -v
查看该文件。
看看您是否在输出中看到 ^M
。如果你这样做,可能是你的变量中有 ^R
。
同时从您的 printf
中删除 $v16_val
(暂时),看看您的输出是否看起来更好。如果是这样,$v16_val
中可能有一个 CR (^M
)。
我正在使用 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
上。
printf
没有在末尾添加 NL。您需要将 \n
添加到 printf
.
没有看到程序的其余部分,也没有看到变量值的位置,很难说还有什么问题。
您可以做的一件事是将您的输出重定向到一个文件,然后通过一个好的程序编辑器或使用禁用控制字符的 cat -v
查看该文件。
看看您是否在输出中看到 ^M
。如果你这样做,可能是你的变量中有 ^R
。
同时从您的 printf
中删除 $v16_val
(暂时),看看您的输出是否看起来更好。如果是这样,$v16_val
中可能有一个 CR (^M
)。