Shell Script: Script para copiar a saida do comando glxgears

Iniciado por Komodor, 28 de Junho de 2007, 05:52

tópico anterior - próximo tópico

Komodor

pessoal to tentando criar um script para que ele abra o glxgears -printfps e que eu possa pegar o resultado para uma analise.
o resultado do glxgears é gravado em um arquivo (newfile)
eu criei um script que chama o glxgears -printfps por somente glxgears para facilitar...
#!/bin/sh
redirect=`glxinfo | grep '^direct rendering: *'`
echo "verificando sua placa de vídeo"
echo "---------------------------------------------------"
if [ "$redirect" = 'direct rendering: Yes' ];
then
exec glxgears& > newfile
sleep 6
killall glxgears
else
echo "Detectado: sua placa de vídeo esta com 3D desativado";
echo "por favor verifique o driver de sua placa de vídeo"
fi


eu coloquei o "&" para  que eu possa finalizar o programa,pois ele não fica executado até mandar fechar.

ali no caso eu mandei esperar por 6 segundos para que ele possa testar o glxgears uma vez, ele faz o teste durante 5 segundos

alguém pode me ajudar nesse caso? não estou conseguindo uma resposta pra esse caso...
grato
Padrão de Pacotes no linux é INDISPENSÁVEL! junte-se a nós
http://ubuntuforum-br.org/index.php/topic,25549.0.html
o crescimento do linux depende deste padrão,apóie você também!

Komodor

usando echo invez do exec tambem sai na mesma:
echo `glxgears`&> newfile
Padrão de Pacotes no linux é INDISPENSÁVEL! junte-se a nós
http://ubuntuforum-br.org/index.php/topic,25549.0.html
o crescimento do linux depende deste padrão,apóie você também!

Komodor

pessoal eu sei o quão é irritante dar um up em tópicos ou ficar pedindo respostas de novo
mas estou a vários dias procurando essa reposta e não acho nada!

acho que o pessoal interpretou que eu não pesquisei e no primeiro obstáculo já vim pedir ajudar
por favor quem puder me ajudar nesse caso
Padrão de Pacotes no linux é INDISPENSÁVEL! junte-se a nós
http://ubuntuforum-br.org/index.php/topic,25549.0.html
o crescimento do linux depende deste padrão,apóie você também!

clcampos

#3
Komodor qual seu problema? É parar o comando glxgears?

Sem tentar criar a solução para seu problema vou tentar dar uma possível solução (já que devem existir muitas).

Leia sobre o comando at (man at). Você deve conhecer o comando, e ele serve para agendar um comando. Então pensei o seguinte:


  • Antes de executar o glxgears (dentro do script) execute um outro script com o at (agende ele para 5, 10 segundos a frente, por exemplo)
  • Execute o glxgears
  • Neste segundo script você pega qual o número do processo do glxgears e da um kill nele.
  • Espero que com isto o shell script original ainda continue rodando
Cristiano/Timóteo - MG
.: Como Fazer Perguntas de Forma Inteligente :.                
Com dúvida? pesquise!

Komodor

Citação de: clcampos online 30 de Junho de 2007, 19:29
Komodor qual seu problema? É parar o comando glxgears?

Sem tentar criar a solução para seu problema vou tentar dar uma possível solução (já que devem existir muitas).

Leia sobre o comando at (man at). Você deve conhecer o comando, e ele serve para agendar um comando. Então pensei o seguinte:


  • Antes de executar o glxgears (dentro do script) execute um outro script com o at (agende ele para 5, 10 segundos a frente, por exemplo)
  • Execute o glxgears
  • Neste segundo script você pega qual o número do processo do glxgears e da um kill nele.
  • Espero que com isto o shell script original ainda continue rodando
por esse script ele consegue rodar o glxgears e para-lo. mas eu preciso pegar a saida do glxgears. exemplo:
~$ glxgears
35966 frames in 5.0 seconds = 7193.065 FPS
35675 frames in 5.0 seconds = 7134.993 FPS

essa é a saída do glxgears que eu preciso passa-lo para um arquivo de texto
por isso o "> newfile"
mas como ele esta em "&" ele não obedece o comando que manda ele colar no arquivo newfile
Padrão de Pacotes no linux é INDISPENSÁVEL! junte-se a nós
http://ubuntuforum-br.org/index.php/topic,25549.0.html
o crescimento do linux depende deste padrão,apóie você também!

Mythus

Você está errando no rediresionamento da saída.
$ glxgears 1>>  saida
Tem que usar >> e não >

[user@localhost ~]$ cat saida
9314 frames in 5.0 seconds = 1862.732 FPS
13515 frames in 5.0 seconds = 2702.491 FPS
13371 frames in 5.0 seconds = 2674.125 FPS
13745 frames in 5.0 seconds = 2748.777 FPS
13693 frames in 5.0 seconds = 2738.550 FPS
13112 frames in 5.0 seconds = 2622.394 FPS
13369 frames in 5.0 seconds = 2673.736 FPS
14221 frames in 5.0 seconds = 2844.165 FPS
14248 frames in 5.0 seconds = 2849.464 FPS
14180 frames in 5.0 seconds = 2835.922 FPS
15940 frames in 5.0 seconds = 3187.916 FPS
14609 frames in 5.0 seconds = 2921.798 FPS
13626 frames in 5.0 seconds = 2724.448 FPS
13761 frames in 5.0 seconds = 2751.218 FPS
14102 frames in 5.0 seconds = 2820.383 FPS
14063 frames in 5.0 seconds = 2812.580 FPS
12421 frames in 5.0 seconds = 2484.014 FPS
11389 frames in 5.0 seconds = 2277.697 FPS
12295 frames in 5.0 seconds = 2458.492 FPS
14085 frames in 5.0 seconds = 2816.384 FPS
11377 frames in 5.0 seconds = 2275.294 FPS
13471 frames in 5.0 seconds = 2694.196 FPS
12039 frames in 5.0 seconds = 2407.478 FPS
9020 frames in 5.0 seconds = 1803.793 FPS
Abraços,
_________________
Não é programador, não é hacker. Formado em Direito pela UFPb. Usuário de Linux em tempo integral: Linux User Number: 174012.