Em logtemps.sh
, utilizo $(<file)
para ler o conteúdo de file
em uma variável. Este é um recurso do bash , no entanto, o cron executa comandos com sh . Para resolver isso, altere a linha em crontab para
*/2 * * * * bash /home/pi/temp-cron/logtemps.sh >> /home/pi/temp-cron/temps.txt 2>&1
(adicionado bash
)
ou adicione #!/bin/bash
ao topo do script para que ele sempre seja executado sob bash
.
Veja benefício 4) da atualização para a versão 8 do Unix, onde o #! foi introduzido.
TLDR; O Cron é executado sob sh
, o script usa os comandos bash
-only, sempre shebang.