Я написал небольшую функцию, которая возвращает результат выполнения команды.
function axsh(cmd)
local fullCmd=cmd:lower()
local f,err=io.popen(fullCmd,"r")
if not f then
return nil,"Could not create the process '"..fullCmd.."' \nError:"..err
end
return f:read("*all")
end
s=axsh("echo hi")
--print all bytes
print(s:byte(1,s:len()))
Вывод всегда имеет \ n в конце, независимо от того, какая команда:
104 105 10
Редактировать: это происходит не только для моего собственного двоичного приложения командной строки, но и почти для всех команд ОС: Windows: "dir", "ipconfig", "echo" ... Linux: "ls","pwd", "ls" ...
Но когда я запускаю команду отдельно (т. е. в командной строке Windows), перевод строки не заканчивается.Мне это не нужно, поэтому нужно удалить последний символ перед возвратом результата.
Вопрос: всегда ли этот перевод строки присутствует в результате popen ()?Я не могу найти ссылки на это поведение в документации.