caffeinate
lanza ejecutables. Sin embargo, las funciones de shell sólo existen dentro de la cáscara. Funciones de Shell no son ejecutables.
Solución: llamar a bash directamente
Esto funciona mejor para uno-trazadores de líneas y comandos simples.
caffeinate bash -c 'sleep 2'
Multi-trazadores de líneas de trabajo:
caffeinate bash <<EOF
sleep 2
echo "done :D"
EOF
Solución: llamar a un script en lugar de una función
En lugar de hacer su trabajo dentro de una función, que se dividió en una secuencia de comandos independiente:
caffeinate mysleep.sh
#!/bin/bash
# mysleep.sh
sleep 2