Назад | Перейти на главную страницу

Вывод скрипта отличается от вывода, когда команда запускается вручную

Я новичок в этом, и я написал простой скрипт Perl для опроса сервера на предмет данных iostat -k -x каждые несколько секунд с использованием захвата из Capture :: Tiny

Скрипт работает, однако отображаемые данные обрезаются. Этого не произойдет, если я обычно использую iostat -k -x

Это просто для отображения данных n раз в течение минуты.

Код сценария, вывод iostat -k -x, вывод при использовании сценария опроса: http://pastebin.com/K1AnqskU

Любая помощь будет оценена по достоинству!

Чувак, который немного помог JP с этим. Мы разобрались сейчас.

Capture :: Tiny работал нормально, и обратные кавычки делали то же самое, что и Capture :: Tiny.

Проблема заключалась просто в том, что тире, которые он использовал в командной строке, были Unicode, поэтому оболочка просто игнорировала их. :)

Похоже, у вас проблемы с символами «-» в сценарии.
Если я скопирую «iostat -k -x» из вашего примера в свой терминал, он даст усеченный вывод. Если я наберу то же самое вручную, результат верный.

P.S. Поскольку вы игнорируете вывод stderr, вы можете использовать

$stdout = `iostat –k –x`;