Les fautes d'orthographe sont irritantes, n'est-ce pas ? Vérifiez votre orthographe de empty
mais essayez aussi ceci :
#!/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
J'aime beaucoup les scripts shell, mais l'un de leurs inconvénients est que le shell ne peut pas vous aider lorsque vous faites des fautes d'orthographe, alors qu'un compilateur comme votre compilateur C++ peut vous aider.
Notez incidemment que j'ai interverti les rôles de empty.txt
et full.txt
comme le suggère @Matthias.
48 votes
[ -s FILE ] Vrai si FILE existe et a une taille supérieure à zéro. Ainsi, vous obtenez "empty.txt" si "diff.txt" n'est pas vide.
3 votes
PS : Si vous voulez vérifier un
diff
il suffit de vérifier la valeur de retour :if diff foo.txt bar.txt; then echo 'No difference'
38 votes
Le test peut être annulé :
if [ ! -s diff.txt ]; then echo "IS EMPTY";else echo "HAS SOMETHING";fi
1 votes
Attention aux caractères de fin de ligne. Vérifiez le fichier avec
$ cat diff.txt | hexdump -C