GNU/Linux >> Tutoriels Linux >  >> Linux

Mécanisme du caractère de cloche '\a' ?

Je lis un livre sur la programmation shell et j'apprends que les commandes suivantes sont équivalentes, qui émettent un bip sur mon Mac mais n'émettent aucun son sur Ubuntu :

$ echo $'\a'

$ echo -e "\a"

$

cependant, dans les deux cas, le terminal affiche une ligne vide. Mes questions sont :

  1. Qu'est-ce que $'\a' ici? Extension de paramètre, substitution de commande ou autre chose ?
  2. Pourquoi echo imprime une ligne vide comme si le paramètre n'était pas défini, comme par exemple, dans le cas de

$ echo $NONSENSE qui invite ligne vide? Merci !

Réponse acceptée :

ne faites aucun son sur Ubuntu :

peut-être parce que votre émulateur de terminal particulier est configuré pour éviter les sons, ou parce que le pcspkr le module du noyau est déchargé, etc… Vous pouvez utiliser un autre émulateur de terminal (par exemple, l'ancien xterm ) qui devrait émettre un bip.

Qu'est-ce que $'\a' ici ?

Lisez le chapitre sur l'expansion du shell du manuel de Bash. C'est ce qu'on appelle la citation ANSI-C (comme commenté par South Parker).

Pourquoi echo affiche une ligne vide

l'echo command (en savoir plus echo(1)…) est souvent un shell bash intégré donc (sans aucun -n ) il imprime ses arguments développés (ici le caractère cloche) suivis d'une nouvelle ligne. Mais votre émulateur de terminal ne sonne pas la cloche audible (et le caractère de la cloche n'est pas affiché, puisqu'il s'agit d'un caractère de contrôle)

BTW, la rumeur dit qu'Apple n'aime pas la licence GPLv3 +, vous pouvez donc mettre à niveau votre bash vers une version récente (par exemple 4.4 en août 2017) sur votre ordinateur Apple.

Vous pouvez lire le tty démystifié pour une approche historique des émulateurs de terminaux sous Unix. Voir aussi pty(7).


Linux
  1. Partez à l'aventure dans votre terminal Linux

  2. Bashscript fonctionne depuis Terminal mais pas depuis Crontab ?

  3. Qu'est-ce que Echo $ ? Faire??

  4. Masquer l'entrée utilisateur sur le terminal dans le script Linux

  5. Impossible de taper un caractère spécial ou un tréma dans le terminal

Pourquoi j'utilise rxvt comme terminal

16 exemples de commandes Echo sous Linux

Comment utiliser Instagram dans le terminal

Téléavertisseurs de terminaux

Borne de dédouanement

Coloration globale du terminal par Regex