[ -s file.name ] || echo "file is empty"
Překlepy jsou nepříjemné, že? Zkontrolujte pravopis empty
, ale zkuste také toto:
#!/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
Skriptování v shellu se mi moc líbí, ale jeho nevýhodou je, že vám shell nemůže pomoci, když překlepete, zatímco kompilátor, jako je váš kompilátor C++, vám může pomoci.
Mimochodem, všimněte si, že jsem vyměnil role empty.txt
a full.txt
, jak navrhuje @Matthias.
[ -s file ] # Checks if file has size greater than 0
[ -s diff.txt ] && echo "file has something" || echo "file is empty"
V případě potřeby to zkontroluje všechny soubory *.txt v aktuálním adresáři; a hlásí celý prázdný soubor:
for file in *.txt; do if [ ! -s $file ]; then echo $file; fi; done
Spuštění skriptu z stdin (Linux/Shell Scripting)
Jak zapsat celé číslo do binárního souboru pomocí Bash?