[ -r file ]
testa se um arquivo é legível.
[ -w file ]
testa se um arquivo é gravável.
[ -x file ]
testa se um arquivo é executável.
if [ -x file ]; then
./file
else
echo "File is not executable"
fi
Experimente com um exemplo simples:
#!/bin/bash
touch testfile
test -x testfile && echo true || echo false
# --> false
chmod +x testfile
test -x testfile && echo true || echo false
# --> true
rm testfile