Это связано с тем, что действие system
возвращает состояние завершения выполняемой вами команды, которое не может быть преобразовано в Int
.Вы должны использовать readProcess
для получения вывода команд.
> readProcess "date" [] []
"Thu Feb 7 10:03:39 PST 2008\n"
Обратите внимание, что readProcess
не передает команду в системную оболочку: она запускает ее напрямую.Второй параметр - то, куда должны идти аргументы команды.Итак, ваш пример должен быть
readProcess "awk" [" { if ( length > x ) { x = length } }END{ print x }", "/home/basic/Desktop/li11112mp/textv"] ""