Kann nicht Argumente von Shell-Skript Perl-Skript übergeben

stimmen
0

Ich habe den nächsten Shell-Skript, die ich genannt habe run.sh

#!/usr/bin/perl -w
#!/bin/sh

BROL=/sc01a4/users/user/brol
PID=$$

while read line
do
  echo $line >> $BROL/rolak/1_EUSLEM_MATE/Sarrera_Testua_$PID.xml
done < ${1:-/proc/${$}/fd/0}

perl $BROL/rolak/NAGUSIA.pl $BROL $PID

Dieses Skript läuft NAGUSIA.plmit zwei Argumenten, dem Weg BROLund dem Prozess - ID, variabel PID.

#!/usr/bin/perl -w

use strict;
use warnings;

my $direktorioa = $ARGV[0];
my $prozesua = $ARGV[1];

use lib $direktorioa/rolak/lib;
use SRL::NAGUSIA qw(Egokitu_Sarrera Predikatu_Identifikazioa Predikatu_Desanbiguazioa Argumentuak_Identifikatu Argumentuak_Sailkatu Sortu_Irteera);

Egokitu_Sarrera($prozesua, $direktorioa);
Predikatu_Identifikazioa($prozesua, $direktorioa);
Predikatu_Desanbiguazioa($prozesua, $direktorioa);
Argumentuak_Identifikatu($prozesua, $direktorioa);
Argumentuak_Sailkatu($prozesua, $direktorioa);
Sortu_Irteera($prozesua, $direktorioa);

Das Perl-Skript soll zwei erhalten diese beiden Argumente, aber die Befehlszeile gibt den nächsten Fehler:

Use of uninitialized value $direktorioa in concatenation (.) or string at /sc01a4/users/user/brol/rolak/NAGUSIA.pl line 9.

Ich verwende den nächsten Befehl, um den Shell-Skript auszuführen:

cat brol/proba_fitxategiak/proba4.txt | sh brol/EHU-eustagger/run.sh | sh brol/rolak/run.sh

Ich benutze Linux, Windows nicht. Warum der Perl-Skript erhält nicht die Argumente von dem Shell-Skript übergeben?

Veröffentlicht am 16/03/2017 um 16:29
vom benutzer
In anderen Sprachen...                            


1 antworten

stimmen
5

use Aussagen werden zum Zeitpunkt der Kompilierung ausgeführt, so

use lib "$direktorioa/rolak/lib";

ausgeführt wird, bevor

my $direktorioa = "$ARGV[0]";

Ersetzen

use lib "$direktorioa/rolak/lib";

mit

use lib "$ARGV[0]/rolak/lib";

Das heißt, sollten Sie wirklich die folgenden sowieso werden:

use FindBin qw( $RealBin );
use lib "$RealBin/lib";
Beantwortet am 16/03/2017 um 17:43
quelle vom benutzer

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more