Linux Script mit dreifacher If Abfrage verschachteln
Moin,
ich sitze hier und denke…
Eine Prüfung, ob zwei bestimmte Dateien mit „Platzhalter*“ in einem Ordner sich befinden, gibt es glaube ich nicht. Zumindest habe ich dazu nichts gefunden. Jetzt Überlege ich die If Schleife so zu schreiben:
Ich habe es nicht ausprobiert, da ich hier bereits sehe, dass einie Menge falsch ist.
Oder gibt es da noch eine bessere Lösung welche ich übersehen habe?
Viele Grüße
Ich
ich sitze hier und denke…
Eine Prüfung, ob zwei bestimmte Dateien mit „Platzhalter*“ in einem Ordner sich befinden, gibt es glaube ich nicht. Zumindest habe ich dazu nichts gefunden. Jetzt Überlege ich die If Schleife so zu schreiben:
for TESTfile in $TESTRUECK/TEST-Rueck*.txt; do
if [ -f ${TESTfile} ] ; then
for TEST2file in $TESTRUECK/TEST2-Rueck*.txt; do
if [ -f ${TEST2file} ] ; then
cat /root/rueckmail | mailx -r "Assistent <server@domain.de>" -s "Daten von heute prüfen" -a /samba/TEST-Rueck* -a /samba/TEST2-Rueck* -b bcc@domain.de empfaenger@domain.de
break
else
for TESTfile in $TESTRUECK/TEST-Rueck*.txt; do
if [ -f ${TESTfile} ] ; then
cat /root/testmail | mailx -r "Assistent <server@domain.de>" -s "Daten von heute prüfen" -a /samba/TEST-Rueck* -b bcc@domain.de empfaenger@domain.de
else
for TEST2file in $TESTRUECK/TEST2-Rueck*.txt; do
if [ -f ${TEST2file} ] ; then
cat /root/test2mail | mailx -r "Assistent <server@domain.de>" -s "Daten von heute prüfen" -a /samba/TEST2-Rueck* -b bcc@domain.de empfaenger@domain.de
break
fi
done
Ich habe es nicht ausprobiert, da ich hier bereits sehe, dass einie Menge falsch ist.
Oder gibt es da noch eine bessere Lösung welche ich übersehen habe?
Viele Grüße
Ich
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 333785
Url: https://administrator.de/forum/linux-script-mit-dreifacher-if-abfrage-verschachteln-333785.html
Ausgedruckt am: 06.04.2025 um 15:04 Uhr
9 Kommentare
Neuester Kommentar

Eine Prüfung, ob zwei bestimmte Dateien mit „Platzhalter*“ in einem Ordner sich befinden, gibt es glaube ich nicht.
#!/bin/bash
if [ $(ls -1 /Ordner/bla*.txt | wc -l) -gt 0 ] && [ $(ls -1 /Ordner/bla2*.txt | wc -l) -gt 0 ] ;then
# go on
fi

Also ist das der richtige Ansatz?
Jaein, effektiver ist es wenn du das Ergebnis beider Counter erst in Variablen speicherst und dann per If abfragst, dann muss das System nicht x mal das selbe enumerieren, das kost Zeit und verschwendet Ressourcen.
la2Da=$(ls -1 $TESTfile/bla2*.txt | wc -l)

Kann man diese ausblenden?
Klar, Error Redirect nach /dev/null ?!Bla1Da=$(ls -1 $TESTfile/bla1*.txt 2>/dev/null | wc -l)

Hallo,
echo "Dieser Text wird nie erscheinen!" 2>&1 > /dev/null
Das erste Statement (also 2>&1) leitet die Standard-Fehlerausgabe auf die Standardausgabe um und das zweite Statement "> /dev/null" schiebt alle Ausgaben dorthin, wo nie die Sonne scheint.
Die Kurzform wäre übrigens
echo "Dieser Text wird nie erscheinen!" &> /dev/null
Gruß,
Jörg
echo "Dieser Text wird nie erscheinen!" 2>&1 > /dev/null
Das erste Statement (also 2>&1) leitet die Standard-Fehlerausgabe auf die Standardausgabe um und das zweite Statement "> /dev/null" schiebt alle Ausgaben dorthin, wo nie die Sonne scheint.
Die Kurzform wäre übrigens
echo "Dieser Text wird nie erscheinen!" &> /dev/null
Gruß,
Jörg