Сценарий Expect не работает при запуске из cron, но работает при запуске вручную

Что-то вроде этого?

awk 'FNR==1{print $1/2,$2;next}1' ./*.txt #or /directory/* or just file.txt

Или даже

awk 'FNR==1{$1=$1/2}1' file1

Вышеупомянутый awk выведет соответствующие результаты на ваш экран, или вы можете перенаправить измененный вывод в новый файл, используя >newfile

С помощью GNU awk вы можете применять изменения непосредственно в исходном файле. файл, используя параметр gnu awk inplace:

awk -i inplace 'FNR==1{$1=$1/2}1' file1

Если ваш awk не поддерживает inplace , вы можете сделать это вручную, как

 awk 'FNR==1{$1=$1/2}1' file > newfile && mv newfile file

Это на самом деле то, что awk (и даже sed) выполняет редактирование на месте под капотом.

0
28.06.2017, 16:20
2 ответа

«Работает вручную, сбой в cron» почти всегда происходит из-за одного из этих:

  • различия в переменных окружения:PATHи др.;
  • другой текущий рабочий каталог;
  • отсутствие телетайпа (вероятно, не проблема с ожидаемыми сценариями );
  • разрешения (интерактивное тестирование с одним пользователем, задание cron с другим ); или
  • различные команды оболочки :выполняемые в самой командной строке cron используют одну оболочку, вы можете интерактивно использовать другую.
4
28.01.2020, 02:19

У меня похожая проблема с моим telnet-скриптом спавна. Скрипт работает нормально до тех пор, пока не будет добавлен ожидаемый _после тайм-аута дескриптора. Попробуйте удалить expect _после {.. }. Это работа для меня.

0
28.01.2020, 02:19

Теги

Похожие вопросы