allora per quanto riguarda il funzionamento dei test a me funge benissimo:
codice:
lasher@darkstar:~$ cat cacchiata
#!/bin/bash
if [ "$1" = "1" ]; then
echo "parte prima"
elif [ "$1" = "2" ]; then
echo "parte seconda"
elif [ "$1" = "3" ]; then
echo "parte terza"
else echo "non contemplato"
fi
lasher@darkstar:~$ ./cacchiata 1
parte prima
lasher@darkstar:~$ ./cacchiata 2
parte seconda
lasher@darkstar:~$ ./cacchiata 3
parte terza
lasher@darkstar:~$ ./cacchiata 4
non contemplato
ed è identico al tuo sistema di if nidificato.
Poi la Bash riconosce i valori dei parametri. Come hai visto ho messo dopo il nome dello script un valore che viene processato con la variabile $1
Spero di esserti d'aiuto
Ciauz