【问题标题】:Weird characters when I print a number into a file (bash shell)当我将数字打印到文件中时出现奇怪的字符(bash shell)
【发布时间】:2013-04-17 12:20:38
【问题描述】:

我的 script.sh 中有这一行

printf "%d" "$endMS_line"

$endMS_line 是一个数字。我用

得到那个号码
endMS_line=`cat file | awk '{if($1=='"$variable"') print NR}'`

我使用打印它

printf "%d" "$endMS_line"

echo $endMS_line

所以一切都在标准输出中完美运行。问题是当我想将该数字保存到文件中时(因为我想在另一个脚本中使用结果,可能有比写入文件然后从文件中读取数字等更聪明的方法来做到这一点。 .)

但现在我正在尝试这样做。如何?好吧,我把它写在标准输出中。

myscript.sh inputs > file.txt

但是当我尝试查看文件时(当我打开文件时),我看到的结果加上奇怪的字符

[H[2J867

本例中的正确数字是 867。有人知道我该如何解决这个问题吗? 谢谢!

【问题讨论】:

  • 我想你的意思是endMS_line=`awk '$1'=="$variable"'{print NR}' file`
  • 问题可能只是您没有在数字后添加换行符吗? printf '%d\n' "$endMS_line" 有影响吗?
  • William 如果我在脚本开头保留“清除”命令,您的解决方案不起作用 =(

标签: bash shell printf echo


【解决方案1】:

在脚本的开头我有命令:

clear

删除它并使用:

echo "$endMS_line"

然后在标准输出中:

myscript.sh input > file.txt

完美运行。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-06-15
    • 2017-07-18
    • 2017-08-27
    • 1970-01-01
    • 2010-11-16
    • 2018-08-10
    • 1970-01-01
    相关资源
    最近更新 更多