The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
Как вернуть результат выплнения внешней команды ?, !*! dmitri, 29-Окт-05, 17:58  [смотреть все]
Озадачился недавно написанием скрипта чтобы он определял был ли изменен конфиг и если да то перезапускал апач, но надо бы проверить ситаксис конфига  
перед запуском делаю следующее:
#!/usr/bin/perl
my $output = system "/usr/local/sbin/apachectl -t";
print $output;

казалось чего проще но $output - пустая ничего нет, подскажите как это реализовать.

P.S. pliz подкажите

  • Как вернуть результат выплнения внешней команды ?, !*! 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`;




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру