我在使用 Z shell 的终端会话中尝试了此操作:
stty erase ^M
我收到了这样的消息:
stty: invalid integer argument: «CCPP»
我不知道该怎么办。
答案1
在 Z shell 中,^
角色是扩展的通配符所识别的字符文件名扩展命令处理的一部分。
正如 Z shell 手册所解释的,该模式与^M
任何文件名匹配除了与模式相匹配的一个M
。所以发生的情况是该命令被扩展为stty erase
后跟当前目录中的所有文件名除了一位名叫M
如果有的话。
情况很简单,当前目录中有一个名为的文件,当扩展通配模式«CCPP»
时,该文件是结果列表中的第一个文件。^M
引用或转义元字符:
stty erase '^M'
stty erase \^M
或者关闭 Z shell 的扩展通配符:
setopt no_extended_glob
比较一下经验这个人谁有不同的文件名并且其排除模式是?
.该人位于https://askubuntu.com/a/206722/43344实际上执行了上述引用,并且确实提供了一个无效的参数(一个包含 3 个字符的字符串,而不是恰好 1 个字符的说明符)。
当然,对于erase
特殊角色来说,CR 是一个奇怪的选择。但我不会解释你到底为什么要这么做。 ☺
进一步阅读
- ”文件名生成”.Z shell 手册.sourceforge.