Primeiro, certifique-se de que o shebang é exatamente o seguinte:
#!/bin/bash
Segundo, certifique-se de que o script é executável usando o seguinte comando no terminal:
chmod +x /path/to/a.sh
E terceiro, você deve usar o caminho completo para o script bash ou, no seu caso, você pode usar:
$message=exec("$old/a.sh");
E, como nota à parte, os dois comandos seguintes do seu script php não fazem sentido:
$old = getcwd();
chdir($old);
Eles são equivalentes a chdir(getcwd())
, que mudam o diretório atual para ... o diretório atual, então, de fato, nada acontece.