![]() |
|
|
google unix.com
|
|||||||
| Forums | S'inscrire | Forum Rules | Liens | Albums | FAQ | Liste des membres | Calendrier | Recherche | Aujourd'hui, les postes | Marquer les forums comme lus |
| De programmation et de script Shell Posez vos questions à propos de KSH, CSH, SH, BASH, PERL, PHP, SED, awk et d'autres scripts shell et les langages de script shell ici. |
Plus d'UNIX et Linux Forum Sujets Vous trouverez peut-être utile
|
||||
| Fil | Thread Starter | Forum | Réponses | Last Post |
| Passage de paramètres d'un fichier de script shell | Amit.Sagpariya | De programmation et de script Shell | 7 | 10-29-2008 08:08 AM |
| Passer les arguments d'un script shell à partir d'un fichier alors que l'ordonnancement dans cron | weblogicsupport | SUN Solaris | 4 | 01-27-2008 11:16 PM |
| Besoin d'aide en passant des variables en shell script perl à une ligne | Xek | De programmation et de script Shell | 1 | 01-15-2008 03:12 PM |
| Passage de la valeur shell script. Pls fichier | dreams5617 | De programmation et de script Shell | 4 | 11-30-2004 07:16 PM |
| shell script signal handler | jalburger | De programmation et de script Shell | 2 | 12-04-2002 05:10 PM |
![]() |
|
|
LinkBack | Thread Tools | Recherche sur ce Thread | Rate Thread | Modes d'affichage |
|
|
|
||||
|
Passage d'un fichier de traitement et d'une gamme de Perl, Shell Script
Salut,
Je tente d'appeler un script shell à partir d'un Perl script. voici le code: @ args \u003d ( "sh", "someshellprg.sh", "un gestionnaire de fichier", "un tableau"); system (@ args) \u003d\u003d 0 or die "system @ args failed: $?"; dans le programme shell, je examiner si les arguments de sorties en utilisant: if [$ #-ne 2] then echo "entrée manquante" exit 1 fi le script retourne "entrée manquante", des idées? Merci d'avance. |
|
||||
|
essayer quelque chose de ce genre Code:
$result = `sh -c someshellprg.sh a file handler @arr`; La «partie d'un fichier de gestion» n'a pas de sens pour moi. Vous pouvez passer le nom d'un (perl ou shell) de script, mais d'autres que je ne suis pas d'obtenir ce que vous essayez de faire. |
|
||||
|
J'essaie d'appeler un script shell avec deux entrées, le premier est un fichier et le second est un tableau. J'ai essayé le code, mais cela n'a pas fonctionné. Maintenant que vous savez ce que je suis en train de faire, proposez-vous une solution? Merci.
|
|
||||
|
test.pl Code:
#!/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 Code:
echo "the filename is $1 \c"
set -A array $2
echo "the array = ${array[*]}"
Code:
/home/jmcnama> test.pl the filename is /path/to/myfilename the array = 1 2 3 4 5 6 9 |
|
||||
|
Il n'a malheureusement pas fonctionné. Le tableau n'est pas passé sur le shell script.
Je suis l'évolution des méthodes. Le perl appelle le script shell script sans paramètres maintenant. Il écrit dans un fichier, le script lit de celui-ci. Le problème maintenant est que seulement une ligne peut être lue, même si il ya plus d'une ligne dans le fichier, ou rien ne peut être lu. J'ai essayé plusieurs façons de le faire, l'un des liens ci-dessous (il ne lit pas du tout). J'ai créé un fichier avec quelques lignes, et le script fonctionne bien, mais il ne suit plus d'une ligne si le fichier a été généré par le perl script. Merci! #! / bin / bash FILE \u003d "/ home / ... / somefile" textArray [0] \u003d "" # tenir texte c \u003d 0 # counter # Lit tout le fichier en boucle tout lire en ligne faire textArray [$ c] \u003d $ line # magasin en ligne c \u003d $ (expr $ c + 1) # augmentation de 1 contre done <$ FILE # Obtenir la longueur du tableau len \u003d $ (expr $ c - 1) # Utilisation de la boucle d'inverser la matrice de ((i \u003d 0; i <$ len; i ++)); faire echo "faire le travail: $ (textArray [$ i])" fait Dernière édition par pinkgladiator; au 11.17.2008 10:44 PM.. |
|
||||
|
Étrange! J'ai utilisé le script suivant pour voir le nombre de lignes de code que j'ai, et il dit 1, mais j'ai deux lignes de code.
a \u003d 0 tout lire en ligne faire un \u003d$(($ un +1)); echo $ a; done < "/ home / ... / emailFile.txt" echo "Final ligne est de: $ a"; |
![]() |
| Bookmarks |
| Thread Tools | Recherche sur ce Thread |
| Modes d'affichage | Rate this thread |
|
|