Сайт | Скачать | Видео | Wiki

Автор Тема: Скрипт диалога с пользователем  (Прочитано 16445 раз)

0 Пользователей и 3 Гостей просматривают эту тему.

Оффлайн DdShurick

  • Это Риччи
  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 8635
  • Репутация: +187/-2
  • Автор темы
  • Старый чайник
Re: Скрипт диалога с пользователем
« Ответ #15 : 27 Май 2019, 11:31:50 »
рождалось долго и в муках
Оно и видно. А если начать так?
Код
program=$1
$program &
msg_work &
pid_msg=$!
 while [ `pidof $program` ]; do sleep 1; done
kill pid_msg
msg_out
Моноблок Lenovo IdeaCentre c200 (Intel Atom D525, Intel GMA 3150, 2 Gb RAM) Richy64
Nettop Acer Aspire Revo R3610 (Atom N330, nVidia GeForce 9400, 3 Gb RAM) Richy64

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33965
  • Репутация: +231/-0
    • PuppyRus-A
Re: Скрипт диалога с пользователем
« Ответ #16 : 27 Май 2019, 11:48:28 »
вроде - если $program - скрипт, а не бинарник - не работает

Оффлайн DdShurick

  • Это Риччи
  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 8635
  • Репутация: +187/-2
  • Автор темы
  • Старый чайник
Re: Скрипт диалога с пользователем
« Ответ #17 : 27 Май 2019, 13:35:29 »
Моноблок Lenovo IdeaCentre c200 (Intel Atom D525, Intel GMA 3150, 2 Gb RAM) Richy64
Nettop Acer Aspire Revo R3610 (Atom N330, nVidia GeForce 9400, 3 Gb RAM) Richy64

Оффлайн DdShurick

  • Это Риччи
  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 8635
  • Репутация: +187/-2
  • Автор темы
  • Старый чайник
Re: Скрипт диалога с пользователем
« Ответ #18 : 27 Май 2019, 19:28:12 »
 Вобщем вот:
создал скрипт prog
Код
#!/bin/sh
n=0
until [ $n = 10 ]; do echo -n .; n=`expr $n + 1`; sleep 1; done
скрипт msg_part
Код
#!/bin/sh
./prog &
pid_p=$!
echo $pid_p
echo `pidof prog`
export NTF='<window decorated="false">
<frame Инфо><hbox>
<pixmap>
<input file>./wait.gif</input>
</pixmap>
<text>
<label>Процесс пошёл, ждите отстоя пива.</label>
</text>
</hbox></frame>
</window>'
gtkdialog -G +250+50 --program=NTF &
pid_m=$!
echo $pid_m
while [ "$pid_p" = "`pidof prog`" ]; do sleep 1; done
echo выход
kill $pid_m
./msg -i -t 3 Финита ля комедиа!
Сработало как надо.
« Последнее редактирование: 27 Май 2019, 19:30:29 от DdShurick »
Моноблок Lenovo IdeaCentre c200 (Intel Atom D525, Intel GMA 3150, 2 Gb RAM) Richy64
Nettop Acer Aspire Revo R3610 (Atom N330, nVidia GeForce 9400, 3 Gb RAM) Richy64

Оффлайн DdShurick

  • Это Риччи
  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 8635
  • Репутация: +187/-2
  • Автор темы
  • Старый чайник
Re: Скрипт диалога с пользователем
« Ответ #19 : 27 Май 2019, 21:28:38 »
 Собрал в модуль
Моноблок Lenovo IdeaCentre c200 (Intel Atom D525, Intel GMA 3150, 2 Gb RAM) Richy64
Nettop Acer Aspire Revo R3610 (Atom N330, nVidia GeForce 9400, 3 Gb RAM) Richy64

Оффлайн k0l0p0k

  • Ветеран
  • *****
  • Сообщений: 1611
  • Репутация: +27/-1
Re: Скрипт диалога с пользователем
« Ответ #20 : 28 Май 2019, 00:45:53 »
wt ./prog отрабатывает как надо (prog Ваш тестовый скрипт )
./msg_part -s ./prog  окошко с часиками не появляется (
./propind -s /home/live/dev/yad/progress/prog   тоже самое (propind из  Msg.pfs )
грешу на while [ "$(pidof $prog | grep $pid_p)" ]; do sleep 1; done
цикл заканчивается, не начавшись, pidof не "находит" $prog

1.пень G2020,8Gb,Radeon RX460 (Debian+openBox+LXPanel)
2.нетбук  Samsung N145 (Debian+openBox+LXPanel, ddr01)

Оффлайн DdShurick

  • Это Риччи
  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 8635
  • Репутация: +187/-2
  • Автор темы
  • Старый чайник
Re: Скрипт диалога с пользователем
« Ответ #21 : 28 Май 2019, 08:02:21 »
цикл заканчивается, не начавшись
Проверил, так и есть. Вчера работало. Мистика какая-то
Моноблок Lenovo IdeaCentre c200 (Intel Atom D525, Intel GMA 3150, 2 Gb RAM) Richy64
Nettop Acer Aspire Revo R3610 (Atom N330, nVidia GeForce 9400, 3 Gb RAM) Richy64

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33965
  • Репутация: +231/-0
    • PuppyRus-A
Re: Скрипт диалога с пользователем
« Ответ #22 : 28 Май 2019, 09:11:57 »
Мистика какая-то
С этим функционалом именно так. Самое интересное - когда начнете делать под нотификаторы разных ДЕ

Оффлайн k0l0p0k

  • Ветеран
  • *****
  • Сообщений: 1611
  • Репутация: +27/-1
Re: Скрипт диалога с пользователем
« Ответ #23 : 28 Май 2019, 11:41:01 »
Проверил, так и есть. Вчера работало. Мистика какая-то
как то было, из за каментов в скрипте что-то не работало,
пробелы вроде добавлял после камента - исправлялось.
или перед ??? точно не припомню уже подробностей
так что да - мистика случается иногда :)
но тут не из-за каментов, в чем то другом затык
« Последнее редактирование: 28 Май 2019, 11:42:59 от k0l0p0k »
1.пень G2020,8Gb,Radeon RX460 (Debian+openBox+LXPanel)
2.нетбук  Samsung N145 (Debian+openBox+LXPanel, ddr01)

