The UNIX and Linux Forums  
Здравствуйте и добро от Соединенных Штатов UNIX и Linux Форумы! Благодарим Вас за посещение и вступления нашей мирового сообщества.

Go Back   В UNIX и Linux Форумы > Топ форумы > Shell программирование и сценарии
.
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

Closed Thread
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered By Powered by Google
 
LinkBack Резьба Инструменты Искать в этом Thread Оценить Thread Режимы дисплея
Old 02-11-2009
ccsaviour ccsaviour is offline
Зарегистрированный пользователь
  
 

Регистрация: Февраль 2009
Сообщений: 2
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
Old 02-11-2009
JerryHone JerryHone is offline
Зарегистрированный пользователь
  
 

Регистрация: Nov 2006
Место проведения: Великобритания
Сообщений: 178
Ваш вывод внутри "foreach $ линия (@ DU)" петли, поэтому, если @ DU состоит из двух элементов, вы получите выход в два раза.

HTH

Джерри
Old 02-12-2009
KevinADC KevinADC is offline Forum Advisor  
Зарегистрированный пользователь
  
 

Регистрация: Январь 2008
Сообщений: 731
В следующий раз использовать код тегов и после отформатированная код. Пытаться читать, что многое неформатированные код является слишком сложным. Я думаю, Джерри имеет заметили эту проблему, хотя.
Old 02-12-2009
ccsaviour ccsaviour is offline
Зарегистрированный пользователь
  
 

Регистрация: Февраль 2009
Сообщений: 2
Perl печать ошибка

Привет Кельвина и Джерри,

Спасибо за ваш вклад. Я буду придерживаться в дальнейшем.

Я надеюсь, что необходимо еще два условия и флаг ($ видел) будет справедливо и для случаев, и, следовательно, он печатает два раза в каждом цикле.

Еще раз спасибо,
ccsaviour
Old 02-12-2009
KevinADC KevinADC is offline Forum Advisor  
Зарегистрированный пользователь
  
 

Регистрация: Январь 2008
Сообщений: 731
Вы не можете иметь еще два условия Perl. Вы можете:

Если / elsif / другое

как много 'elsif' условия, необходимые и "другое" в конце не является обязательным
Closed Thread

Закладки

Резьба Инструменты Искать в этом Thread
Искать в этом Thread:

Расширенный поиск
Режимы дисплея Оценить эту ветку
Оценить эту ветку:

Отправка Правила
Вы не может Начать новую нитей
Вы не может Почтовые ответы
Вы не может Почтовые вложения
Вы не может Редактировать Ваши сообщения

BB код быть На
Смайлики являемся На
[IMG] код На
HTML-код Вне
Trackbacks являемся На
Pingbacks являемся На
Refbacks являемся На




Часовой пояс GMT -4. Текущее время 05:06 AM.


Powered By: Справка, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Язык Переводы на питание от .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
В UNIX и Linux форумы Содержание Copyright © 1993-2009. Все права Reserved.Ad управления по RedTyger

Содержание соответствующие URL-адреса в vBSEO 3.2.0