Gnu 화면에서 실행되는 bash 스크립트 내에서 어떻게 오디오 벨을 울릴 수 있나요?

Gnu 화면에서 실행되는 bash 스크립트 내에서 어떻게 오디오 벨을 울릴 수 있나요?

TERM을 konsole-256color로 설정하여 bash 쉘을 실행하는 화면 외부의 konsole 터미널 창에서 다음을 입력합니다.

echo -n $'\a'

또는

echo -n $'\eg'

또는

./ringbell.sh

의 내용은 어디에 ringbell.sh있습니까?

#!/bin/bash
echo -n $'\eg'
echo -n $'\a'

이로 인해 구성된 오디오 벨이 울리게 됩니다. 화면 세션에 들어가면(나도 ~/.screenrc설정함 TERM=konsole-256color) 위의 3가지 명령 중 두 번째 명령( echo -n $'\eg')만 오디오 종소리를 듣게 됩니다. 스크립트를 수정해야 합니까, 아니면 이것이 문제입니까 screen?

나는 screen 4.1.0~20120320gitdb59704-9우분투에서 사용합니다.

답변1

기억상으로는 Ctrl-G가 벨 문자이므로 두 번째 문자가 작동했던 것 같습니다. 그러나 화면은 Ctrl-A를 명령 코드로 사용하므로 허용되는 문자를 선택하는 데 까다로울 수 있습니다.

이 시도

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

나는 이것을 찾았다로제타코드, 바라건대 그것은 당신에게 몇 가지 옵션을 제공할 것입니다

답변2

최상의 솔루션:printf '\a'

이는 대부분의 셸에 내장된 것이 잘 작동하고 Linux/Mac 시스템에 설치된 printf동등한 실행 버전도 있기 때문입니다.printf

기타 옵션:curses가 설치되어 있는 경우 다음을 사용할 수도 있습니다. tput bel 최신 버전의 bash를 사용하는 경우 다음을 사용할 수 있습니다.echo -e '\a'

관련 정보