WCM - Das österreichische Computer Magazin Forenübersicht
 

Zurück   WCM Forum > Rat & Tat > Programmierung

Programmierung Rat & Tat für Programmierer

Microsoft KARRIERECAMPUS

Antwort
 
Themen-Optionen Ansicht
Alt 18.12.2017, 08:27   #1
Smart_at_99
Jr. Member
 
Registriert seit: 11.03.2002
Beiträge: 60


Standard 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
Smart_at_99 ist offline   Mit Zitat antworten
Alt 18.12.2017, 20:37   #2
pc.net
Aussteiger
 
Benutzerbild von pc.net
 
Registriert seit: 07.10.2001
Ort: Nettistan
Beiträge: 12.997

Mein Computer

Standard

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
____________________________________
Praktizierender Eristiker

No hace falta ser un genio para saber quién dijo eso.
Der wirklich faule Mensch ist oft extrem fleißig, denn er will möglichst schnell wieder faul sein.

Geändert von pc.net (18.12.2017 um 20:52 Uhr).
pc.net ist offline   Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 07:22 Uhr.


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