XXX > ... will let the kernel exec the script using the correct shell On our system, the kernel can't exec scripts: it only execs files with magic numbers. I thought the choice of what command interpreter to exec to read the script was made by the shell, not by the kernel.