Saída de script diferente da saída quando o comando é executado manualmente [fechado]

1

Sou relativamente novo nas coisas e venho escrevendo um script Perl simples para pesquisar um servidor por dados iostat -k -x a cada poucos segundos usando captura do Capture :: Tiny

O script funciona, mas os dados exibidos estão sendo cortados. Isso não acontece se eu normalmente faço iostat -k -x

Isto é apenas para exibir os dados n vezes no espaço de um minuto.

Código de script, saída iostat -k -x, saída quando o script de pesquisa é usado aqui: link

Qualquer ajuda seria apreciada!

    
por Nemekh 17.09.2010 / 22:19

2 respostas

2

Cara aqui, que ajudou JP junto com isso um pouco. Nós descobrimos isso agora.

Capture :: Tiny estava funcionando bem e backticks faziam exatamente o mesmo que Capture :: Tiny.

O problema era simplesmente que os traços usados na linha de comando eram unicode, então o shell simplesmente os ignorava. :)

    
por 17.09.2010 / 22:53
1

Parece que você tem problemas com caracteres "-" no seu script.
Se eu copiar e colar "iostat -k -x" do seu exemplo para o meu terminal, ele fornecerá saída truncada. Se eu digitar o mesmo manualmente, a saída está correta.

P.S. Já que você ignora a saída stderr, você pode usar

$stdout = 'iostat –k –x';
    
por 17.09.2010 / 22:39

Tags