将数字打印到文件中时出现的奇怪字符(bashshell)

将数字打印到文件中时出现的奇怪字符(bashshell),bash,shell,printf,echo,Bash,Shell,Printf,Echo,我的script.sh中有这一行 printf "%d" "$endMS_line" $endMS_line是一个数字。我从你那里得到那个号码 endMS_line=`cat file | awk '{if($1=='"$variable"') print NR}'` 我用 printf "%d" "$endMS_line" 或 因此,在标准输出中,一切都能完美工作。问题是当我想将该数字保存到一个文件中时(因为我想在另一个脚本中使用结果,可能有一种聪明的方法,而不是编写一个文件,然后从文件

我的script.sh中有这一行

printf "%d" "$endMS_line"
$endMS_line是一个数字。我从你那里得到那个号码

endMS_line=`cat file | awk '{if($1=='"$variable"') print NR}'`
我用

printf "%d" "$endMS_line"

因此,在标准输出中,一切都能完美工作。问题是当我想将该数字保存到一个文件中时(因为我想在另一个脚本中使用结果,可能有一种聪明的方法,而不是编写一个文件,然后从文件中读取数字,等等)

但现在我正努力做到这一点。怎么用?我把它写在标准输出中

myscript.sh inputs > file.txt
但是当我尝试查看文件时(当我打开文件时),我会看到结果加上奇怪的字符

[H[2J867
本例中正确的数字是867。有人知道我该怎么解决这个问题吗?
谢谢大家!

在脚本开始时,我得到了命令:

clear
删除该选项并使用:

echo "$endMS_line"
然后在标准输出中:

myscript.sh input > file.txt

工作完美。

我想你的意思是
endMS\u line=`awk'$1'=“$variable”{print NR}”文件`
问题可能只是你没有在数字后面添加换行符?
printf“%d\n'$endMS\u line”
有什么不同吗?如果我在脚本开始时保留“clear”命令,您的解决方案就行不通了=(
myscript.sh input > file.txt