A BELL karakter mechanizmusa ' \ a '?

Olvasok egy könyvet a shell programozásáról, és megtanulom, hogy a következő parancsok egyenértékűek, amelyek sípolnak a Mac gépemen, de nem adnak ki hangot az Ubuntuban:

$ echo $"\a" $ echo -e "\a" $ 

azonban mindkét esetben a terminál üres sort kér. A kérdéseim a következők:

  1. Mi a “s $"\a"? Paraméter-bővítés, parancs-helyettesítés vagy valami más?
  2. Miért echo üres sort nyomtat, mintha a paraméter nincs meghatározva, például a

$ echo $NONSENSE melyik kéri az üres sort? Köszönet!

Válasz

ne “t” bármilyen hangot kiadni az Ubuntun:

talán azért, mert az adott terminálemulátor kerülje a hangokat, vagy azért, mert a pcspkr kernelmodul ki van töltve, stb … Használhat másik terminálemulátort (pl. a régi amelynek sípolnia kell.

Milyen “s $"\a" itt?

Olvassa el a Bash kézikönyv fejezetét a héjbővítésről . A neve ANSI-C idézet (ahogy South Parker megjegyezte).

Miért nyomtatja ki az echo az üres sort?

a echo parancs (további információ echo (1) …) gyakran bash shell beépített , így (minden div id = “ae4dad6ee9″>

) kinyomtatja kibővített argumentumait (itt a harang karakter), majd új sort. De a terminálemulátorod nem szólal meg a hallható csengőn (és a csengő karakter nem jelenik meg, mivel vezérlő karakter )

BTW, az Apple a hírek szerint nem szereti a GPLv3 + licencet, ezért frissítheti bash az Apple számítógéped legújabb verziójára (pl. 4.4 augusztus 2017-ben).

A demystified tty történeti megközelítésként olvashatja el a Unix terminál emulátoraihoz. Lásd még: pty (7) .

Megjegyzések

  • Ez ' intenzíven informatív, hatalmas köszönet! 🙂
  • $'...' isn ' t hívta a " idézeteltávolítást ", de a bash kézikönyvet nem ad nevet neki '. Az idézet ezen formáját legalább a ksh93 shell, de nem a pdksh által. Úgy gondolom, hogy ' ez a POSIX szintaxis kiterjesztése.
  • Kusalananda Azt hiszem, igazad van, a szintaxist ASCI-C-nek hívják: gnu.org/software/bash/manual/html_node/ANSI_002dC-Quoting.html
  • @SouthParker Ah, hogy ' s annak neve. Köszönöm, hogy segítesz emlékezni!

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük