Fehlermeldung bei 'stat' unterdrücken

FatManStanding

Lt. Junior Grade
Registriert
Aug. 2021
Beiträge
385
tach,

ich lasse mir die dateigröße einer datei in eine variable schreiben

Code:
size_old=$(stat -c %s "$file")

wenn die datei nicht existiert wird eine fehlermeldung ausgegeben. 'stat' bietet keien möglichkeit die zu unterbinden. wenn ich das ganze nach /dev/null pipe wird nichts in die variable geschrieben. gibt es eine möglichkeit die fehlermeldung zu unterdrücken und - wenn die datei existiert - dennoch die variable zu füllen? 'ls' gibt die gleiche meldung aus.
 
Moin,
wie hast du denn die Fehler umgeleitet? Normal müsste es doch mit "command 2>/dev/null" gehen?
 
Wie leitest du denn die Fehlerausgabe (stderr) weiter?
Wenn du jede Ausgabe (stdout) in Richtung /dev/null schiebst, dann ist klar, weshalb du nichts mehr sehen wirst.
Willst du nur Fehlerausgaben in Richtung /dev/null leiten, dann solltest du noch den Suffix $(stat -c %s "$file" 2>/dev/null) anhängen.
 
Code:
if [ -f "$file" ]; then
    size_old=$(stat -c %s "$file")
fi
 
[[ -f "$file" ]] && size_old=$(stat -c %s "$file")
 
kartoffelpü schrieb:
Code:
if [ -f "$file" ]; then
    size_old=$(stat -c %s "$file")
fi
Funktioniert nur wenn die Datei zwischen dem if und dem stat nicht gelöscht wird.
Besser einfach los gehen und prüfen ob das geklappt hat:

$ size_old=`stat -c %s "b" 2>/dev/null` $ echo $? 1 $ size_old=`stat -c %s "a" 2>/dev/null` $ echo $? 0 $
 
ok, ich weiß wo der fehler lag. ich habe statt 2>/dev/null 2&>/dev/null genutzt.
 
Zurück
Oben