![BELL 문자 '\a'의 메커니즘은 무엇입니까?](https://linux55.com/image/116547/BELL%20%EB%AC%B8%EC%9E%90%20'%5Ca'%EC%9D%98%20%EB%A9%94%EC%BB%A4%EB%8B%88%EC%A6%98%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
쉘 프로그래밍에 관한 책을 읽고 있는데 다음 명령이 동일하다는 것을 알게 되었습니다. 이 명령은 Mac에서는 경고음이 울리지만 Ubuntu에서는 소리가 나지 않습니다.
$ echo $'\a'
$ echo -e "\a"
$
그러나 두 경우 모두 터미널에 빈 줄을 입력하라는 메시지가 표시됩니다. 내 질문은 다음과 같습니다
- 여기는 무엇입니까
$'\a'
? 매개변수 확장, 명령 대체 또는 다른 것? echo
예를 들어 이 경우 매개변수가 정의되지 않은 것처럼 빈 줄을 인쇄하는 이유는 무엇입니까?
$ echo $NONSENSE
빈 줄을 묻는 메시지가 표시됩니까? 감사해요!
답변1
우분투에서는 소리를 내지 마세요:
어쩌면 너의 특별함 때문일지도 몰라터미널 에뮬레이터경고음이 울리지 않도록 구성하거나 커널 모듈이 언로드된 경우 등으로 인해 경고음이 울리는 다른 pcspkr
터미널 에뮬레이터(예: 이전 에뮬레이터)를 사용할 수 있습니다.xterm
여기는 무엇입니까
$'\a'
?
읽다쉘 확장 장배쉬 매뉴얼. 그것은 알려져있다ANSI-C 인용문(해설가로서남쪽 공원).
echo가 빈 줄을 인쇄하는 이유는 무엇입니까?
명령 echo
(자세히 보기에코(1)...)대개bash 쉘 내장따라서 (아무것도 없이 -n
) 확장된 인수(여기서는 벨 문자)를 인쇄하고 그 뒤에 개행 문자가 옵니다. 그러나 터미널 에뮬레이터는 벨을 울리지 않습니다(벨소리 문자는아니요그대로 표시됨제어 문자)
그런데 Apple이 GPLv3+ 라이센스를 좋아하지 않는다는 소문이 있으므로 업그레이드를 원할 수도 있습니다. bash
Apple 컴퓨터의 최신 버전(예: 2017년 8월 기준 4.4).
당신은 읽을 수 있습니다tty가 공개됐다Unix의 터미널 에뮬레이터에 대한 역사적 접근 방식에 대해 알아보세요. 당신은 또한 볼 수 있습니다개인 유한 회사(7).