У меня есть скрипт bash, предназначенный для запуска из cron.Скрипт подсчитывает слова в документе и добавляет строку с текущим временем и количеством слов в файл CSV.В соответствующей части сценарий:
EPOCH=$(date +"%s")
WCC=$(wc -w ~/path/filename.txt | sed 's/\/Users\/username\/path\/filename.txt//' | sed 's/ //g')
echo $EPOCH,$WCCH4 >> ~/path/wordcount-data.csv
Этот сценарий запускается из cron со следующей записью:
0 * * * * sh /Users/username/path/wordcount.sh
Проблема заключается в том, что wc -w
возвращает другое значение при запускеиз cron, чем при запуске из оболочки или при запуске из сценария оболочки, выполняемого в терминале.Другими словами, значение этого скрипта, выполняемого из cron, в настоящее время составляет 12438, но при запуске wc -w filename.txt
в оболочке или при sh ./wordcount.sh
оба возвращают значения 12445. Для того, чтобы это стоило, разница всегда равна 7, и количество слов в vim соответствуетотсчет слов начинается с cron.
Что объясняет различные значения и как это исправить?