现在,我很确定这里的限制。但让我们退后一步。
简单的说法
READNULLCMD="less -R"
不起作用,产生以下错误:
$ <basic.tex
zsh: command not found: less -R
好的。很确定这是因为默认情况下,zsh 不会在每个空格处拆分字符串变量。无论 zsh 在哪里使用这个变量,它在应该使用 ${=READNULLCMD} 的地方都使用 $READNULLCMD,以确保选项参数通过正常空格与命令正确分隔。请参阅 1996 年的讨论(!): http ://www.zsh.org/mla/users/1996/msg00299.html
那么,在不设置 SH_WORD_SPLIT (99% 的时间我都不想要)的情况下,最好的解决方法是什么?
到目前为止,我最好的想法是将 READNULLCMD 分配给一个简单的 zsh 脚本,该脚本只在 STDIN 上调用“less -R”。例如
#!/opt/local/bin/zsh
less -R /dev/stdin
不幸的是,由于某种原因,这似乎是一个非首发,因为这种方式很少使用,因此错过了 /dev/stdin 输入的前几行。
有人有更好的想法吗?