chamar o comando system

1. chamar o comando system

Aldo
fjucks

(usa Ubuntu)

Enviado em 17/04/2012 - 16:05h

Pessoal como faço para executar uma aplicação com o comando system em perl no linux,
por exemplo no meu script eu chamo as seguintes aplicações

$command = "./RNAshapes $seedsFamily > $seedsFold";



$command = "./ipknot $seedsFamily > $seedsFold";

os dois são estao na pasta, porém somente o ipknot que faz o comando, o RNAshapes nao...o que poderia ser, ja que os dois arquivos sao executaveis..

obs, quando rodo o RNAshapes normalmente ele executa e gera o resultado, somente nao esta rodando em minha aplicação






  


2. Re: chamar o comando system

José Mário
miura 787

(usa Ubuntu)

Enviado em 17/04/2012 - 16:17h

Dê um comando ls -la nos 2 arquivos e veja se tem alguma diferença nas permissões, dono, grupo e etc...


ls -la /caminho/RNAshapes

ls -la /caminho/ipknot


Poste o resultado aqui!


3. Result

Aldo
fjucks

(usa Ubuntu)

Enviado em 17/04/2012 - 16:47h

acer@acer-Aspire-5738:~/Área de Trabalho/Tarefa2$ ls -ls RNAshapes
1952 -rwx--x--x 1 acer acer 1995672 2009-05-06 11:04 RNAshapes

acer@acer-Aspire-5738:~/Área de Trabalho/Tarefa2$ ls -ls ipknot
2420 -rwx--x--x 1 acer acer 2476856 2011-01-15 07:48 ipknot


eu mudei as permissoes para 777, mesmo assim nao deu, no ipknot ele roda e sai o resultado, ja no RNAShapes nao sai o resultado.. mostra a seguinte mensagem:
sh: ./RNAShapes: not found , porem o arquivo esta no diretório...
fiz um script de teste pra testa, ele eh assim

#!/usr/bin/perl-w

use strict;




system("./RNAShapes < $ARGV[0]");



4. Re: chamar o comando system

Daniel Vinciguerra
dvinciguerra

(usa Debian)

Enviado em 18/04/2012 - 07:55h

Alem do system tem o exec e o qx{}...

system 'comando arg1 arg2 ... argN';
exec 'comando arg1 arg2 ... argN';
qx { comando arg1 arg2 ... argN };


my $result;
eval {
$result = qx{ ./comando argumento };
};
if($@){
print "Error: $@ \n";
}

print "Resultado: $result \n";

Considere utilizar algum modulo de IPC para o que você esta fazendo.
http://search.cpan.org/search?query=IPC&mode=all

Abraço,


5. Re: chamar o comando system

José Mário
miura 787

(usa Ubuntu)

Enviado em 19/04/2012 - 10:30h

fjucks escreveu:

acer@acer-Aspire-5738:~/Área de Trabalho/Tarefa2$ ls -ls RNAshapes
1952 -rwx--x--x 1 acer acer 1995672 2009-05-06 11:04 RNAshapes

acer@acer-Aspire-5738:~/Área de Trabalho/Tarefa2$ ls -ls ipknot
2420 -rwx--x--x 1 acer acer 2476856 2011-01-15 07:48 ipknot


eu mudei as permissoes para 777, mesmo assim nao deu, no ipknot ele roda e sai o resultado, ja no RNAShapes nao sai o resultado.. mostra a seguinte mensagem:
sh: ./RNAShapes: not found , porem o arquivo esta no diretório...
fiz um script de teste pra testa, ele eh assim

#!/usr/bin/perl-w

use strict;




system("./RNAShapes < $ARGV[0]");



Pode ser isso aqui:

ls -ls RNAshapes ---> Primeiro "s" minúsculo

system("./RNAShapes < $ARGV[0]"); ---> Primeiro "s" maiúsculo
sh: ./RNAShapes: not found ---> Primeiro "s" maiúsculo

Por isso ele não encontra o arquivo executável!

Modifique o comando para:

system("./RNAshapes < $ARGV[0]");

Teste de novo, e não esqueça de marcar o tópico como resolvido e indicar a melhor resposta!






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts