首页 > 解决方案 > 如何直接从命令行在 cabal v2-repl 中运行 GHCi 语句?

问题描述

我怎样才能ghci -e "print 123"复制cabal v2-repl

我在cabal v2-repl --help没有运气的情况下搜索了“表达”或“陈述”。

标签: haskellcabal

解决方案


最简单的方法是使用外壳管道功能。看:

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

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

还有其他方法。例如,如果您希望提供更多行,则可以使用所谓的“here-doc”

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

<<<符号是单行“here-doc”的简写。

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


推荐阅读