Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Perl: Системное программирование > перенапровление вывода из STD* в файл


Автор: DiverD 21.5.2007, 10:20
У меня скажем 2а сценария, один  script.sh а второй script.pl,
из скрипта *.pl я выполняю *.sh, мне нужна направить вывод результата работы скрипта script.sh в файл (log.sh) + ко всему если в сценарии допущена ошибка, тоже писать в файл, а на не на дисплей.

для вывода использовал ">" но если допустить умышленную ошибку в баш-сценарий то ошибка выводится не туда куда хотелось бы.

Автор: amg 21.5.2007, 11:50
Запускай script.sh такой командой:
Код

system("script.sh 1> log.sh 2> err.sh");

Тут одна тонкость. У system должен быть только один аргумент, иначе команда запустится сама по себе, не из-под шелла, а чтобы перенаправления работали, нужен шелл.
Т.е. обычно рекомендуемый и в большинстве случаев более правильный вариант system($programs, @options) не годится.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)