我想知道是否可以将一些内容发送到命令的标准输入,然后继续从终端读取。
我试图解决的问题是每次打开 Node.js REPL 时执行一些初始化代码,因此我从一开始就可以在 REPL 上使用一些函数。基本上,要自动化此操作:
$ node
> require('./myutils')
> ... continue using the REPL
我现在可以使用这里的字符串将一些文本发送到命令的标准输入:
$ node <<<"require('./myutils')"
这将执行我的初始化代码,但之后也会立即关闭 REPL。
也许 Node.js 对于这个特定问题有另一种解决方案,但我想知道是否有一种通用方法来混合来自字符串或文件的输入,然后继续从终端读取。
更新:克里斯·唐的解决方案工作,但 Node.js REPL 默认情况下不会在交互模式下运行(这是预期的,因为我们不是从终端读取)。幸运的是, -i
Node.js 终端中有一个强制交互模式的选项:
{ echo "require('./myutils')" ; cat ; } | node -i
答案1
{ echo "require('./myutils')" ; cat ; } | node
请注意,当获取非来自终端的输入时,您的 REPL 环境可能会表现不同(例如,可能不会出现提示)。