#!/bin/bash
# escaped.sh: caractères d'échappement

echo; echo

# Échapper un retour à la ligne.
# ------------------------------

echo ""

echo "Ceci s'affichera
sur deux lignes."
# Ceci s'affichera
# sur deux lignes.

echo "Ceci s'affichera \
sur une seul ligne."
# Ceci s'affichera sur une seule ligne.

echo; echo

echo "============="


echo "\v\v\v\v"      # Affiche \v\v\v\v litérallement.
# Utilisez l'option -e avec 'echo' pour afficher les caractères d'échappement.
echo "======================"
echo "TABULATIONS VERTICALES"
echo -e "\v\v\v\v"   # Affiche 4 tabulations verticales.
echo "======================="

echo "GUILLEMET DOUBLE"
echo -e "\042"       # Affiche " (guillemet, caractère octal ASCII 42).
echo "======================="

# La construction $'\X' rend l'option -e inutile.
echo; echo "RETOUR CHARIOT ET SON"
echo $'\n'           # Retour chariot.
echo $'\a'           # Alerte (son).

echo "======================="
echo "GUILLEMETS"
#  Les version 2 et ultérieures de Bash permettent l'utilisation de la
#+ construction $'\nnn'.
# Notez que, dans ce cas, '\nnn' est une valeur octale.
echo $'\t \042 \t'   # Guillemet (") entouré par des tabulations.

#  Cela fonctionne aussi avec des valeurs hexadécimales, dans une
#+ expression de type $'\xhhh'.
echo $'\t \x22 \t'  # Guillemet (") entouré par des tabulations.
# Merci, Greg Keraunen, de nous l'avoir indiqué.
# Les versions précédentes de Bash permettent '\x022'.
echo "======================="
echo


# Affecter des caractères ASCII à une variable.
# ----------------------------------------------
guillemet=$'\042'        # " affecté à une variable.
echo "$guillemet Ceci est un chaîne de caractères mise entre "\
"guillemets $guillemet, et ceci reste en dehors des guillemets."

echo

# Accoler des caractères ASCII dans une variable.
trois_soulignes=$'\137\137\137'  # 137 est le code octal ASCII pour '_'.
echo "$trois_soulignes SOULIGNE $trois_soulignes"

echo

ABC=$'\101\102\103\010'  # 101, 102, 103 sont les codes octaux de A, B, C.
echo $ABC

echo; echo

echappe=$'\033'                    # 033 est le code octal pour l'échappement.
echo "\"echappe\" s'affiche comme $echappe"
#                                   pas de sortie visible.

echo; echo

exit 0
