Deberías utilizar la función
system(), ya que esta también muestra la salida, en cambio al utilizar
exec(), solo se ejecuta el programa.
programa.sh
#!/bin/bash
echo "hola mundo"
echo "hola" > rofl
Nota: En la primera linea, indico donde se encuentra el interprete de bash. A al ejecutar el script en bash, no es necesario indicarle que es un script en bash, con un simple ./bash basta.
index.php
<?php
?>
[yoya@Fedora pruebas]$ ls
index.php programa.sh
[yoya@Fedora pruebas]$ chmod +x programa.sh
[yoya@Fedora pruebas]$ php index.php
hola mundo
[yoya@Fedora pruebas]$ ls
index.php programa.sh rofl
[yoya@Fedora pruebas]$
Saludos.