W oknie terminala konsoli poza ekranem z uruchomioną powłoką bash z ustawionym TERM na konsole-256color, jeśli napiszę:
echo -n $ '\ a' lub
echo -n $ '\ eg np. lub
./ringbell gdzie zawartość ./ringbell jest
#! / bin / bash echo -n $ '\ eg'; echo -n $ '\ a'
Wszystkie powodują wyłączenie skonfigurowanego dzwonka audio. Jeśli wejdę w sesję ekranową (mój .screenrc również ustawi termin na konsole-256color), tylko drugie z powyższych 3 poleceń (echo -n $ '\ eg') spowoduje usłyszenie dzwonka audio. Czy muszę zmodyfikować skrypt, czy jest to problem z ekranem?
Wersja ubuntu pakietu ekranu, którą mam, to 4.1.0 ~ 20120320gitdb59704-9.
Odpowiedzi:
Z pamięci Ctrl-G jest postacią dzwonkową, więc myślę, że właśnie dlatego drugi zadziałał. Ale ekran może być wybredny w stosunku do akceptowanych znaków, ponieważ przyjmuje Ctrl-A jako kod polecenia.
Spróbuj tego
Znalazłem to na rosettacode , mam nadzieję, że da ci to kilka opcji
źródło
Najlepsze rozwiązanie:
printf '\a'
To dlatego, że
printf
wbudowane w większość powłok działa dobrze, a także istnieje równoważna wykonywalna wersjaprintf
zainstalowana z systemami Linux / Mac.Inne opcje: Jeśli masz zainstalowane klątwy, możesz także użyć:
tput bel
Jeśli używasz najnowszej wersji bash, możesz użyć:echo -n '\a'
źródło