Выполнение команд после основанных на событии выводов

Для Вашего первого вопроса это обычно зависит от Вашей сессии, т.е. файл в Вашем примере не обязательно достаточен, поскольку это не запускает Ваш WM/DE. Обычно ~/.xsession или ~/.xinitrc запустите целую среду, и не только используются для автоматического запуска некоторых программ, т.е. они должны содержать строку как exec x-window-manager но глобальное xsession май просто получает файл.

Для Вашего другого вопроса Debian (и вероятно Ubuntu) имеют /etc/X11/Xsession.d который, например, загружается ~/.Xresources. Эти файлы также ответственны за загрузку и нахождение менеджера окон по умолчанию.

Для отладки проблем, необходимо взглянуть в ~/.xsession-errors или запустите xserver с консоли и см. сообщения об ошибках непосредственно там, т.е. startx -- /etc/X11/Xsession

3
11.10.2013, 01:20
2 ответа

Просто считайте stdin в цикле

iwevent | while IFS= read -r line; do
    echo "[$(date "+%F %T")] - $line"
done

В зависимости от того, что Вы делаете в теле цикла, Вы могли бы хотеть

while IFS= read -r line; do
    echo "[$(date "+%F %T")] - $line"
done < <(iwevent)

Это избегает неявных эффектов подоболочки использования конвейера.

4
27.01.2020, 21:13
  • 1
    Вот именно, точно как этот! Спасибо за ответ! :) –  Nico Rodsevich 11.10.2013, 04:26

Не уверенный я получаю то, что Вы имеете в виду, но что-то в направлении этого?

while IFS= read -r line; do
    printf "%s\n%s\n" "$line" "Yohooo! One more package."
done < <(tcpdump -i any -nS)
3
27.01.2020, 21:13
  • 1
    мне было нужно это, Вы поняли меня хорошо. Спасибо за ответ! –  Nico Rodsevich 11.10.2013, 04:27

Теги

Похожие вопросы