Jeg har en fil som heter diff.txt. Ønsker å sjekke om den er tom. Gjorde noe slikt, men fikk det ikke til å fungere.
if [ -s diff.txt ]
then
touch empty.txt
rm full.txt
else
touch full.txt
rm emtpy.txt
fi
Stavefeil er irriterende, ikke sant? Sjekk stavemåten din av empty
, men prøv også dette:
#!/bin/bash -e
if [ -s diff.txt ]
then
rm -f empty.txt
touch full.txt
else
rm -f full.txt
touch empty.txt
fi
Jeg liker skallskripting veldig godt, men en ulempe med det er at skallet ikke kan hjelpe deg når du staver feil, mens en kompilator som C++-kompilatoren din kan hjelpe deg.
Legg for øvrig merke til at jeg har byttet om på rollene til empty.txt
og full.txt
, slik @Matthias foreslår.
[ -s file.name ] || echo "file is empty"
[[ -s fil ]]] --> Sjekker om filen har en størrelse større enn 0.
if [[ -s diff.txt ]]; then echo "file has something"; else echo "file is empty"; fi
Ved behov sjekker dette alle *.txt-filene i den aktuelle katalogen, og rapporterer alle tomme filer:
for file in *.txt; do if [[ ! -s $file ]]; then echo $file; fi; done