加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

unix – 将shell的结果存储在变量中作为Int

发布时间:2020-12-15 17:03:00 所属栏目:安全 来源:网络整理
导读:所以我使用文件,我需要知道文件X中最大的行.使用Unix awk会产生我正在寻找的Int.但是在 Haskell中,我如何返回该值并将其保存到变量中? 我尝试用IO [Int]定义一些东西 – [INT] maxline = do{system "awk ' { if ( length x ) { x = length } }END{ print x
所以我使用文件,我需要知道文件X中最大的行.使用Unix awk会产生我正在寻找的Int.但是在 Haskell中,我如何返回该值并将其保存到变量中?
我尝试用IO [Int]定义一些东西 – > [INT]
maxline = do{system "awk ' { if ( length > x ) { x = length } }END{ print x }' filename";}

不起作用原因:

Couldn't match expected type 'Int',against inferred type 'IO GHC.IO.Exception.ExitCode'
这是因为 system操作返回您运行的命令的退出状态,该状态无法转换为Int.您应该使用 readProcess来获取命令输出.
> readProcess "date" [] []
  "Thu Feb  7 10:03:39 PST 2008n"

请注意,readProcess不会将命令传递给系统shell:它直接运行它.第二个参数是命令参数的位置.所以你的榜样应该是

readProcess "awk" [" { if ( length > x ) { x = length } }END{ print x }","/home/basic/Desktop/li11112mp/textv"] ""

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读