2017-12-18 1 views
1

Ich möchte ein Shell-Skript schreiben, das eine Datei liest und die Spalten dieser Datei als Eingabe für ein Perl-Skript verwendet. Das Perl-Skript durchläuft Dateien (Nummer1, Nummer2), zieht die ID heraus und schreibt diese in eine neue Datei. Das Perl-Skript funktioniert einwandfrei, wenn ich es mit der Befehlszeile verwende, meine Frage ist jedoch, wie ich ein Shell-Skript schreibe, um die Variablen in meiner Eingabedatei für das Perl-Skript zu verwenden.Shell-Skript zum Lesen von Variablen aus Datei und Verwendung in Perl-Skript

Mein input_file sieht aus wie

number1 ID1 
number2 ID2 

Und ich benutze den folgenden Shell-Skript (was nicht funktioniert, so helfen Sie bitte mit diesem)

#!/bin/bash 

input_file="$1" 

while IFS=" " read -r number ID 
do 
    perl extract.pl $ID $number.ext > $number_ID.ext 
done < "$1" 
+1

Bitte werfen Sie einen Blick: http://www.shellcheck.net/ – Cyrus

+0

Great Site, ich wusste es nicht. Vielen Dank! – Gravel

Antwort

2

ersetzen

$number_ID.ext 

mit

${number}_ID.ext 

_ ist ein Zeichen, das in Variablennamen zulässig ist. Deshalb sucht bash nach $number_ID. . ist nicht erlaubt.

+0

Vielleicht auch darauf hinweisen (wie http://shellcheck.net/ bereits), dass 'input_file' zugewiesen, aber nicht verwendet wird. – tripleee

Verwandte Themen