2013-11-08 2 views

ответ

3

Если он принимает входные данные от stdin, создайте еще один скрипт, который вызовет ваш скрипт с помощью канала или перенаправления.

#!/bin/sh 
/foo/bar/my_command < my_input 

Вы также можете запустить его как команду оболочки в вашем кронтаб:

0 * * * * /bin/sh -c "/foo/bar/my_command < my_input" 
0

Вы можете использовать expect для имитации ручного ввода пользователя в скрипт. Это работает, даже если ваш скрипт не принимает перенаправление (возможно, если ему нужно ввести пароли).

На практике я обнаружил, что Perl Expect намного проще писать скрипт по сравнению с голосом expect.

1
  1. Измените сценарий, чтобы он не нуждался в пользовательском вводе.

  2. Загрузите скрипт, необходимый для ввода из файла, через <.

Только в том случае, «ожидается пользовательский ввод» является, случайно, пароль: Не варианта использования 2. Редактирование аутентификации доступа в кронтабе работы являются различными ароматами опасны.

PS: Это предупреждение выше также верно, если вы думаете о expect, как предложено mvp. Это в основном эквивалент записи вашего пароля на пост-он и прикрепление его к вашему монитору: простота, удобство и небезопасность.

Смежные вопросы