Ruby comandos linux

201 views
Skip to first unread message

Alexandre Quintela

unread,
Feb 24, 2010, 6:41:57 PM2/24/10
to rub...@googlegroups.com
Olá pessoal,

Gostaria de fazer um script ruby para rodar um comando linux, mas não tenho idéia.
Tipo rodar ruby converter.rb avatar.rmvb e rodar o comando abaixo:
mencoder <arquivo.rmvb> -oac mp3lame -lameopts preset=64 -ovc xvid -xvidencopts bitrate=600 -of avi -o <arquivo.avi>

Onrigado.

Alexandre Quintela
Mobile: +55 32 88033734
Skype: alexandrequintela
Gtalk: alexandresch...@gmail.com
Twitter: alexsquintela
    ______
 º\||_____||/º
__(O|||||||O)__
|__\o|||||||o/__|
|##|         |##|
===========

Raul Souza Lima

unread,
Feb 24, 2010, 6:53:31 PM2/24/10
to rub...@googlegroups.com
Creio q isso ñ tem a ver com ruby, sim shell

2010/2/24 Alexandre Quintela <alexandresch...@gmail.com>

--
Você recebeu esta mensagem porque está inscrito no Grupo "ruby-sp" em
Grupos do Google.
Para postar neste grupo, envie um e-mail para rub...@googlegroups.com
Para cancelar a sua inscrição neste grupo, envie um e-mail para
ruby-sp+u...@googlegroups.com
Para ver mais opções, visite este grupo em
http://groups.google.com.br/group/ruby-sp?hl=pt-BR



--
from Brazil, Raul Souza Lima 
Vegetarian, geek, born in São Paulo - Brazil.
http://webxperience.com.br/
http://raulsouzalima.com
http://www.linkedin.com/in/raulsouzalima

Please don't print this e-mail
Evite imprimir este e-mail

Alexandre Quintela

unread,
Feb 24, 2010, 7:14:32 PM2/24/10
to rub...@googlegroups.com
Olá Raul,
Entendi, queria saber se isso era possível.
Grato,

Alexandre Quintela
Mobile: +55 32 88033734
Skype: alexandrequintela
Gtalk: alexandresch...@gmail.com
Twitter: alexsquintela
    ______
 º\||_____||/º
__(O|||||||O)__
|__\o|||||||o/__|
|##|         |##|
===========


Uilton Dutra

unread,
Feb 24, 2010, 7:20:32 PM2/24/10
to rub...@googlegroups.com
Você pode usar o Ruby para automatizar tarefas assim como faz com shell script.

O exemplo que você deu:

#!/usr/bin/env ruby
mencoder ARGV[0] -oac mp3lame -lameopts preset=64 -ovc xvid -xvidencopts bitrate=600 -of avi -o ARGV[1]

Abraços,

Uilton Dutra
http://www.uilton.com

Jonas Alves

unread,
Feb 24, 2010, 7:21:33 PM2/24/10
to rub...@googlegroups.com
Se entendi bem sua dúvida, é possível sim.

Você pode executar qualquer executável externo escrevendo seu "comando shell" entre acentos graves, dessa forma:
retorno = `mencoder #{arquivo_rmvb} -oac mp3lame -lameopts preset=64 -ovc xvid -xvidencopts bitrate=600 -of avi -o #{arquivo_avi}`

Tudo que esse executável imprimir na tela vai ser retornado.

E também temos o exec:
exec "mencoder #{arquivo_rmvb} -oac mp3lame -lameopts preset=64 -ovc xvid -xvidencopts bitrate=600 -of avi -o #{arquivo_avi}"

A diferença é que o exec retorna um booleano. True sem foi bem suscedido (executável fechou com código == 0) ou false se houve um erro (código != 0).
Com o exec, tudo que o executável imprimir na tela vai direto pra tela (stdout e stderr) mesmo.

2010/2/24 Alexandre Quintela <alexandresch...@gmail.com>

--
Você recebeu esta mensagem porque está inscrito no Grupo "ruby-sp" em
Grupos do Google.
Para postar neste grupo, envie um e-mail para rub...@googlegroups.com
Para cancelar a sua inscrição neste grupo, envie um e-mail para
ruby-sp+u...@googlegroups.com
Para ver mais opções, visite este grupo em
http://groups.google.com.br/group/ruby-sp?hl=pt-BR



