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"] "" (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |