#!/bin/bash
# escaped.sh: sequenze di escape

echo; echo

echo "\v\v\v\v"      # Visualizza letteralmente: \v\v\v\v .
#  Utilizzate l'opzione  -e  con 'echo' per un corretto impiego delle
#+ sequenze di escape.
echo "============="
echo "TABULAZIONE VERTICALE"
echo -e "\v\v\v\v"   # Esegue 4 tabulazioni verticali.
echo "=============="

echo "VIRGOLETTE"
echo -e "\042"       #  Visualizza " (42 è il valore ottale del 

echo "=============="
# Il costrutto $'\X'  rende l'opzione -e superflua.
echo; echo "A_CAPO E BEEP"
echo $'\n'           # A capo.
echo $'\a'           # Allerta (beep).

echo "==============="
echo "VIRGOLETTE"
# La versione 2 e successive di Bash consente l'utilizzo del costrutto $'\nnn'.
# Notate che in questo caso, '\nnn' è un valore ottale.
echo $'\t \042 \t'   # Virgolette (") tra due tabulazioni.

# Può essere utilizzato anche con valori esadecimali nella forma $'\xhhh'.
echo $'\t \x22 \t'   # Virgolette (") tra due tabulazioni.
# Grazie a Greg Keraunen per la precisazione.
# Versioni precedenti di Bash consentivano '\x022'.
echo "==============="
echo


# Assegnare caratteri ASCII ad una variabile.
# ------------------------------------------
virgolette=$'\042'   # " assegnate alla variabile.
echo "$virgolette Questa è una stringa tra virgolette $virgolette, \
mentre questa parte è al di fuori delle virgolette."

echo

# Concatenare caratteri ASCII in una variabile.

 tripla_sottolineatura=$'\137\137\137'  
# 137 è il valore ottale del carattere ASCII  '_'.
echo "$tripla_sottolineatura SOTTOLINEA  $tripla_sottolineatura"

echo

ABC=$'\101\102\103\010'                
# 101, 102, 103 sono i valori ottali di A, B, C.

echo $ABC

 echo; echo
 escape=$'\033'                         

 # 033 è il valore ottale del carattere di escape.

echo "\"escape\" visualizzato come $escape"
 # nessun output visibile.
 
echo; echo

exit 0
