0

我正在研究基于Turtle的 shell 脚本。我希望它能够(可选)接受以管道形式输入的文本来代替参数。在阅读文档并使用stdinTurtle 功能无济于事后,我意识到我被卡住了。

Turtle 支持这样的事情吗?如果是这样,我该怎么做?

4

1 回答 1

0

我认为答案是“不”,Turtle 不支持它。但它得到了 Haskell 的支持。我是这样做的:

import System.IO

main :: IO ()
main = do
    gotPipedInText <- hReady stdin
    case gotPipedInText of
        True -> do
            message <- getContents
            putStr message
        False -> putStr "nothing piped in\n"

对我来说,关键的见解是,我需要在尝试阅读之前检查是否存在管道传输的文本,因为在等待输入时读取“空”句柄块,但读取“完整”句柄会获取现有内容。

于 2021-12-19T18:33:48.650 回答