2010-12-15 6 views

Antwort

4

Wahrscheinlich, weil 'x' nicht gesetzt ist, so ist der Vergleich zwischen einer leeren Zeichenfolge in eine ganze Zahl und Null konvertiert. Es ist nicht glücklich über die leere Zeichenfolge.

Um

x=0 
...loop as now... 
[ $x -eq 0 ] ... 

fix Dies hat den positiven Nebeneffekt der die Anzahl der Möglichkeiten zu reduzieren Ihren Code brechen kann, wenn jemand die Umgebungsvariable ‚x‘ exportiert.

2

In Bash verwenden:

((x == 0)) && echo "No valid files" 

In POSIX Schalen:

[ ${x:-0} -eq 0 ] && echo "No valid files" 

oder Ihre Variable initialisieren, wie Jonathan zeigt.