Echo Variable - Mesma maneira, saída diferente

1

Eu escrevi um script de shell com o seguinte conteúdo:

#!/bin/bash
value='cat test.txt'

echo "Output: $value" >> currentOutput.txt

Ao executar este script no shell, ele grava corretamente o valor dentro do currentOutput.txt. Ao executar este script em / etc / crontab, o arquivo só é preenchido com "Saída:".

O usuário em execução no shell e crontab é root. Também o proprietário de "currentOutput.txt", "test.txt" e o script é root. Eu estou apenas pensando sobre a saída diferente entre a execução normal e a execução pelo crontab.

Esta é a minha entrada no crontab:

*/5 * * * * root /bin/sh /var/www/testscript.sh

Alguma sugestão?

    
por Tyralcori 30.10.2015 / 11:10

2 respostas

4

tente usar um caminho absoluto para test.txt , é improvável que o crontab esteja usando o mesmo diretório local que você quando executa o script e esse arquivo pode não existir.

    
por 30.10.2015 / 11:27
3

O diretório de trabalho provavelmente não é o diretório em que seu arquivo está armazenado (por exemplo, /var/www ). Tente especificar o caminho completo para test.txt .

Você deve sempre ser o mais específico possível em tarefas agendadas, já que o ambiente inteiro é bem diferente do seu ambiente normal de shell.

    
por 30.10.2015 / 11:27