Luen kirjaa shell-ohjelmoinnista ja opin, että seuraavat komennot ovat vastaavia, jotka piippaavat Mac-tietokoneellani, mutta eivät anna ääntä Ubuntussa:
$ echo $"\a" $ echo -e "\a" $
kuitenkin molemmissa tapauksissa pääte pyytää tyhjää riviä. Kysymykseni ovat:
- Mitä ”s
$"\a"
täällä? Parametrilaajennus, komentojen korvaaminen tai jotain muuta? - miksi
echo
tulostaa tyhjän rivin ikään kuin parametria ei ole määritelty, kuten esimerkiksi
$ echo $NONSENSE
mikä kysyy tyhjää riviä? Kiitos!
Vastaa
älä t toista mitään ääntä Ubuntussa:
ehkä siksi, että tietty pääteemulaattori on määritetty Vältä ääniä tai koska pcspkr
-ydinmoduuli on purettu jne. … Voit käyttää toista pääteemulaattoria (esim. vanha xterm
) jonka pitäisi antaa äänimerkki.
Mitä ”s
$"\a"
täällä?
Lue Bash-käsikirjan luku kuoren laajentamisesta . Sitä kutsutaan nimellä ANSI-C-lainaus (kommentoi South Parker ).
Miksi kaiku tulostaa tyhjän rivin
komento echo
(lue lisää echo (1) …) on usein sisäänrakennettu bash-kuori (ilman -n
) se tulostaa laajennetut argumenttinsa (tässä kellomerkki) ja sen jälkeen uuden rivin. Mutta pääteemulaattorisi ei soi kuultavaa kelloa (ja kellomerkkiä ei näytetä, koska se on ohjainmerkki )
BTW, Apple huhutaan pitävän GPLv3 + -lisenssistä, joten voit päivittää bash
uusimpaan versioon (esim. 4.4 elokuussa 2017) Apple-tietokoneellasi.
Saatat lukea tty demystified historiallisena lähestymistapana. Unixin pääteemulaattoreihin. Katso myös pty (7) .
$'...'
isn ' t kutsui " lainauksen poisto ", muttabash
manuaalinen ei anna ' t sille nimeä. Tätä lainausmuotoa tukee myös ainakinksh93
-kuori, mutta eipdksh
. Uskon, että se ' on jatko POSIX-syntaksille.