#!/bin/bash
# int-or-string.sh : Entier ou chaîne de caractères ?

a=2334                   # Un entier.
let "a += 1"
echo "a = $a "           # a = 2335
echo                     # Toujours un entier.


b=${a/23/BB}             # Remplace "23" par "BB".
                         # Transforme ainsi $b en une chaîne de caractères.
echo "b = $b"            # b = BB35
declare -i b             # Le déclarer comme entier n'aide pas.
echo "b = $b"            # b = BB35

let "b += 1"             # BB35 + 1 =
echo "b = $b"            # b = 1
echo

c=BB34
echo "c = $c"            # c = BB34
d=${c/BB/23}             # Remplace "BB" par "23".
                         # Cela fait de $d un entier.
echo "d = $d"            # d = 2334
let "d += 1"             # 2334 + 1 =
echo "d = $d"            # d = 2335
echo

# Et les variables nulles ?
e=""
echo "e = $e"            # e =
let "e += 1"             # Les opérations arithmétiques sont-elles permises sur
                         # une variable nulle ?
echo "e = $e"            # e = 1
echo                     # Variable nulle transformée en entier.

# Et les variables non déclarées ?
echo "f = $f"            # f =
let "f += 1"             # Opérations arithmétiques permises ?
echo "f = $f"            # f = 1
echo                     # Variable non déclarée transformée en entier.



# Les variables dans Bash sont essentiellement non typées.

exit 0
