WCM Forum

WCM Forum (http://www.wcm.at/forum/index.php)
-   Programmierung (http://www.wcm.at/forum/forumdisplay.php?f=17)
-   -   Shell Script - while do done wird ignoriert wenn $LINE keinen Wert hat (http://www.wcm.at/forum/showthread.php?t=249312)

Smart_at_99 18.12.2017 08:27

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.

pc.net 18.12.2017 20:37

bevor du in die schleife gehst könntest du vorher einen check machen,
entweder ob überhaupt eine datei entsprechend den parametern existiert
https://www.cyberciti.biz/faq/unix-l...-file-in-bash/
oder du fragst den process exit code $? ab
https://stackoverflow.com/questions/...cess-exit-code


Alle Zeitangaben in WEZ +2. Es ist jetzt 11:17 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag