我正在研究基于Turtle的 shell 脚本。我希望它能够(可选)接受以管道形式输入的文本来代替参数。在阅读文档并使用stdin
Turtle 功能无济于事后,我意识到我被卡住了。
Turtle 支持这样的事情吗?如果是这样,我该怎么做?
我正在研究基于Turtle的 shell 脚本。我希望它能够(可选)接受以管道形式输入的文本来代替参数。在阅读文档并使用stdin
Turtle 功能无济于事后,我意识到我被卡住了。
Turtle 支持这样的事情吗?如果是这样,我该怎么做?
我认为答案是“不”,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"
对我来说,关键的见解是,我需要在尝试阅读之前检查是否存在管道传输的文本,因为在等待输入时读取“空”句柄块,但读取“完整”句柄会获取现有内容。