The UNIX and Linux Forums  


Go Back   O UNIX e Linux Forum > Top Fóruns > Programação Shell Script e
.
google unix.com



Programação Shell Script e Post perguntas sobre ksh, CSH, SH, BASH, Perl, PHP, SED, Awk e outros scripts shell e shell scripts línguas aqui.

Mais UNIX e Linux Fórum Tópicos Você pode achar Helpfull
Fio Thread Starter Fórum Respostas Última postagem
Passando parâmetro a partir de um arquivo de shell script Amit.Sagpariya Programação Shell Script e 7 10-29-2008 08:08
Passando argumentos para um script de programação no ficheiro enquanto cron weblogicsupport Sun Solaris 4 01-27-2008 11:16
Precisa de ajuda para passar variáveis em shell script para um perl-liner Xek Programação Shell Script e 1 01-15-2008 03:12
Passando valor a partir de shell script. Pls arquivo dreams5617 Programação Shell Script e 4 11-30-2004 07:16
shell script sinal identificador jalburger Programação Shell Script e 2 12-04-2002 05:10

Closed Thread
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
Linkback Thread Tools Pesquisar este Thread Rate Thread Display Modes
  #1 (permalink)  
Old 11-17-2008
pinkgladiator pinkgladiator is offline
Usuário
  
 

Join Date: Oct 2008
Lugares: 17
Transmitir um arquivo manipulador e um array de Perl para Shell Script

Oi lá,

Estou tentando fazer uma chamada para um script de um Perl script. aqui está o código:
@ args \u003d ( "sh", "someshellprg.sh", "um arquivo manipulador", "um array");
system (@ args) \u003d\u003d 0
ou morrer "system @ args failed: $?";

no reservatório programa, vou analisar se os argumentos saídas por meio de:

if [$ #-ne 2]
then echo "missing input"
saída 1
fi

o script retorna "falta de entrada", alguma idéia? Thanks in advance.
  #2 (permalink)  
Old 11-17-2008
jim McNAMARA jim mcnamara is offline Forum Staff  
...@...
  
 

Join Date: Feb 2004
Localização: NM
Mensagens: 5.789
tente algo assim

Código:
$result = `sh -c someshellprg.sh a file handler  @arr`;

O «um arquivo manipulador parte« não faz sentido para mim. Você pode passar o nome de um (perl ou shell) script, mas diferente do que eu não conseguir o que você está tentando fazer.
  #3 (permalink)  
Old 11-17-2008
pinkgladiator pinkgladiator is offline
Usuário
  
 

Join Date: Oct 2008
Lugares: 17
Estou tentando ligar um shell script ao longo de duas entradas, a primeira é um arquivo eo segundo é um array. Tentei o código, mas não funcionou. Agora que você sabe o que estou tentando fazer, pode sugerir uma solução? Obrigado.
  #4 (permalink)  
Old 11-17-2008
jim McNAMARA jim mcnamara is offline Forum Staff  
...@...
  
 

Join Date: Feb 2004
Localização: NM
Mensagens: 5.789
test.pl

Código:
#!/usr/bin/perl -w
    use strict;
    my @array = (1, 2, 3, 4, 5, 6, 9);
    my $filename = "/path/to/myfilename";    
    my @args = ( "myshell.sh", "$filename", "@array");
    system(@args) == 0 || die;


myshell.sh

Código:
echo "the filename is $1 \c"
set -A array  $2
echo  "the array = ${array[*]}"


Código:
/home/jmcnama>  test.pl
the filename is /path/to/myfilename the array = 1 2 3 4 5 6 9

  #5 (permalink)  
Old 11-17-2008
pinkgladiator pinkgladiator is offline
Usuário
  
 

Join Date: Oct 2008
Lugares: 17
Não funcionou, infelizmente. A matriz não foi passado para o shell script.

Eu estou mudando métodos. O perl chama o script shell script sem parâmetros agora. Ele escreve para um arquivo, o script e lê a partir dele. O problema agora é que apenas uma linha pode ser lido, embora haja mais de uma linha no arquivo, ou nada pode ser lido. Eu testei algumas maneiras diferentes de fazer isso, segue um deles (que não leram a todos). Criei um arquivo com algumas linhas, e que o script funciona bem, mas não vai ler mais de uma linha, se o arquivo foi gerado pela perl script. Obrigado!

#! / bin / bash
FILE \u003d "/ home / ... / umficheiro"

textArray [0] \u003d "" # segure texto
c \u003d 0 # counter
# Ler todo o arquivo em loop
enquanto lê linha
fazer
textArray [$ c] \u003d $ linha # armazenar linha
c \u003d $ (expr $ c + 1) # contador aumento de 1
feito <$ FILE
# Obter comprimento de array
len \u003d $ (expr $ c - 1)

# Uso de loop para inverter a matriz
for ((i \u003d 0; i <$ len; i ++));
fazer
echo "fazer é o trabalho: $ (textArray [$ i])"
feito

Última edição por pinkgladiator; em 11/17/2008 10:44..
  #6 (permalink)  
Old 11-17-2008
pinkgladiator pinkgladiator is offline
Usuário
  
 

Join Date: Oct 2008
Lugares: 17
Estranho! Eu usei o seguinte script para ver quantas linhas de código que tenho, e ele diz que 1, mas eu tenho duas linhas de código.

a \u003d 0
enquanto lê linha
fazer uma \u003d$(($ um 1));
echo $ a;
feito < "/ home / ... / emailFile.txt"
echo "Final linha contar é a seguinte: $ a";
Closed Thread

Marcadores

Thread Tools Pesquisar este Thread
Pesquisar este Thread:

Pesquisa Avançada
Display Modes Esta taxa Thread
Esta taxa Thread:

Destacamento Regimento
Você não pode postar novas threads
Você não pode postar respostas
Você não pode postar anexos
Você não pode editar suas postagens

BB code é Ligado
Smilies são Ligado
[IMG] código é Ligado
Código HTML é Desligado
Trackbacks são Ligado
Pingbacks são Ligado
Refbacks são Ligado




Todos os horários são GMT -4. A hora é agora 09:24.


Powered by: vBulletinCopyright © 2000 - 2006, Jelsoft Enterprises Limited. Língua Traduções Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
O UNIX e Linux Fóruns Content Copyright © 1993-2009. Todos os Direitos Reserved.Ad Gestão por RedTyger

Content Relevant URLs por vBSEO 3.2.0