O Tota já te respondeu, mas eis mais algumas considerações... Suponhamos que eu crie o seguinte script (e chamá-lo de test.sh):
#!/bin/bash
echo Ola!
Eis o que acontece:
$ ls -l test.sh
-rw-rw-r-- 1 frederico frederico 23 Jun 26 16:57 test.sh
$ ./test.sh
bash: ./test.sh: Permission denied
$ chmod +x test.sh
$ ls -l test.sh
-rwxrwxr-x 1 frederico frederico 23 Jun 26 16:57 test.sh
$ ./test.sh
Ola!
$
Note que sem o atributo 'x', o script não pode ser executado. Só depois de ajustar o atributo é que o shell irá interpretar o script.
Você ainda pode dar permissão de execução para o dono do arquivo, para o grupo ao qual o dono do arquivo pertence e aos outros usuários, individualmente. Por exemplo, ao invés de usar "+x" no chmod, podemos fazer:
$ chmod u+x test.sh
$ ls -l test.sh
-rwxrw-r-- 1 frederico frederico 23 Jun 26 16:57 test.sh
[]s