The OpenNET Project / Index page

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



Индекс форумов
Составление сообщения

Исходное сообщение
"Как получить значение возвращенное выполненной внешней командой"
Отправлено billybons2006аноним, 15-Июн-10 12:24 
Описание проблемы: программа "imapsync" предназначена для копирования почтовых ящиков по протоколу IMAP. После выполнения (удачного или нет) команда возвращает определенное значение (0 - все ОК, что-либо иное - проблема). Как мне в коде скрипта perl получить значение, возвращаемое выполненной командой "imapsync -v" (ключ -v в данном случае просто выводит версию программы, это я для тренировки).

Пример:

#!/usr/bin/perl

$filename="emails.txt";

open(FILE,"<",$filename) || die "$!\n";# открываем файл для чтения
while(<FILE>) {         # считываем построчно
       @F = split;     # выделяем столбцы (разделены табуляцией)
       @L = split('@', $F[0]);
       print "$L[0] - $F[1]\n"; # печатаем в формате "имя_ящика - пароль"
       system("imapsync -v"); # как узнать значение, возвращаемое программой imapsync?
}
close(FILE);

Господа perlovod'ы, я понимаю, что выше приведенный код - надругательство над возможностями perl! Но я не знаю этого языка, поэтому для себя составил код "по полочкам".

На shell нечто вроде того, что нужно, выглядит так:
#!/bin/sh

exec < emails.txt     # open for read

while read string
do
        printf "$string\n"
        result=`imapsync -v`
        echo $result
        if [ $? ]
        then
                printf "Returned value is $?.\n"
        fi
done

exit 0

А как сделать на perl - не знаю.

Система CentOS.

Очень надеюсь на совет! Кстати, результат я выложу для упрощения жизни таким, как я, на страницу обсуждения http://www.iredmail.org/forum/post4247.html

 

Ваше сообщение
Имя*:
EMail:
Для отправки новых сообщений в текущей нити на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.

На сайте действует частичное премодерирование - после публикации некоторые сообщения от анонимов могут автоматически скрываться ботом. После проверки модератором ошибочно скрытые сообщения раскрываются. Для ускорения раскрытия можно воспользоваться ссылкой "Сообщить модератору", указав в качестве причины обращения "скрыто по ошибке".



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

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