É mais provável que a variável CHAT não esteja definida no ambiente em que os scripts motd estão sendo executados; é local para o seu processo de shell, não definido globalmente. Se você iniciar uma nova sessão de shell, você deve observar que a variável não está disponível.
Por padrão, o shell substitui as variáveis indefinidas como vazias, então a linha $CHAT
é tratada como vazia, sem operação.
# 4 provavelmente não funciona porque o caminho especificado está incorreto: você está procurando o arquivo em /etc/hack.chat/WOTD, mas o arquivo não está lá, mas em /srv/hack.chat/ WOTD Você nem recebe uma mensagem de erro porque seu script primeiro verifica se o /etc/hack.chat/WOTD é executável, o que não é porque não há um arquivo nesse caminho e não tenta executá-lo .