Concetti Chiave
- La shell POSIX rappresenta standardizzazioni della shell Bourne, esistendo in diverse interpretazioni, tutte collegate a /bin/sh.
- Le shell possono operare in modalità interattiva, dove interagiscono con l'utente, o non interattiva, eseguendo script da file.
- Nella modalità interattiva, l'aspetto dell'invito è controllato dalla variabile di ambiente PS1 e il parametro $- indica il tipo di shell.
- Una shell interattiva può essere classificata come shell di login, distinguibile da un parametro zero che inizia con un trattino (-).
- Le shell di login utilizzano file di configurazione specifici, impostando l'ambiente in base al contesto di accesso dell'utente.
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.
Modalità di funzionamento della shell
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).
Interattività e configurazione della shell
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.
Domande da interrogazione
- Qual è la differenza principale tra una shell interattiva e una non interattiva?
- Cosa determina l'aspetto dell'invito nella shell interattiva?
- Che cos'è una "shell di login" e come si distingue da una shell interattiva normale?
La shell interattiva interagisce con l'utente mostrando un invito a inserire comandi, mentre la shell non interattiva esegue script senza richiedere input diretto dall'utente (come descritto nel testo).
L'aspetto dell'invito nella shell interattiva è determinato dalla variabile di ambiente PS1, mentre il parametro $- indica se la shell è interattiva (inclusa la lettera i) (come spiegato nel testo).
Una "shell di login" è una shell interattiva in cui il parametro zero inizia con un trattino (-), e viene utilizzata per determinare quali file di configurazione caricare, tipicamente presente dopo il completamento della procedura di accesso (come indicato nel testo).