Cos'è bourne?

Bourne Shell (sh)

Il Bourne Shell, comunemente indicato come sh, è un interprete a riga di comando (shell) per sistemi operativi Unix. È stato scritto da Stephen Bourne presso i Bell Labs e rilasciato nel 1979. È stato ampiamente utilizzato come shell di login predefinita nei sistemi Unix finché non è stato sostituito da alternative più moderne e ricche di funzionalità, come il Bash.

Caratteristiche Importanti:

  • Sintassi: Il Bourne shell ha introdotto una sintassi che ha influenzato molti shell successivi. Questa sintassi includeva l'uso di $, "", ' ', e operatori di reindirizzamento (>, <).
  • Scripting: Permette la creazione di script automatizzati attraverso l'esecuzione sequenziale di comandi.
  • Controllo del flusso: Fornisce strutture di controllo del flusso come if, then, else, for, while e case.
  • Variabili: Supporta variabili di ambiente e variabili locali.
  • Redirezione I/O: Consente la redirezione dell'input e output tramite operatori come >, <, | (pipe), >>.
  • Sostituzione comandi: Permette di incorporare l'output di un comando all'interno di un altro comando tramite `...`.
  • Comandi incorporati (built-in): Offre una serie di comandi built-in per la gestione dei file, dei processi e dell'ambiente. Esempi sono cd, pwd, echo, exit.
  • Nessuna history: A differenza di shell più recenti, non memorizza la cronologia dei comandi precedentemente eseguiti.
  • Portabilità: Essendo uno standard, gli script scritti per il Bourne shell sono generalmente portabili tra diversi sistemi Unix e Unix-like.

Evoluzione e Alternative:

Nonostante la sua importanza storica, il Bourne shell è considerato obsoleto da molti utenti a causa della mancanza di funzionalità avanzate presenti in shell più recenti. Shell derivate dal Bourne shell, come il Korn shell (ksh), il Bourne-Again shell (bash) e lo Z shell (zsh), offrono una maggiore interattività, una migliore cronologia dei comandi, completamento automatico, e altre funzionalità. Molti sistemi moderni utilizzano Bash come shell predefinita pur mantenendo la compatibilità con gli script scritti per il Bourne shell attraverso un link simbolico (sh che punta a bash).