Shell 为什么tail命令从文件中读取不存在的值?

Shell 为什么tail命令从文件中读取不存在的值?,shell,gdb,tail,Shell,Gdb,Tail,我正在使用GDB。从GDB中,我试图读取文件的最后一行。把它放进一个变量,然后打印出来。问题是,当我从文件中读取最后一行并打印它时,它显示了原始行中不存在的内容。我的文件名:new\u name包含以下行 "swapper" "systemd" "kthreadd" "rcu_gp" 我使用以下命令从new\u name读取最后一行并打印它 shell echo set \$last_name=$(tail -n 1 new_name) > gdb.tmp source gdb.tmp

我正在使用GDB。从GDB中,我试图读取文件的最后一行。把它放进一个变量,然后打印出来。问题是,当我从文件中读取最后一行并打印它时,它显示了原始行中不存在的内容。我的文件名:new\u name包含以下行

"swapper"
"systemd"
"kthreadd"
"rcu_gp"
我使用以下命令从new\u name读取最后一行并打印它

shell echo set \$last_name=$(tail -n 1 new_name) > gdb.tmp
source gdb.tmp

p $last_name
上面的命令打印以下内容:

“rcu\U gp\000\000”

谁能告诉我为什么会发生这种情况,以及如何读取文件内容


多谢各位

为什么要设置外壳回声集?您可以使用
last\u name=$(tail-n1 new\u name)实现这一点;echo$last_name
您能告诉我们您的操作系统和gdb--version | head-1的输出吗?另外,如果您运行shell命令
cat-vet gdb.tmp
,它是否会显示这0个字节(它们将显示为
^@
)?@P。。。。正如我之前所说,我正在gdb内部运行这个命令。如果未设置shell echo,则会弹出一个错误,如当前上下文中没有符号“tail”up@MarkPlotnickgdb——版本| head-1显示:GNU gdb(Ubuntu 8.1-0ubuntu3.2)8.1.0.20180409-git。不,“cat-vet gdb.tmp”显示:set$last\u name=“rcu\u gp”$@impleze,如果将粘贴
set$last\u name=“rcu\u gp”
复制到gdb会话中,
p$last\u name
按预期工作?为什么
shell echo set
?您可以使用
last\u name=$(tail-n1 new\u name)实现这一点;echo$last_name
您能告诉我们您的操作系统和gdb--version | head-1的输出吗?另外,如果您运行shell命令
cat-vet gdb.tmp
,它是否会显示这0个字节(它们将显示为
^@
)?@P。。。。正如我之前所说,我正在gdb内部运行这个命令。如果未设置shell echo,则会弹出一个错误,如当前上下文中没有符号“tail”up@MarkPlotnickgdb——版本| head-1显示:GNU gdb(Ubuntu 8.1-0ubuntu3.2)8.1.0.20180409-git。不,“cat-vet gdb.tmp”显示:set$last\u name=“rcu\u gp”$@impleze,如果您将粘贴
set$last\u name=“rcu\u gp”
复制到您的gdb会话中,
p$last\u name
按预期工作?