Shell Script - while do done wird ignoriert wenn $LINE keinen Wert hat
Guten Morgen,
ich habe ein Problem mit meinem Script und konnte bis dato noch keine Lösung finden und daher hoffe ich auf das Forum.
Folgendes zum Script:
Ich wechsel in ein bestimmtes Verzeichnis um dort nach *.zip Files zu suchen, wobei ich ein grep (gesucht wird nach einem DatumsString) auf das Ergebnis mache. Der Output wird dann Zeile für Zeile eingelesen und das File wird kopiert.
Die Suche mittels grep ergibt folgendes Ergebnis.
./1000000081/20171215T202111100/FB7C1501.zip
./1000000080/20171215T201931100/FB7C1501.zip
./1000000090/20171215T210643100/FB7C1501.zip
Die Ziele im Script sieht wie folgt aus.
#!/bin/sh
....
cd $DEFBKPDIR
find . -name "*.zip" | grep $CURDATE | while read LINE
do
...
done
Mein Problem:
Wenn das grep Kommando keinen Treffer landet, bleibt die Variable LINE leer - daher habe ich nach dem "do" den Wert der Variablen abgefragt, um nachher entsprechend vorzugehen zB.:
if [ TEST$LINE = TEST ]
if [ $LINE = $'\n' ]
if [ -z "$LINE" ]
if [ "$LINE" == "" ]
...
Es dauerte eine zeitlang herauszufinden, dass der "while do done" Teil komplett ignoriert wird, wenn das grep keinen Treffer landet.
Was mache ich falsch, oder wie kann man die Suche anders anlegen, sodass man einen brauchbaren Wert erhält.
Hat hier jemand eine andere Lösung oder Vorschlag.
Danke.
____________________________________
Das Leben ist zu kurz
|