Scusa kruskaiev ma i tuoi esempi non sono corretti.

Per fare un test su un file devi usare -f e non -a (man test)

codice:
touch /tmp/file.txt
file="/tmp/file.txt"
test -f $file; echo $?
0
test e` molto utile, esiste un operatore per ogni tipo di situazione (file, directory, link, grandezze, ecc).

@FANG sarai sorpreso di sapere che [ e test sono la stessa cosa! Prova questo esempio:

test -f /tmp/file.txt; echo $?
[ -f /tmp/file.txt ]; echo $?