![引号字符用作重定向到标准输入的命令](https://linux22.com/image/227456/%E5%BC%95%E5%8F%B7%E5%AD%97%E7%AC%A6%E7%94%A8%E4%BD%9C%E9%87%8D%E5%AE%9A%E5%90%91%E5%88%B0%E6%A0%87%E5%87%86%E8%BE%93%E5%85%A5%E7%9A%84%E5%91%BD%E4%BB%A4.png)
我是一名学生,我正在尝试一项练习,其中涉及将带有引号、双引号和其他符号的单词分配给文件名。
问题是我没有得到预期的结果。
我正在使用 scape 栏来对符号进行 scape 修改,但是当我列出文件名时,文件名的开头和结尾处会出现意外的单引号,并且 scape 栏在应该的单引号之前被单引号包围作为文件名的一部分。这有点令人困惑,我将向您展示:
$ echo > \"\\\?\$\*\'\'\*\$\?\\\"
我期望这样:
$ ls
"\?$*''*$?\"
但我得到的是这个:
$ ls
'"\?$*'\'''\''*$?\"'
我尝试过以其他方式执行此操作,例如将双引号括在单引号中,反之亦然,但我总是得到相同的结果。我已经在其他计算机上进行了相同的练习,效果非常好。更有趣的是,我发现单引号和双引号都可以作为重定向到标准输入的命令,我怀疑这与意外的名称显示有关:
$ '
>
$ "
>
这些命令似乎除了显示标准输入之外没有其他作用。这正常吗?到底是怎么回事?我能做些什么?
答案1
看来我期望ls
以ls -N
.在其他机器中,由于版本或配置问题,预期行为似乎有所不同。关于引号,看起来它们不是命令,但是当引号未正确关闭时会出现提示,因为它会将其解释为未完成。所有解释和相关链接都在评论中,感谢@don_crissti 和@Marcus Müller。