Ich fand ein paar andere Fragen wie diese, aber ihre Antworten passen nicht in meinem Fall.Wenn Datei existiert immer falsch
Für ein Video-Stream Aufnahmeprojekt habe ich ein Skript, das für einen „freien Namen“ sucht das aus dem Aufnahmeprogramm gegeben werden, so dass die gleiche Datei nicht überschrieben werden:
#!/bin/bash
AUFPFAD="$1"
DATEINUMMER=0
DATEISTRING=""
ERLEDIGT="nein"
TESTING=1
if [ $DATEINUMMER -eq 0 ]; then
if [ -d "$AUFPFAD/temp.mp4" ]; then
if [ $TESTING -eq 1 ]; then
echo "Die Datei $AUFPFAD/temp.mp4 ist vorhanden!"
fi
DATEINUMMER=$DATEINUMMER+1;
else
if [ $TESTING -eq 1 ]; then
echo "Die Datei $AUFPFAD/temp.mp4 ist nicht vorhanden!"
fi
DATEISTRING="temp.mp4";
fi
else
while [ $ERLEDIGT == "nein" ]
do
if [ -d "$AUFPFAD/temp$DATEINUMMER.mp4" ]; then
if [ $TESTING -eq 1 ]; then
echo "Die Datei $AUFPFAD/temp$DATEINUMMER.mp4 gibt's schon, also eines weiter und erneut prüfen"
fi
DATEINUMMER=$DATEINUMMER+1;
else
if [ $TESTING -eq 1 ]; then
echo "Die Datei $AUFPFAD/temp$DATEINUMMER.mp4 gibt's nicht, erstelle sie damit wir testen ob's dann weiter geht"
fi
DATEISTRING="temp$DATEINUMMER.mp4";
ERLEDIGT="ja";
fi
done
fi
if [ $TESTING -eq 1 ]; then
echo $DATEISTRING;
else
return $DATEISTRING;
fi
Um zu testen, die Script habe ich den Ordner „test“ und erstellt mit touch
der Datei „temp.mp4“ in diesem Ordner:
[email protected] /test # ls
temp.mp4
[email protected] /test #
Aber wenn ich laufen die sc ript ich dieses Ergebnis:
[email protected] /test # /root/Dropbox/Skripte/skripte_CX30/filecheck.sh /test
Die Datei /test/temp.mp4 ist nicht vorhanden!
temp.mp4
[email protected] /test #
und das macht keinen Sinn, da die Datei dort und hat den richtigen Namen, die funktionieren sollen.
if [ -d "$AUFPFAD/temp.mp4" ]; then
gehen in TRUE aber es ist offensichtlich FALSCH und TBH bekomme ich es nicht, warum.
Was ich getestet habe:
Putting den Ausdruck ohne
"
in:if [ -d $AUFPFAD/temp.mp4 ]; then
gleichen Ergebnis.
Ich bin mir ziemlich sicher, dass ich etwas übersehen habe.
Verwenden '-e' (oder' -f') statt '-d'. '-d' prüft ob das Argument ein Verzeichnis ist. – redneb
Danke auch :) – EpsilonAlpha