![]() |
![]() |
|
![]() |
![]() |
|
Programmierung Rat & Tat für Programmierer |
![]() |
|
Themen-Optionen | Ansicht |
|
![]() |
#1 |
Jr. Member
![]() Registriert seit: 11.03.2002
Beiträge: 60
|
![]() 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 |
![]() |
![]() |
![]() |
#2 |
Aussteiger
![]() |
![]() 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). |
![]() |
![]() |
![]() |
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
|
|