BELL 문자 '\a'의 메커니즘은 무엇입니까?

BELL 문자 '\a'의 메커니즘은 무엇입니까?

쉘 프로그래밍에 관한 책을 읽고 있는데 다음 명령이 동일하다는 것을 알게 되었습니다. 이 명령은 Mac에서는 경고음이 울리지만 Ubuntu에서는 소리가 나지 않습니다.

$ echo $'\a'

$ echo -e "\a"

$

그러나 두 경우 모두 터미널에 빈 줄을 입력하라는 메시지가 표시됩니다. 내 질문은 다음과 같습니다

  1. 여기는 무엇입니까 $'\a'? 매개변수 확장, 명령 대체 또는 다른 것?
  2. echo예를 들어 이 경우 매개변수가 정의되지 않은 것처럼 빈 줄을 인쇄하는 이유는 무엇입니까?

$ echo $NONSENSE빈 줄을 묻는 메시지가 표시됩니까? 감사해요!

답변1

우분투에서는 소리를 내지 마세요:

어쩌면 너의 특별함 때문일지도 몰라터미널 에뮬레이터경고음이 울리지 않도록 구성하거나 커널 모듈이 언로드된 경우 등으로 인해 경고음이 울리는 다른 pcspkr터미널 에뮬레이터(예: 이전 에뮬레이터)를 사용할 수 있습니다.xterm

여기는 무엇입니까 $'\a'?

읽다쉘 확장 장배쉬 매뉴얼. 그것은 알려져있다ANSI-C 인용문(해설가로서남쪽 공원).

echo가 빈 줄을 인쇄하는 이유는 무엇입니까?

명령 echo(자세히 보기에코(1)...)대개bash 쉘 내장따라서 (아무것도 없이 -n) 확장된 인수(여기서는 벨 문자)를 인쇄하고 그 뒤에 개행 문자가 옵니다. 그러나 터미널 에뮬레이터는 벨을 울리지 않습니다(벨소리 문자는아니요그대로 표시됨제어 문자)

그런데 Apple이 GPLv3+ 라이센스를 좋아하지 않는다는 소문이 있으므로 업그레이드를 원할 수도 있습니다. bashApple 컴퓨터의 최신 버전(예: 2017년 8월 기준 4.4).

당신은 읽을 수 있습니다tty가 공개됐다Unix의 터미널 에뮬레이터에 대한 역사적 접근 방식에 대해 알아보세요. 당신은 또한 볼 수 있습니다개인 유한 회사(7).

관련 정보