GNU/Linux >> Linux Esercitazione >  >> Linux

Meccanismo del carattere della campana '\a'?

Sto leggendo un libro sulla programmazione della shell e sto imparando che i seguenti comandi sono equivalenti, che emettono un segnale acustico sul mio Mac ma non emettono alcun suono su Ubuntu:

$ echo $'\a'

$ echo -e "\a"

$

tuttavia in entrambi i casi, il terminale richiede una riga vuota. Le mie domande sono:

  1. Cos'è $'\a' qui? Espansione dei parametri, sostituzione dei comandi o qualcos'altro?
  2. Perché echo stampa una riga vuota come se il parametro non fosse definito, come ad esempio nel caso di

$ echo $NONSENSE che richiede una riga vuota? Grazie!

Risposta accettata:

non emettere alcun suono su Ubuntu:

forse perché il tuo particolare emulatore di terminale è configurato per evitare suoni, o perché il pcspkr il modulo del kernel è stato scaricato, ecc... Potresti usare un altro emulatore di terminale (ad esempio il vecchio xterm ) che dovrebbe emettere un segnale acustico.

Cos'è $'\a' qui?

Leggi il capitolo sull'espansione della shell del manuale di Bash. Si chiama citazione ANSI-C (come commentato da South Parker).

Perché echo stampa una riga vuota

l'echo comando (leggi di più echo(1)…) è spesso una shell bash incorporata quindi (senza alcun -n ) stampa i suoi argomenti espansi (qui il carattere campanello) seguiti da una nuova riga. Ma il tuo emulatore di terminale non suona la campana udibile (e il carattere della campana non visualizzato, poiché è un carattere di controllo)

A proposito, si dice che Apple non apprezzi la licenza GPLv3+, quindi potresti aggiornare il tuo bash a una versione recente (ad es. 4.4 ad agosto 2017) sul tuo computer Apple.

Potresti leggere il tty demistificato per un approccio storico agli emulatori di terminale su Unix. Vedi anche pty(7).


Linux
  1. Bashscript funziona da Terminal ma non da Crontab?

  2. Cosa fa Eco $? Fare??

  3. Nascondere l'input dell'utente sul terminale nello script Linux

  4. echo il carattere di nuova riga non funziona in bash

  5. Impossibile digitare caratteri speciali o dieresi nel terminale

Perché uso rxvt come terminale

Parti per un'avventura nel tuo terminale Linux

16 Esempi di comandi Echo in Linux

Come utilizzare Instagram nel terminale

Cercapersone terminali

Terminale di compensazione