Hjälp med bash-script

Tråden skapades och har fått 4 svar. Det senaste inlägget skrevs .
1

Det var längesedan jag skrev shell-scripts och redan då var jag inte speciellt bra på det.
Men nu måste jag få till ett och jag har ett enkelt problem som jag bara inte kommer på vad det är för fel.

mysql -uUSER -pPASSWORD -e "SELECT filename FROM files.filenames WHERE fileready=1" | while read filename; do
if["$filename"!="filename"] then
    echo $filename
done

Output:

./test2.sh: line 2: if[filename!=filename]: command not found
filename
./test2.sh: line 2: if[BILD_3.jpg!=filename]: command not found
BILD_3.jpg

Frågan är vad är det för kommando den saknar?
Och hur får jag bort utskriften av filename?

Tack för all hjälp.

Du har missat en del mellanslag. De är signifikant syntax som behövs för att if ska fungera.
Annars försöker den att tolka hela klumpen som ett kommando.
MySQL skickar troligen med en header med kolumnnamnen, antar att det är därifrån filename kommer.

Dessutom ska det in ett semikolon före then och if ska avslutas med fi före done.

Senast redigerat 2012-07-15 12:27

Jag har provat det du säger och får ännu fler error... skulle du kunna vara bäst och skriva ut hur if-satsen ska se ut?

Något sånt här:

mysql -uUSER -pPASSWORD -e "SELECT filename FROM files.filenames WHERE fileready=1" | while read filename; do
    if [ "$filename" != "filename" ]; then
        echo $filename
    fi
done

Tack Markus K!
Jag fick inte skriva fi av någon anledning. men detta funkar perfekt tack!

1
Bevaka tråden