我正在跟进Unix 编程环境练习并遇到一些奇怪的问题。在进行ed
练习时,当您刚开始时ed
,输入练习,然后执行
w poem
'poem '
当我测试另一个文件时,它保存在文件系统中,开始ed
,输入一些单词,
w raistlin
它保存为'raistlin '
相同的结果(文件名用单引号括起来,后跟一个空格),尽管我在第三个上进行了测试,如果我从文件名开始,它会保存为普通文件。还有其他人看到这些结果吗?我知道这有点深奥,我想我可能是整个地球上ed
这个周末使用的 7 个人之一。我正在使用 Manjaro Arch。
答案1
据原始用户称,他们在将文件保存为ed
.
w test
(在上面的字符串后输入额外的空格test
)
这样做会促使 GNUls
在其输出中的文件名周围添加单引号。它会这样做任何“不寻常”的文件名。在本例中,因为它包含空格字符。
$ ls -l
total 4
-rw-rw-r-- 1 myself myself 6 Mar 9 21:17 'test '
ls
如果您愿意,可以使用ls --literal
、ls -N
、ls --quoting-style=literal
或将环境变量设置QUOTING_STYLE
为字符串,让 GNU输出不带引号的文件名literal
。但是,由于ls
输出仅用于看着,这并不重要。
有关的:
答案2
似乎是文件名后面多了一个空格。所以当你像这样指定文件名时。
ed poem
效果很好。在 ed 中输入如下命令时要非常小心:
w poem(enter)
... 并不是:
w poem (enter)