O método "confiável" falha porque "este shell" é o shell que está executando o script, que não é interativo, não o shell do qual você iniciou o script.
Verificar se a entrada padrão é um terminal ( [[ -t 0 ]]
) é um pouco mais confiável, mas ainda não está determinando se o script está sendo executado a partir de cron
: existem maneiras de executar um script de tal forma que [[ -t 0 ]]
é bem-sucedido, mesmo quando não está sendo executado em um terminal.
A resposta aceita para Verificar se o script é iniciado pelo cron, em vez de ser chamado manualmente parece mais confiável para mim .