Concetti Chiave
- La shell POSIX è una standardizzazione della shell Bourne, con diverse interpretazioni come Bash, che si adeguano agli standard.
- L'eseguibile /bin/sh funge da collegamento simbolico alla shell effettiva, eseguendo script anche senza permessi di esecuzione espliciti.
- La shell può operare in modalità interattiva, mostrando un prompt per l'inserimento di comandi, o in modalità non interattiva per l'esecuzione di script.
- La modalità interattiva è influenzata dalla variabile PS1 per l'aspetto del prompt e dal parametro $- che include la lettera i.
- Una shell interattiva può essere una «shell di login», determinando quali file di configurazione vengono utilizzati, riconoscibile dal parametro zero che inizia con un trattino.
La shell POSIX
La shell POSIX è in pratica la shell Bourne standardizzata. Non esiste una sola shell POSIX, ma tante interpretazioni diverse, più o meno derivate da quella di Bourne.Il primo elemento comune di queste shell è il programma eseguibile che le rappresenta: /bin/sh. In pratica, si tratta normalmente di un collegamento simbolico alla shell effettiva che ricopre quel ruolo. In particolare, ci sono shell come Bash che si adeguano agli standard quando sono avviate con quel nome.
Si distinguono fondamentalmente due tipi di modalità di funzionamento: interattiva e non interattiva. Quando l'eseguibile sh viene avviato con l'indicazione del nome di un file, questo tenta di eseguirlo come uno script (in tal caso non conta che il file abbia i permessi di esecuzione e nemmeno che contenga la dichiarazione iniziale #!/bin/sh). Gli eventuali argomenti che possono seguire il nome del file, vengono passati allo script in forma di parametri (come viene descritto più avanti).
La shell è interattiva quando interagisce con l'utente e di conseguenza mostra un invito a inserire dei comandi. L'eseguibile sh può essere avviato eventualmente in modo esplicitamente interattivo utilizzando l'opzione -i.
Quando la shell funziona in modo interattivo, la variabile di ambiente PS1 determina l'aspetto dell'invito, mentre il parametro $- contiene anche la lettera i (i concetti relativi a variabili e parametri vengono chiariti in seguito).
Una shell interattiva può a sua volta essere una «shell di login» o meno. La distinzione serve alla shell per determinare quali file di configurazione utilizzare. Una shell di login è quella in cui il parametro zero, contiene un trattino (-) come primo carattere (di solito contiene esattamente il valore -sh). In pratica è, o dovrebbe essere, quello che si ha di fronte quando è stata completata la procedura di accesso.