[ -s file.name ] || echo "file is empty"
Rechtschreibfehler sind irritierend, nicht wahr? Überprüfen Sie Ihre Schreibweise von empty
, aber versuchen Sie es dann auch so:
#!/bin/bash -e
if [ -s diff.txt ]; then
# The file is not-empty.
rm -f empty.txt
touch full.txt
else
# The file is empty.
rm -f full.txt
touch empty.txt
fi
Ich mag Shell-Scripting sehr, aber ein Nachteil davon ist, dass die Shell Ihnen bei Rechtschreibfehlern nicht helfen kann, während ein Compiler wie Ihr C++-Compiler Ihnen helfen kann.
Beachten Sie nebenbei, dass ich die Rollen von empty.txt
vertauscht habe und full.txt
, wie @Matthias vorschlägt.
[ -s file ] # Checks if file has size greater than 0
[ -s diff.txt ] && echo "file has something" || echo "file is empty"
Bei Bedarf prüft dies alle *.txt-Dateien im aktuellen Verzeichnis; und meldet alle leeren Dateien:
for file in *.txt; do if [ ! -s $file ]; then echo $file; fi; done