- Как вернуть результат выплнения внешней команды ?, madskull, 18:33 , 29-Окт-05 (1)
>Озадачился недавно написанием скрипта чтобы он определял был ли изменен конфиг и >если да то перезапускал апач, но надо бы проверить ситаксис конфига > >перед запуском делаю следующее: >#!/usr/bin/perl >my $output = system "/usr/local/sbin/apachectl -t"; >print $output; > >казалось чего проще но $output - пустая ничего нет, подскажите как это >реализовать. > >P.S. pliz подкажите system отдает код возврата программы. чтобы получить результат работы, надо использовать обратные кавычки. my $output = `/usr/local/sbin/apachectl -t`;
- Как вернуть результат выплнения внешней команды ?, dmitri, 19:50 , 29-Окт-05 (2)
>system отдает код возврата программы. >чтобы получить результат работы, надо использовать обратные кавычки. >my $output = `/usr/local/sbin/apachectl -t`; Да, если использовать другю команду, т.е. не apachectl, а что нибудь типа ls, но в случае с apachectl результат не возвращятся (если не верите попробуйте сами). Можно даже так: host#/usr/local/sbin/apachectl -t >> /tmp/apache_result.txt, host#ls -l /tmp/apache_result.txt -rw-r--r-- 1 root root 0 Oct 29 19:46 apache_result.txt т.е. не получается даже вывод перенаправить в файл, или я что-то не правильно делаю.
- Как вернуть результат выплнения внешней команды ?, madskull, 22:30 , 29-Окт-05 (3)
>>system отдает код возврата программы. >>чтобы получить результат работы, надо использовать обратные кавычки. >>my $output = `/usr/local/sbin/apachectl -t`; > >Да, если использовать другю команду, т.е. не apachectl, а что нибудь типа >ls, но в случае с apachectl результат не возвращятся (если не >верите попробуйте сами). Можно даже так: > >host#/usr/local/sbin/apachectl -t >> /tmp/apache_result.txt, >host#ls -l /tmp/apache_result.txt >-rw-r--r-- 1 root root 0 Oct >29 19:46 apache_result.txt > >т.е. не получается даже вывод перенаправить в файл, или я что-то не >правильно делаю. Ну, раз он не выводит в stdout, значит - в stderr my $output = `/usr/local/sbin/apachectl -t 2>&1`;
|