使用/bin/zsh-c打印时如何显示输出



当我将/bin/zsh -cprint命令一起使用时,我感到困惑,因为没有输出。

如何使用/bin/zsh -c在下一个提示中获取foo

$ print -z foo
$ foo
(↑this is expected result that foo is in next prompt)
$ /bin/zsh -c print -z foo
$
(not show foo in next prompt)
这是因为-z选项打印到编辑缓冲区(用于下一个提示(。所以如果你运行:
$ /bin/zsh -c 'print -z FOO'

它将把CCD_ 6推送到该CCD_。但该子shell将在运行print -z FOO之后立即退出,因此FOO最终将被丢弃在void中。子shell无法操作其父shell编辑缓冲区(它们是完全不同的进程,有自己的编辑缓冲区(。

如果您只想将FOO注入当前shell的下一个命令行,只需运行:

$ builtin print -z FOO

并且下一个提示看起来是这样的(_是等待用户输入的光标(:

$ FOO_

在当前shell中运行它,而不是在子shell中运行。

$ print -z echo hello
$ echo hello             <-- Already in the buffer, only pressing ENTER now 
hello
$

最新更新