![`xsel` 在一个 zsh 中不会扩展,但在另一个 zsh 中会扩展](https://linux22.com/image/1324042/%60xsel%60%20%E5%9C%A8%E4%B8%80%E4%B8%AA%20zsh%20%E4%B8%AD%E4%B8%8D%E4%BC%9A%E6%89%A9%E5%B1%95%EF%BC%8C%E4%BD%86%E5%9C%A8%E5%8F%A6%E4%B8%80%E4%B8%AA%20zsh%20%E4%B8%AD%E4%BC%9A%E6%89%A9%E5%B1%95.png)
很多天前,我的 Arch Linux 的 zsh 按照我的要求运行:如果我输入`xsel`
并按下Tab,它将被 的输出替换xsel
。现在,在同一个盒子上,我得到了这个:
xsel: fstat error on stdin: Bad file descriptor
更奇怪的是,我现在已经安装了另一个 Arch Linux,使用相同的 zsh 和配置文件。它只是正确地进行了此扩展。
我编写了一个简单的脚本a
来发现标准输入发生了什么:
#!/bin/zsh
echo $(readlink /proc/self/fd/0)
让我们再试一次--- `./a`
,然后按Tab。在前一个框中,我得到了
pipe:\[4434444\]
而后者正是我想要的:
/dev/pts/6
我应该进一步做些什么来找出它们不同的原因并正确进行扩展?
答案1
我终于发现这是由这个引起的zsh-历史记录-子字符串搜索脚本来自我的.zshrc
。我仍然不知道为什么会发生这种情况,但我已经打开了一个问题为了这。