Запустите crontab с пользовательским вводом - PullRequest
4 голосов
/ 19 июля 2009

Я создал crontab, который будет запускать сценарий bash test.sh. Этот файл test.sh требует некоторого ввода от пользователя и сохраняет ввод пользователя в переменную. Как я могу гарантировать, что пользовательский ввод будет сохранен в переменную в test.sh, и когда crontab запускает скрипт, я могу получить желаемый вывод?

например, у меня есть 2 файла, file1.sh и file2.sh. я положил file2.sh в файл 1.sh. Затем я запускаю file1.sh, получаю пользовательский ввод и сохраняю его где-нибудь. crontab запустит file2.sh и извлечет значение из « сохраненной где-то переменной ». в любом случае для этого?

Ответы [ 3 ]

5 голосов
/ 19 июля 2009

Если ввод читается сценарием из stdin, просто перенаправьте ввод из файла (используя скрипт-обертку).

#! /bin/sh
test.sh < data.in

Если это не работает для вас (т. Е. У вас есть скрипт, вызывающий какую-то интерактивную оболочку, например, telnet, вы можете использовать Expect для автоматизации взаимодействия.

1 голос
/ 19 июля 2009
  1. file1.sh получает пользовательский ввод и записывает его в /etc/file2.dat
  2. file2.sh читает /etc/file2.dat и делает все, что ему нужно
0 голосов
/ 19 июля 2009

Это кажется странной вещью. Задайте себе эти вопросы:

Вы действительно хотите всплывающее окно, запрашивающее у пользователя вводимое значение при каждом запуске cron?

Что происходит, когда за клавиатурой никого нет?

...