我如何直接从命令行 运行 cabal v2-repl 中的 GHCi 语句?

How can I run a GHCi statement in cabal v2-repl directly from command line?

如何在 cabal v2-repl 中复制 ghci -e "print 123"

我在 cabal v2-repl --help 中搜索了 "expression" 或 "statement",但没有成功。

最简单的方法是使用 shell 管道功能。参见:

% cabal v2-repl <<< ':type zip'
...
λ zip :: [a] -> [b] -> [(a, b)]
λ Leaving GHCi.

这个<<<符号,在sh脚本解释器中,意味着引用的字符串被发送到命令的标准输入,后面是换行符,然后是文件结尾。

还有其他方法。例如,如果你想提供更多行,你可以使用所谓的 "here-doc":

% cabal repl <<EOF
:type zip
:type fst
EOF

<<< 表示法是 shorthand 单行 "here-doc"。

一般来说,程序可能知道它的标准输入是终端(假设,实时用户)还是文件heredoc假装是),并且行为不同。但通常它会以任何一种方式工作,而且,如果你可以将东西发送到它的标准输入,你就可以自动化它。