На этот вопрос уже есть ответ здесь:
Я пытаюсь запустить большой скрипт, который запрашивает ответы по ходу работы. Я хочу запустить его в режиме verbose, и поэтому будет значительный вывод, и я хотел бы его перехватить. Поэтому я хотел бы запустить его таким образом, чтобы он позволял мне отвечать на вопросы, а также отправлять вывод в файл.
Можно ли это сделать?
Спасибо.
Mike
При ответе Вы даете вход через дескриптор файла 0 т.е. STDIN, и программа показывает вывод на дескрипторе файла 1 т.е. STDOUT. Поскольку Вы видите, что эти два являются wowking на различных дескрипторах файлов, и управление тем не должно препятствовать операции другого.
Обратите внимание, что существует также дескриптор файла 2 т.е. STDERR, обычно используемый для показа сообщений об ошибках.
В Вас случай запускает скрипт как:
./myscript.sh >~/script.out
Теперь можно предоставить входные ответы на вопросы сценария через STDIN, и вывод программы будет сохранен в ~/script.out
.
Можно сохранить ошибку также, например, в другом файле:
./myscript.sh >~/script.out 2>~/script.err
STDOUT будет сохранен в ~/script.out
и STDERR будет сохранен в ~/script.err
.
Можно сохранить вывод и ошибку оба в том же файле:
./myscript.sh >~/script.all 2>&1
Теперь ~/script.all
будет содержать выводы и сообщения об ошибках (если таковые имеются) от myscript.sh
.