由于我的声誉太低,无法发布图片,所以我将复制我的问题来源的终端输出:
username@computer:/run$ cat rsyslogd.pid
599username@computer:/run$ cat acpid.pid
636
username@computer:/run$cat acpid.pid附带了一个行间隔,而cat rsyslog.pid没有。
但是,如果我打开两个文件,就没有明显的区别(例如,文件acpid.pid没有额外的空行)
问题是:为什么一个.pid 文件带有一个行间隔,而另一个没有?
附加信息:我的操作系统是Ubuntu18.04.3
发布于 2020-01-08 16:34:46
rsyslogd.pid文件可能不会以换行符(ASCI0x0A)结尾。
您没有提到如何打开文件,但是,我怀疑您使用了一个文本编辑器,它不会显示不可打印的字符(比如换行符和后置空间)。与其使用文本编辑器,不如使用十六进制工具查看原始文件。然后将十六进制值与ASCII表进行比较。我想你会发现599和636之后的不可打印字符是不同的.
hexdump -C rsyslogd.pid
hexdump -C acpid.pid下面的命令序列再现您的输出。关键是使用回显命令的-n标志来创建一个文件,最后没有换行符。
$ echo -n test > file_no_new_line.txt
$ echo test > file_with_new_line.txt
$ cat file_no_new_line.txt
test$ cat file_with_new_line.txt
test
$下面是我的示例中显示的两个文件的十六进制输出。
$ hexdump -C file_no_new_line.txt
00000000 74 65 73 74 |test|
00000004
$ hexdump -C file_with_new_line.txt
00000000 74 65 73 74 0a |test.|
00000005
$命令输出(在本例中是cat的命令输出)和shell提示符($)相互连接也是shell依赖的。如果无法用上述步骤再现行为,请尝试另一个shell (例如/bin/sh)
https://stackoverflow.com/questions/59649902
复制相似问题