#! /bin/sh
echo "$(byobu ls|grep attached)"|sed 's/\([a-zA-Z0-9][a-zA-Z0-9]*\).*/\1/'
это мой скрипт в ~/.byobu/bin/
время обновления составляет 1 секунду.
Это показывает имя сеанса в качестве пользовательского состояния, но оно делает это для всех, кроме 1 сеанса. Вместо отображения имени сеанса оно показывает] 0 для этого сеанса.
Есть ли какая-то проблема с командой echo?
Проблема может быть найдена, когда вы делаете Byobu ls |grep
прилагается >> ~/byobu_out
.
Когда вы просматриваете этот файл, вывод нормальный, т.е.
session1name:details
session2name:details
, но когда вы открываете его в vi
, вы видите, что файл выглядит так:
^[]0;[user@host](x.x.x.x)] - byobu^Gsession1name:details
session2name:details
Поэтому, когда вы пропускаете этот выход через sed
, он останавливается на ]0
.
Чтобы преодолеть это, используйте tail -c +x [filename]
, чтобы увидеть выходные данные, где x
- номер байта заголовка нежелательной почты.
Кроме того, заголовок нежелательной почты - это не что иное, как заголовок окна терминала byobu.