![]() |
|
|
google unix.com
|
|||||||
| Fóruns | Registar | Fórum Regimento | Ligações | Álbuns | FAQ | Lista deputados | Calendário | Pesquisa | Today's Posts | Mark Forums Read |
| 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 |
![]() |
|
|
Linkback | Thread Tools | Pesquisar este Thread | Rate Thread | Display Modes |
|
|
|
||||
|
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. |
|
||||
|
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. |
|
||||
|
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 |
|
||||
|
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.. |
|
||||
|
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"; |
![]() |
| Marcadores |
| Thread Tools | Pesquisar este Thread |
| Display Modes | Esta taxa Thread |
|
|