Как я могу позвонить в звуковой звонок внутри скрипта bash, работающего под экраном GNU?

10692
Bob

В окне терминала konsole за пределами экрана запускается оболочка bash с TERM, установленным в konsole-256color, если я наберу:

echo -n $ '\ a' или
echo -n $ '\ eg' или
./ringbell, где содержимое ./ringbell

#! / Bin / Баш echo -n $ '\ eg'; echo -n $ '\ a'

Все они приводят к тому, что настроенный звуковой звонок отключается. Если я вхожу в сеанс экрана (мой .screenrc также устанавливает term для konsole-256color), то только вторая из трех вышеуказанных команд (echo -n $ '\ eg') приводит к тому, что слышен звуковой звонок. Нужно ли изменять скрипт или это проблема с экраном?

У меня есть версия экранного пакета для Ubuntu 4.1.0 ~ 20120320gitdb59704-9.

12
Также обратитесь к [этому вопросу] (http://unix.stackexchange.com/q/1974), хотя я действительно предпочитаю ответ Кейта. Franklin Yu 7 лет назад 0

1 ответ на вопрос

13
Keith Muggleton

По памяти Ctrl-G является символом колокольчика, поэтому я думаю, именно поэтому второй сработал. Но экран может быть требователен к тому, какие символы он принимает, так как он принимает Ctrl-A в качестве кода команды.

Попробуй это

#!/bin/sh # Ring the terminal bell # echo "\a" # does not work in some shells tput bel 

Я нашел это на rosettacode, надеюсь, это даст вам несколько вариантов

Это не работает ни внутри, ни снаружи экрана. Если я использую infocmp, это показывает, что возможность bel не определена для TERM konsole-256color, так что это имеет смысл. Хотя запись terminfo экрана определяет bel, экран tput -T bel также не работает. Bob 9 лет назад 0
После дальнейших испытаний выясняется, что экран tput -T бел работает. Мой первоначальный тест не удался, потому что у меня был экран на экране, а на внешнем экране не было выключено vbell. Спасибо за совет. Bob 9 лет назад 0

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