Ejecutando un trabajo cron desde otro shell

Me gustaría que cron ejecute un script desde un shell específico (Zsh). Pensé que lo siguiente funcionaría:

 00 02 * * * exec zsh; /path/to/script.sh 

pero aparentemente no, ¿por qué?

Esto también me hizo preguntarme, ¿cómo averiguo qué scripts de shell e init ejecuta primero cron antes de ejecutar la input en crontab?

Qué tal si:

 00 02 * * * exec /usr/bin/zsh /path/to/script.sh 

Eso le dirá a zsh que ejecute el script. Ahora quiere que se ejecute en zsh, no importa qué, solo agregue el shebang al comienzo:

 #!/usr/bin/zsh the_rest 

Cron tiene varias variables ambientales configuradas en /etc/crontab , específicamente SHELL y PATH . El valor pnetworkingeterminado para SHELL es /bin/sh . Entonces, a less que esto se modifique o se especifique en un script, cron ejecutará commands usando sh .