Модераторы: ginnie, korob2001
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Обрезается поток по ширене окна терминала, open($stream,"ps -aux|") 
:(
    Опции темы
vaddsm
Дата 3.7.2007, 10:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 128
Регистрация: 30.6.2007

Репутация: нет
Всего: нет



Код

if(open($stream,"ps -aux|"))
{
 while($r = <$stream>)
 {
  # если запустить такой скрипт из шелл, то $r будет содержать обрезанную строку в ширину окна терминала
  # как считать все данные ps -aux не взерая на то какой ширины окно терминала из которого запущен этот скрипт
 }
}



PM MAIL   Вверх
dimes
Дата 3.7.2007, 11:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 249
Регистрация: 20.7.2004
Где: то около СПБ

Репутация: нет
Всего: 14



ps -auxwwww
хм... если я конечно не ошибся с кол-вом "w"  smile 


Это сообщение отредактировал(а) dimes - 3.7.2007, 11:13
PM ICQ   Вверх
amg
Дата 3.7.2007, 11:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1145
Регистрация: 3.8.2006
Где: Новосибирск

Репутация: 9
Всего: 50



Цитата(vaddsm @  3.7.2007,  10:59 Найти цитируемый пост)
если запустить такой скрипт из шелл, то $r будет содержать обрезанную строку в ширину окна терминала
Возможно, это зависит от терминала. У меня (в xterm) $r не обрезается.

Еще, быть может, накладываются свойства шелла (open с двумя параметрами использует шелл для исполнения команды). Чтобы выполнить команду без посредничества шелла (это тем более уместно для такой команды как ps - дольше шелл запускать, чем ее исполнить), нужно open с более чем двумя параметрами:
Код

open($stream, '-|', "ps aux")
И - перед aux лишний.
PM MAIL   Вверх
sharq
Дата 3.7.2007, 11:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Perl Liker
**


Профиль
Группа: Участник
Сообщений: 841
Регистрация: 13.12.2004
Где: Ростов-на-Дону

Репутация: 3
Всего: 28



dimes, меньше smile

ps auxww

 smile

Добавлено через 2 минуты и 13 секунд
amg, формат вызова open не влияет! 
Хотя верно подметил, с версии Perl 5.8.x стОит использовать open c 3мя параметрами.





--------------------
[color=gray]There's More Than One Way To Do It[/color]
PM MAIL WWW ICQ Skype   Вверх
dimes
Дата 3.7.2007, 12:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 249
Регистрация: 20.7.2004
Где: то около СПБ

Репутация: нет
Всего: 14



Цитата(sharq @  3.7.2007,  12:53 Найти цитируемый пост)
dimes, меньше

Спорить не буду, админ говорил что на некоторых платформах нужно больше w но на каких и почему внятно объяснить не могу  smile

я лично для таких вещей open не использую по-моему лучше:

Код

 for(`ps -auxww`) {
   my $_r=$_;
 }

PM ICQ   Вверх
sharq
Дата 3.7.2007, 12:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Perl Liker
**


Профиль
Группа: Участник
Сообщений: 841
Регистрация: 13.12.2004
Где: Ростов-на-Дону

Репутация: 3
Всего: 28



dimes
Цитата(dimes @  3.7.2007,  13:17 Найти цитируемый пост)
я лично для таких вещей open не использую по-моему лучше:

если тебе нужно общаться с процессом через пайп? то без open ничего хорошего не получится.
Хотя с ps проблем не будет, если например - mplayer - то тут уже никуда не деться.

 smile 


--------------------
[color=gray]There's More Than One Way To Do It[/color]
PM MAIL WWW ICQ Skype   Вверх
dimes
Дата 3.7.2007, 12:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 249
Регистрация: 20.7.2004
Где: то около СПБ

Репутация: нет
Всего: 14



Цитата(sharq @  3.7.2007,  13:20 Найти цитируемый пост)
если тебе нужно общаться с процессом через пайп?

А о чем мне общаться с ps?  smile
некоторые процессы не заслуживают даже что бы их слушали дернул их system-ом посмотрел статус и забыл о нем  smile
PM ICQ   Вверх
vaddsm
Дата 3.7.2007, 13:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 128
Регистрация: 30.6.2007

Репутация: нет
Всего: нет



Код

open($stream, '-|', "ps aux")


дал как не странно тот же результат.

а вот

Код

for(`ps -auxww`) {
   my $_r=$_;
 }
 


на ура.

Спасибо!
PM MAIL   Вверх
sharq
Дата 3.7.2007, 13:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Perl Liker
**


Профиль
Группа: Участник
Сообщений: 841
Регистрация: 13.12.2004
Где: Ростов-на-Дону

Репутация: 3
Всего: 28



vaddsm, )))))
Цитата(vaddsm @  3.7.2007,  14:04 Найти цитируемый пост)
"ps aux")


Цитата(vaddsm @  3.7.2007,  14:04 Найти цитируемый пост)
ps -auxww


нади отличия!


--------------------
[color=gray]There's More Than One Way To Do It[/color]
PM MAIL WWW ICQ Skype   Вверх
nitr
Дата 3.7.2007, 13:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2543
Регистрация: 10.2.2006
Где: Россия :)

Репутация: 2
Всего: 84



smile

vaddsm, поидее man ps, т.к. нет ps -... есть ps ...

;)

Это сообщение отредактировал(а) nitr - 3.7.2007, 13:44


--------------------
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl: Системное программирование"
korob2001
sharq
  • В этом разделе обсуждаются вопросы относящиеся только к системному программированию на Perl
  • Если ваш вопрос не относится к системному или CGI программированию, задавайте его в общем разделе
  • Если ваш вопрос относится к CGI программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", можно скачать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: Системное программирование | Следующая тема »


 




[ Время генерации скрипта: 0.1160 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.