首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在使用Shelly运行外部进程时,如何处理多行输出?

在使用Shelly运行外部进程时,如何处理多行输出?
EN

Stack Overflow用户
提问于 2017-10-16 18:11:43
回答 1查看 45关注 0票数 0

我正在寻找一个Text -> [Text]类型的函数,本质上它将根据换行符分割文本。但是,我不能只在\n上拆分,因为可以像在\\n那样转义这一点,我不知道还有什么其他复杂的问题存在。

Main.hs

代码语言:javascript
复制
{-# LANGUAGE OverloadedStrings #-}

import Data.Text (Text)
import Data.Text.IO
import Shelly

example :: Sh Text
example = run "./example.sh" []

main :: IO ()
main = do
  v <- shelly example
  Data.Text.IO.putStrLn v

example.sh

代码语言:javascript
复制
echo "test1\\n"
echo "test2"
echo "test3"

./example.sh输出

代码语言:javascript
复制
test1\n
test2
test3

这是3行的输出。

Shelly是否支持某些功能来处理上述问题?或者其他Haskell库来解析输出?我想它看起来类似于putStrLn,但是不是输出到IO (),而是输出到[Text]

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-10-16 18:35:41

https://hackage.haskell.org/package/text-1.2.2.2/docs/Data-Text.html#v:lines

代码语言:javascript
复制
main :: IO ()
main = do
  v <- shelly example
  print $ Data.Text.lines v
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46776578

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档