Оффлайн DdShurick

  • Это Риччи
  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 8635
  • Репутация: +187/-2
  • Автор темы
  • Старый чайник
Re: Скрипт диалога с пользователем
« Ответ #24 : 29 Май 2019, 21:01:46 »
Вчера работало.
Сегодня проверил, работает как часы. Ничего не менял, так как pfs
Моноблок Lenovo IdeaCentre c200 (Intel Atom D525, Intel GMA 3150, 2 Gb RAM) Richy64
Nettop Acer Aspire Revo R3610 (Atom N330, nVidia GeForce 9400, 3 Gb RAM) Richy64

Оффлайн k0l0p0k

  • Ветеран
  • *****
  • Сообщений: 1611
  • Репутация: +27/-1
Re: Скрипт диалога с пользователем
« Ответ #25 : 29 Май 2019, 22:24:33 »
вот с этим заработало:
while [ "$(ps -e | grep `basename $prog`)" ]; do sleep 1; done

по Вашему не желает
while [ "$(pidof $prog | grep $pid_p)" ]; do sleep 1; done

запускаю у себя ./prog
в соседней вкладке pidof ./prog выдает пустую строку
видимо причина в этом
« Последнее редактирование: 29 Май 2019, 22:28:53 от k0l0p0k »
1.пень G2020,8Gb,Radeon RX460 (Debian+openBox+LXPanel)
2.нетбук  Samsung N145 (Debian+openBox+LXPanel, ddr01)

Оффлайн DdShurick

  • Это Риччи
  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 8635
  • Репутация: +187/-2
  • Автор темы
  • Старый чайник
Re: Скрипт диалога с пользователем
« Ответ #26 : 30 Май 2019, 08:47:45 »
видимо причина в этом
Да.
Код
# pidof seamonkey
927
# pidof /usr/bin/seamonkey
#
# pidof `basename /usr/bin/seamonkey`
927
Поправка принимается.
Моноблок Lenovo IdeaCentre c200 (Intel Atom D525, Intel GMA 3150, 2 Gb RAM) Richy64
Nettop Acer Aspire Revo R3610 (Atom N330, nVidia GeForce 9400, 3 Gb RAM) Richy64

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33965
  • Репутация: +231/-0
    • PuppyRus-A
Re: Скрипт диалога с пользователем
« Ответ #27 : 31 Май 2019, 12:56:10 »
Собрал в модуль
1. msg -i -t 3 - выводит -t в сообщение
2. Всплывающее на yad gtkdialog - зло. Фокус переносится на сообщение. Т.е. "вырываете из рук"
Только нотификаторы ДЕ или xcowsay

propind - возможно идеи с pidof пригодятся

В остальном до ntf очень далеко
Не тратьте время. Берите ntf и давайте чистить и доводить
Функционал и ключи нужны как в ntf - иначе переписывать кучу скриптов

Оффлайн DdShurick

  • Это Риччи
  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 8635
  • Репутация: +187/-2
  • Автор темы
  • Старый чайник
Re: Скрипт диалога с пользователем
« Ответ #28 : 31 Май 2019, 13:28:08 »
msg -i -t 3 - выводит -t в сообщение
Что интересно, только в pra, в Richy нет.
Фокус переносится на сообщение. Т.е. "вырываете из рук"
Да. Тогда эту затею надо бросать.
Моноблок Lenovo IdeaCentre c200 (Intel Atom D525, Intel GMA 3150, 2 Gb RAM) Richy64
Nettop Acer Aspire Revo R3610 (Atom N330, nVidia GeForce 9400, 3 Gb RAM) Richy64

Оффлайн k0l0p0k

  • Ветеран
  • *****
  • Сообщений: 1611
  • Репутация: +27/-1
Re: Скрипт диалога с пользователем
« Ответ #29 : 31 Май 2019, 13:32:59 »
Не тратьте время.
я просто тренируюсь :) уровень скрипто-писательства приподнять свой
1.пень G2020,8Gb,Radeon RX460 (Debian+openBox+LXPanel)
2.нетбук  Samsung N145 (Debian+openBox+LXPanel, ddr01)