2016-05-17 8 views
0

Ich habe ein Skript, das drei Befehlszeilenargumente verwendet: 1) eine Infile, 2) ein Outfile und 3) eine einzelne Zahl, die der Infile hinzugefügt werden soll.ksh - Hinzufügen von Befehlszeilenargumenten zu Array

Ich möchte dieses Skript so ändern, dass es eine beliebige Anzahl von Argumenten annehmen kann, die dem oben genannten Argument (3) ähnlich sind, und auf der Basis jedes einzelnen ein individuelles Ausgabedatei erstellen. Ich glaube, der beste Weg, dies zu erreichen (soweit ich weiß), besteht darin, alle Argumente nach dem Argument (2) einem Array zuzuordnen und dann eine for-Schleife zu verwenden, um das Array zu durchlaufen.

Es scheint einfach genug, um einen Array mit dem folgenden Code zu erstellen:

set -A arrayName "[email protected]" 

Meine Frage ist, wie genau würde ich nur Argument 3 weiter zu einem Array zuweisen, während für eine beliebige Anzahl von Argumenten wodurch mehr als zwei ?

Antwort

0

verzeihen Sie mir, wenn das eine zu einfache Lösung ist. Aber keine Notwendigkeit, ein Array zu erstellen, nur durch die Zahlen zum Anhängen zu sehen:

echo 'start' 
echo 'usage: my_prog.ksh infile outfile numtoappend [...]' 
echo '$*' 
echo $* 

echo 'infile: ' $1 
infile=$1 
shift 
echo 'outfile: ' $1 
outfile=$1 
shift 
cat $infile > $outfile 

echo 'starting loop: ' 
until [[ $# -eq 0 ]];do 
    echo '$numbers to append' 
    echo $1 
    echo $1 >> $outfile 
    shift 
done 
echo 'end'