Hallo. Ich schreibe mir gerade ein Shellskript, mit dem ich Archive anschauen, entpacken und erzeugen kann. Die ersten beiden Punkte funktionieren schon soweit. Nur beim Erzeugen läuft wohl was schief. Da beim Start Argumente übergeben werden, habe ich eine while-Schleife eingebaut, um auf die angegebenen Dateien zuzugreifen. Hier der betreffende Abschnitt. elif [ "$1" = "-b" ] ; then while [ "$#" > 0 ] do arg="$3" echo "$arg" >> /tmp/liste shift done tar -cjf "$2" `cat /tmp/liste` Es sollte soweit alles korrekt sein. Mein Problem ist aber, dass das Skript nicht die Schleife beendet. Der Aufruf ist so geplant: Skript -Archivtyp (hier b für bzip2) Archivname Dateien/Ornder Mit sh -x Skript-Aufruf 2> Error.log kann ich sehen, dass shift immerwieder aufgerufen wird. Wie kann ich das jetzt beenden? Laut meinem schlauen Buch ist die while-Schleife so richtig. Habe ich hier jetzt einen Denkfehler drinn, oder ist die Schleife doch nicht richtig? Gruß Marcus
* Marcus Habermehl schrieb am 17.Aug.2003:
elif [ "$1" = "-b" ] ; then while [ "$#" > 0 ]
Hier sollte ein -gt anstelle von > stehen. Anders als in perl vergleicht > Lexikalisch und -gt numerisch. Bernd -- Alle meine Signaturen sind rein zuf�llig und haben nichts mit dem Text oder dem Schreiber zu tun, dem ich antworte. Falls irgendwelche Unrichtigkeiten dabei sein sollten, so bedauere ich das. Es w�re nett, wenn Du mich benachrichtigen w�rdest. |Zufallssignatur 0
Am Sonntag, 17. August 2003 13:40 schrieb Bernd Brodesser:
* Marcus Habermehl schrieb am 17.Aug.2003:
elif [ "$1" = "-b" ] ; then while [ "$#" > 0 ]
Hier sollte ein -gt anstelle von > stehen. Anders als in perl vergleicht > Lexikalisch und -gt numerisch.
Bernd
Danke. Das war der Fehler. Jetzt funktioniert alles so, wie es sollte. Gruß Marcus
participants (2)
-
B.Brodesser@t-online.de
-
Marcus Habermehl