![]() |
Здравствуйте и добро от Соединенных Штатов UNIX и Linux Форумы! Благодарим Вас за посещение и вступления нашей мирового сообщества.
|
|
Google unix.com
|
|||||||
| Форумы | Регистрация | Правила форума | Ссылки | Альбомы | ЧАВО | Список участников | Календарь | Поиск | Сегодняшние сообщения | Отметить форумы читать |
| Shell программирование и сценарии Почтовые вопросы о KSH, CSH, SH, BASH, Perl, PHP, SED, AWK и скрипты оболочки и оболочки скриптовых языков здесь. |
Подробнее UNIX и Linux Темы форума можно найти полезные
|
||||
| Нить | Резьба для начинающих | Форум | Ответы | Последнее сообщение |
| Perl ошибке | dirdamalah | Shell программирование и сценарии | 3 | 06-21-2008 05:32 PM |
| Perl, печать строки в колонках | doubleminus | UNIX для чайников Вопросы И Ответы | 5 | 05-21-2008 09:41 PM |
| PERL ошибке | Астероидов | Программирования высокого уровня | 3 | 04-25-2008 01:15 AM |
| печать пустая строка в файле (Perl) | kfad | Shell программирование и сценарии | 3 | 05-07-2005 03:10 AM |
| Сообщение об ошибке в Windows печать на порт 515 | Pauls | SUN Solaris | 0 | 12-23-2004 09:51 AM |
![]() |
|
|
LinkBack | Резьба Инструменты | Искать в этом Thread | Оценить Thread | Режимы дисплея |
|
|
|
||||
|
Perl типографские ошибки
Привет Сценарии гуру, я новая пчела в Perl, И стараемся, чтобы написать скрипт, который необходимо распечатать свободного дискового пространства наличие C и E диски. Пожалуйста, советом.
Вот фрагмент сценария и ожидаемые результаты: #! / USR / BIN /Perl использование CGI qw /: html3: стандартный /; $ spaceuselog \u003d "E: \ \ Admin \ \ VOBSpaceUsage \ \ vobspaceusage.log.txt"; Доклад $ \u003d "E: \ \ Admin \ \ VOBSpaceUsage \ \ vobspaceusage.html"; OPEN (LOG, "> $ докладу") | | умереть "Ошибка записи в лог-файл $ файл_журнала!"; $ Datetime Localtime \u003d (); кол $ \u003d 0; VOB $ \u003d ""; $ vobsize \u003d 0; $ totalvobsize + \u003d 0; $ VD \u003d ""; Сумма $ \u003d 0; # @ vobs \u003d `lsvob CT-S-хост blrcc1`; @ vobs \u003d ( "\ \ scm_blr_amor","\ \ scm_blr_projects","\ \ scm_blr_misc","\ \ blr_mobile_projects","\ \ blr_mobile_test"); если ($ ENV (OS) \u003d ~ м / Windows /) ( $ Store \u003d $ ENV (SystemDrive); OPEN (ВГУ, "> $ доклад"), или умереть "Не удается открыть: $! \ N"; открыть (VS, ">> $ доклад"), или умереть "Не удается открыть: $! \ N"; $ КТ \u003d "cleartool"; ) еще ( OPEN (ВГУ, "> E: \ \ Admin \ \ VOBSpaceUsage \ \ vobspaceusage.html"), или умереть "Не удается открыть: $! \ N"; CT $ \u003d "C: \ \ Program Files \ \ Рациональные \ \ ClearCase \ \ Bin \ \ cleartool.exe"; ) нажимаем (@ ВГУ, start_html ( "VOB пространства доклад"), "\ N"); нажимаем (@ ВГУ ", <p> <b> VOB Backup процесс завершен успешно Backup Server: <font color\u003dblue> BLRSTG01 </ FONT цвет> </ B>"); нажимаем (@ ВГУ ", <p> В VOBs имеют резервные копии и имеющихся на месте: \ \ blrstg01 \ ClearCase \ Резервное копирование папку. </ P> "); нажимаем (@ ВГУ ", \ N <TD width\u003dauto align\u003dcenter> \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d \u003d\u003d\u003d\u003d \u003d \ N "); нажимаем (@ ВГУ ", <p> <b> VOB Размер положению о VOB Server: <font color\u003dblue> BLRCC1 </ FONT цвет> </ B> </ P>"); нажимаем (@ ВГУ ", <table border\u003d1 width\u003dauto> \ N"); нажимаем (@ ВГУ ", <tr> \ N"); нажимаем (@ ВГУ ", <TD width\u003dauto align\u003dcenter> <b> VOB Имя </ B> </ TD> \ N"); нажимаем (@ ВГУ ", <TD width\u003dauto align\u003dcenter> <b> размер в Mb </ B> </ TD> \ N"); нажимаем (@ ВГУ ", <TD width\u003dauto align\u003dcenter> <b> размер в Гб </ B> </ TD> \ N"); нажимаем (@ ВГУ, "</ TR> \ N"); нажимаем (@ В. С., "</ TABLE>"); foreach $ VOB (@ vobs) ( $ \u003d $ vobname VOB; chomp ($ vobname); нажимаем (@ ВГУ ", <tr> \ N"); нажимаем (@ ВГУ ", width\u003dauto <TD ALIGN\u003dLEFT> $ vobname </ TD> \ N"); @ \u003d vbpath `CT lsvob $ VOB`; foreach $ PATH (@ vbpath) ( # Принт "\ N $ путь"; $ PATH \u003d ~ S / \ * / /; $ PATH \u003d ~ S / \ S / /; # Принт "\ N $ путь"; если ($ PATH \u003d ~ / \ S (\ \ \ \ [A-Za-Z \ \ A-Z0-9 \ _ \. \ \ ]*)/) ( # принт "\ nVOBPATH -> $ 1 \ N"; $ cdft \u003d "$ 1 \ \ C \ \ cdft"; # печать LOG "\ T $ cdft"; $ ddft \u003d "$ 1 \ \ D \ \ ddft"; # печать LOG "\ T $ ddft"; $ DB \u003d "$ 1 \ \ DB"; # печать LOG "\ T $ DB"; $ sdft \u003d "$ 1 \ \ S \ \ sdft"; # принт "\ N Источник Бассейн ---> $ sdft"; vobpath $ \u003d $ 1; # принт "\ nVOBPath >>>>>>>$ vobpath"; ) ) @ totspace \u003d `diruse / M $ vobpath`; @ A \u003d раскол ( "", $ totspace [-1]); totalvobsize $ \u003d $ A [0]; # Печать LOG "\ T \ T $ totalvobsize"; нажимаем (@ ВГУ ", <TD width\u003dauto align\u003dcenter> $ totalvobsize </ TD> \ N"); totalGBsize $ \u003d ($ totalvobsize / 1024); # Печать LOG "\ T \ T $ totalGBsize"; нажимаем (@ ВГУ ", <TD width\u003dauto align\u003dcenter> $ totalGBsize </ TD> \ N"); ) # толчок (@ В. С., "<p> дисков Использование <b> C </ B> Drive </ P> \ N"); # толчок (@ В. С., "<p> дисков Использование <b> E </ B> Drive (VOBs хранения включали) </ P> \ N"); # foreach (@ MSG) # ( # Печать $ _; #) foreach (@ ВГУ) ( печать LOG; ) # толчок (@ ВГУ, <table>); foreach (@ В. С.) ( печать LOG; Версия для печати RLOG; ) OPEN (RLOG, "<E: \ \ Резервное копирование \ \ журнал \ \ rlog.txt"); @ rlog \u003d <RLOG>; для (@ rlog) ( # Печатать если / Диск Использование / .. 0 нажимаем (@ DU, $ _), если / Диск Использование / .. 0 ) $ видел \u003d 1; foreach $ линия (@ DU) ( # @ \u003d Новый раскол (/ \ S /,$_); chomp ($ строка); # Принт "\ N $ линию"; если (($ линия \u003d ~ / ^ [0-9] *) И И ($ линия \u003d ~ / Бесплатно $ /)) ( @ Val \u003d раскол (/ \ S /, $ строка); $ \u003d $ новый вал [0]; $ \u003d sprintf новых "% .2 F", $ новым; # Принт "\ Н.И. М. обработки информации диск C, стоимость новой переменной $ новое"; если ($ новый <100.00) ( Версия для печати "\ nThe свободного места на диске C BLRCC1 менее 100 Гб, пожалуйста Обновление / Освободите место на диске"; ) # Другое # ( Версия для печати "\ nThe бесплатные места на диске C BLRCC1 составляет $ новое"; #) $ Val [0] \u003d 0; $ видел \u003d 0; ) $ видел \u003d 2; # Принт "\ nLooped: $ видел \ N"; если (($ линия \u003d ~ / ^ [0-9] *) И И ($ линия \u003d ~ / свободный $ /) И И ($ видел \u003d\u003d 2)) ( @ Val \u003d раскол (/ \ S /, $ строка); $ \u003d $ raghu Val [0]; # Принт "\ nValue долл. Val [0] \ N"; $ raghu \u003d sprintf "% .2 F", $ raghu; # Принт "\ Н.И. М. обработки информации диска E, стоимость новой переменной $ raghu"; если ($ raghu <100.00) ( Версия для печати "\ nThe свободного места на диске E BLRCC1 меньше 100 ГБ, пожалуйста Обновление / Освободите место на диске"; ) # Другое # ( Версия для печати "\ nThe бесплатное пространство на диске E BLRCC1 составляет $ raghu"; #) ) Версия для печати Журнал "<p> $ линия </ P>"; нажимаем (@ В. С., "<p> $ линия </ P> \ N"); ) закрыть RLOG; закрыть LOG; закрыть В.С.; закрыть ВГУ; Сейчас я получаю на выходе, как показано ниже: Имеющиеся свободного места на диске C BLRCC1 является 103,82 Имеющиеся свободного пространства на диске E BLRCC1 является 103,82 Имеющиеся свободного места на диске C BLRCC1 является 145,17 Имеющиеся свободного пространства на диске E BLRCC1 является 145,17 Ожидаемый результат: Имеющиеся свободного места на диске C BLRCC1 является 103,82 Имеющиеся свободного пространства на диске E BLRCC1 является 145,17 |
|
||||
|
Ваш вывод внутри "foreach $ линия (@ DU)" петли, поэтому, если @ DU состоит из двух элементов, вы получите выход в два раза.
HTH Джерри |
|
||||
|
В следующий раз использовать код тегов и после отформатированная код. Пытаться читать, что многое неформатированные код является слишком сложным. Я думаю, Джерри имеет заметили эту проблему, хотя.
|
|
||||
|
Perl печать ошибка
Привет Кельвина и Джерри,
Спасибо за ваш вклад. Я буду придерживаться в дальнейшем. Я надеюсь, что необходимо еще два условия и флаг ($ видел) будет справедливо и для случаев, и, следовательно, он печатает два раза в каждом цикле. Еще раз спасибо, ccsaviour |
|
||||
|
Вы не можете иметь еще два условия Perl. Вы можете:
Если / elsif / другое как много 'elsif' условия, необходимые и "другое" в конце не является обязательным |
![]() |
| Закладки |
| Резьба Инструменты | Искать в этом Thread |
| Режимы дисплея | Оценить эту ветку |
|
|