[ -s file.name ] || echo "file is empty"
Salah eja menjengkelkan, bukan? Periksa ejaan empty
Anda , tetapi coba juga ini:
#!/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
Saya sangat menyukai skrip shell, tetapi salah satu kelemahannya adalah shell tidak dapat membantu Anda saat Anda salah mengeja, sedangkan kompiler seperti kompiler C++ dapat membantu Anda.
Perhatikan secara kebetulan bahwa saya telah menukar peran empty.txt
dan full.txt
, seperti yang disarankan @Matthias.
[ -s file ] # Checks if file has size greater than 0
[ -s diff.txt ] && echo "file has something" || echo "file is empty"
Jika perlu, ini memeriksa semua file *.txt di direktori saat ini; dan melaporkan semua file kosong:
for file in *.txt; do if [ ! -s $file ]; then echo $file; fi; done
Jalankan skrip yang disalurkan dari stdin (Linux/Shell Scripting)
Bagaimana cara menulis integer ke file biner menggunakan Bash?