引号字符用作重定向到标准输入的命令

引号字符用作重定向到标准输入的命令

我是一名学生,我正在尝试一项练习,其中涉及将带有引号、双引号和其他符号的单词分配给文件名。

问题是我没有得到预期的结果。
我正在使用 scape 栏来对符号进行 scape 修改,但是当我列出文件名时,文件名的开头和结尾处会出现意外的单引号,并且 scape 栏在应该的单引号之前被单引号包围作为文件名的一部分。这有点令人困惑,我将向您展示:

$ echo > \"\\\?\$\*\'\'\*\$\?\\\"

我期望这样:

$ ls
"\?$*''*$?\"

但我得到的是这个:

$ ls
'"\?$*'\'''\''*$?\"'

我尝试过以其他方式执行此操作,例如将双引号括在单引号中,反之亦然,但我总是得到相同的结果。我已经在其他计算机上进行了相同的练习,效果非常好。更有趣的是,我发现单引号和双引号都可以作为重定向到标准输入的命令,我怀疑这与意外的名称显示有关:

$ '
> 

$ "
>

这些命令似乎除了显示标准输入之外没有其他作用。这正常吗?到底是怎么回事?我能做些什么?

答案1

看来我期望lsls -N.在其他机器中,由于版本或配置问题,预期行为似乎有所不同。关于引号,看起来它们不是命令,但是当引号未正确关闭时会出现提示,因为它会将其解释为未完成。所有解释和相关链接都在评论中,感谢@don_crissti 和@Marcus Müller。

相关内容