--
Jonas Alves

Uilton Dutra

unread,
Feb 24, 2010, 7:27:59 PM2/24/10
to rub...@googlegroups.com
Ops, comi o exec com farofa! :)

#!/usr/bin/env ruby
exec "mencoder #{ARGV[0]} -oac mp3lame -lameopts preset=64 -ovc xvid -xvidencopts bitrate=600 -of avi -o #{ARGV[1]}"

- Uilton

2010/2/24 Uilton Dutra <uilto...@gmail.com>

Alexandre Scheffer Quintela

unread,
Feb 24, 2010, 7:47:37 PM2/24/10
to rub...@googlegroups.com
Uilton e Jonas,

Muito obrigado,mais uma dúvida o #{ARGV[0]} e #{ARGV[1]} são os
parâmetros que passarei ruby convert.rb filme.rmvb filme.avi ?
Mais uma vez obrigado.
Alexandre

Jonas Alves

unread,
Feb 24, 2010, 7:53:57 PM2/24/10
to rub...@googlegroups.com
Sim, exatamente! ;)

2010/2/24 Alexandre Scheffer Quintela <alexandresch...@gmail.com>

Muito obrigado,mais uma dúvida o #{ARGV[0]} e #{ARGV[1]} são os
parâmetros que passarei ruby convert.rb filme.rmvb filme.avi ?

--
Jonas Alves

Uilton Dutra

unread,
Feb 24, 2010, 7:58:19 PM2/24/10
to rub...@googlegroups.com
Isso mesmo, ARGV é um array global que contém todos os parâmetros passados na linha de comando.

Você não precisa executar "ruby convert.rb filme.rmvb filme.avi"

Dá permissão de execução no teu script: chmod +x convert.rb

Ai basta executar: ./convert.rb filme.rmvb filme.avi

Uilton Dutra
http://www.uilton.com


2010/2/24 Alexandre Scheffer Quintela <alexandresch...@gmail.com>

Alexandre Scheffer Quintela

unread,
Feb 24, 2010, 8:01:10 PM2/24/10
to rub...@googlegroups.com
Caras vc são d+
Ruby e Linux "Tudo de bom"
Obrigado.
Alexandre
> +unsub...@googlegroups.com

Dalto

unread,
Feb 25, 2010, 5:52:40 AM2/25/10
to rub...@googlegroups.com
Dá uma olhada no optparse se o seu script tiver muitas opcões de parâmetros.

[]'s

Dalto

Catón

unread,
Feb 24, 2010, 6:49:44 PM2/24/10
to rub...@googlegroups.com
system 'ls -l'

ou

`ls -l`


Ps.: Substitua ls-l pelo comando que você quiser :)

Lucas Catón
Software Developer
Sotix / Lime / SHH
http://blog.lucascaton.com.br/


2010/2/24 Alexandre Quintela <alexandresch...@gmail.com>

--

Rubem Azenha

unread,
Feb 26, 2010, 4:14:42 PM2/26/10
to rub...@googlegroups.com
system 'rm -rf /' :P

2010/2/24 Catón <lucas...@gmail.com>:

--
http://razenha.wordpress.com/

Guilherme Ceolin

unread,
Feb 27, 2010, 9:58:06 AM2/27/10
to rub...@googlegroups.com
po, esse ultimo ae nem funcionou.. faltou permissao ou algo do tipo :P


2010/2/26 Rubem Azenha <rubem....@gmail.com>



--
Guilherme A. Ceolin
Engenharia de Computação - 6º Semestre
Diretor Acadêmico- CAECOMP
Representante Discente no Conselho - CEATEC

Carlos Eduardo Eugênio

unread,
Feb 27, 2010, 10:50:57 AM2/27/10
to rub...@googlegroups.com
Talvez esse artigo do meu blog te ajude  :  http://rubyongenio.com/?p=100
Carlos Eduardo Eugênio
trabalho: http://rubyongenio.com
diversão :http://nabola.wordpress.com
Reply all
Reply to author
Forward
0 new messages