PowerShell: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
m sistemo... |
mNessun oggetto della modifica |
||
Riga 61:
La versione 6 è stata pubblicata il 2 agosto 2016 e, rende il software opensource sotto licenza GNU GPLv3 e lo rende disponibile anche per Linux e Mac OS. Il nome viene infatti cambiato eliminando Windows dal vecchio nome e lasciando solo PowerShell.
==
=== Principi ===
Il nome in codice di PowerShell, ''Monad'', proviene dalla [[monadologia]] di [[Gottfried Leibniz]], una filosofia in cui l'universo è composto da elementi fondamentali, le ''[[monadi]]'', disposti in una "[[armonia prestabilita]]". In maniera simile, PowerShell è la combinazione di compiti complessi e di una serie di componenti, le ''cmdlets'' (''command lets'', serie di comandi), che sono classi .NET progettate per sfruttare le caratteristiche dell'ambiente. La differenza fondamentale tra l'approccio Unix e quello di PowerShell risiede nel fatto che piuttosto che creare una "pipeline" (lett. ''tubo'') basata su input ed output testuali, PowerShell fa passare i dati da una cmdlet all'altra come ''oggetti'' (dati dotati di una struttura ben precisa).
Line 67 ⟶ 68:
L'output di una cmdlet, se si tenta di accedervi tramite riga di comando, viene automaticamente convertito in testo; se, invece, si tenta di utilizzarlo in un'altra cmdlet, esso verrà convertito nell'oggetto più appropriato per l'input di quell'altra cmdlet. In questo modo, varie utility comunemente utilizzate nelle pipelines Unix, quali [[grep]] ed [[awk]], non sono più necessarie, e si permette una combinazione interattiva o in un ambiente di scripting dei singoli elementi, cosa che avrebbe, diversamente, richiesto un [[linguaggio di programmazione]] più complesso. Per esempio, una lista dei processi in esecuzione non sarà costituita dal testo che li descrive, ma dagli oggetti che la compongono, sicché è possibile invocare metodi su questi oggetti senza far esplicito riferimento ad alcuna struttura o [[Libreria (software)|libreria]].
=== Caratteristiche ===
* Linguaggio di scripting simile al [[C Sharp|C#]], con molte funzionalità dedicate agli utenti esperti, come il supporto diretto alle [[hash table]], i costrutti switch basati su espressioni regolari, la scomposizione degli [[array]], la possibilità di memorizzare come dati [[metodo anonimo|metodi anonimi]] da eseguire in un secondo momento. Sono presenti, naturalmente, tutte le caratteristiche che ci si aspetta di trovare in un linguaggio di scripting, quali l'[[iterazione]] (for/foreach/while), i costrutti condizionali (if/switch), i campi di visibilità delle variabili (global/script/local/private) e la possibilità di definire funzioni.
|