Script: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
m Bot: spazio dopo segni di punteggiatura |
Nessun oggetto della modifica Etichette: Modifica da mobile Modifica da web per mobile |
||
(28 versioni intermedie di 19 utenti non mostrate) | |||
Riga 1:
{{nota disambigua}}
Il termine '''script''', in [[informatica]], designa un tipo particolare di [[programma (informatica)|programma]], scritto in una particolare classe di [[linguaggio di programmazione|linguaggi di programmazione]], detti [[linguaggio di scripting|linguaggi di scripting]]. Una classe specifica di tali programmi sono i cosiddetti ''[[shell script]]
▲Il termine '''script''', in [[informatica]], designa un tipo particolare di [[programma (informatica)|programma]], scritto in una particolare classe di [[linguaggio di programmazione|linguaggi di programmazione]], detti [[linguaggio di scripting|linguaggi di scripting]]. Una classe specifica di tali programmi sono i cosiddetti ''[[shell script]]<nowiki/>'', ossia script concepiti per essere [[esecuzione (informatica)|eseguiti]] all'interno di una [[shell (informatica)|shell]] di un [[sistema operativo]]
== Descrizione ==
Line 14 ⟶ 13:
===Script di shell===
Lo ''script di shell'' identifica uno script per una [[Shell (informatica)|shell]] testuale di un [[sistema operativo]], ovvero l'[[interfaccia a riga di comando]], il cui linguaggio è considerato un semplice [[linguaggio di programmazione]] per un determinato dominio. Uno script di questo genere esegue tipicamente operazioni legate all'[[Amministratore di sistema|amministrazione di sistema]] come la manipolazione di file (p. es. rinomine, copie o spostamenti), l'esecuzione di altri programmi, la stampa e la manipolazione di testo. Il vantaggio principale, nonché più diffusamente sfruttato, rispetto all'interazione diretta con la shell digitando un comando dopo l'altro, è l'automazione, cioè la possibilità di definire, una volta per tutte attraverso lo script, una serie di operazioni particolarmente simili o caratterizzabili in maniera sofisticata. In tal modo, la scrittura di uno script libera infatti l'autore, nell'ordine, dalla noia della
Sebbene molti [[Interprete (informatica)|interpreti]] dei linguaggi di shell siano dotati di interfaccia a riga di comando, come le varie shell dei sistemi [[Unix-like]] (p.es. [[Bash]], [[C shell]], [[Zsh]], [[Debian Almquist shell|Debian Almquist]]), o di quelli [[Windows]] ([[Windows PowerShell|PowerShell]], [[cmd.exe]] o [[command.com]]), diversi altri linguaggi, come [[AppleScript]] o [[Windows Script Host]] (WScript.exe), ne sono invece sprovvisti. Altri notevoli esempi di linguaggi di shell destinati principalmente alla scrittura di script sono il [[DIGITAL Command Language|DCL]] (''Digital Command Language'') dei sistemi [[Digital Equipment Corporation|DEC]] o il [[Job Control Language|JCL]] (''Job Control Language'') dei sistemi [[IBM]].
Line 37 ⟶ 36:
Un esempio potrebbe essere quello di creare una nuova versione di [[ls (Unix)|ls]], il comando per elencare i file (dandogli un nome di comando più breve di <code>l</code>), i quali normalmente vengono salvati in una directory <code>bin</code> dell'utente come ad esempio:<code>/ home / nomeutente / bin / l</code>, e un insieme pre-fornito e predefinito di opzioni di comando.
<
#!/bin/sh
LC_COLLATE=C ls -FCas "$@"
</
Qui, [[Shabang|la prima linea (Shebang)]] indica quale interprete deve essere usato per eseguire il resto dello script, la seconda riga fa una lista con le opzioni per gli indicatori di [[formato di file]], colonne, tutti i file (nessuno omesso) e la dimensione in blocchi. <code>LC_COLLATE=C</code> imposta in modo predefinito l'ordine delle regole di confronto tra lettere maiuscole e minuscole, e <code>"$@"</code> che provoca eventuali parametri dati a <code>l</code> vengano passati come parametri di ls, in modo che tutte le normali opzioni e la sintassi nota a ls possa essere ancora utilizzata.
L'utente deve quindi essere in grado di usare semplicemente <code>l</code> per le liste più brevi comunemente utilizzate.
Line 50 ⟶ 49:
Gli script di shell permettono numerosi comandi i quali devono essere inseriti manualmente in una interfaccia a riga di comando da eseguire automaticamente, e senza che l'utente debba attendere per attivare ogni fase della sequenza. Ad esempio, in una directory con tre file di codice sorgente C, invece dell'esecuzione manuale dei quattro comandi necessari per costruire il programma definitivo, si potrebbe creare invece una [[C shell]] script, denominata costruita e conservata nella directory assieme a questi ultimi, la quale li compila in modo automatico:
<
#!/bin/csh
echo compiling...
Line 58 ⟶ 57:
cc -o myprog foo.o bar.o qux.o
echo done.
</syntaxhighlight>
Lo script dovrebbe consentire a un utente di salvare il file in corso di modifica, mettere in pausa l'editor, eseguirlo attraverso il comando <code>. / build</code> per creare il programma aggiornato, testarlo, e poi tornare all'editor. Dal 1980, comunque, gli script di questo tipo sono stati sostituiti con i programmi di utilità come [[make]], che sono specializzati per programmi di "costruzione". Quando digitiamo un comando (che chiameremo job per distinguerlo dai processi) e premiamo il tasto "invio", questi viene eseguito ma, come abbiamo pilotato l'input e l'output, possiamo controllarne anche l'esecuzione. Alcuni comandi sono complessi e se avviati, impedirebbero l'uso della shell fino al loro completamento. È possibile quindi avviare il comando in [[Esecuzione in background|background]] ed avere nuovamente la shell libera per altri utilizzi; si può richiamare il comando in foreground oppure sospenderlo o annullarlo. Per eseguire il comando in background è sufficiente inserire alla fine dello stesso il carattere “&”. Se volessimo stampare il file prova.txt in background basterebbe dare il comando [[lpr]] prova.txt &. Il sistema operativo assegna un numero univoco al job e lo avvia contrassegnandolo con un segno “+” (job attivo).
Line 68 ⟶ 67:
Processi batch semplici non sono insoliti per le attività isolate, ma l'uso di cicli di shell, test, e delle variabili offre molta più flessibilità agli utenti. Una [[bash]] (shell Bourne-Again script) converte le immagini [[JPEG]] in [[Portable Network Graphics|PNG]], fornendo i nomi di immagine sulla riga di comando - eventualmente attraverso caratteri jolly - invece di essere elencati all'interno dello script, dove è possibile creare questo file, in genere salvato come <code>/home /''nomeutente''/bin/jpg2png</code>
<
#!/bin/bash
for jpg in "$@" ; do # use $jpg in place of each filename given, in turn
Line 82 ⟶ 81:
echo all conversions successful # tell the user the good news
</syntaxhighlight>
Il jpg2png comando può quindi essere eseguito su una intera directory piena di immagini JPEG con appena <code>jpg2png *.jpg</code>
Line 115 ⟶ 114:
* [[Bash]]
* [[AppleScript]]
* [[File batch|Batch]] (Linguaggio di scripting usato da [[MS-DOS]])
* [[ActionScript]]
* [[JavaScript]] (Linguaggio di scripting, utilizzabile da [[C++]])
Line 129 ⟶ 128:
==Voci correlate==
* [[Linguaggio di programmazione]]
* [[Linguaggio di scripting]]
* [[Shell (informatica)]]
* [[Windows PowerShell]]
* [[Windows Script Host]]
* [[Crontab]]
== Altri progetti ==
{{Interprogetto|
==Collegamenti esterni==
* {{Collegamenti esterni}}
* {{FOLDOC|script|script}}
* {{cita web|http://www.faqs.org/docs/air/tsshell.html|''An Introduction To Shell Programming'' by Greg Goebel}}
* {{cita web|http://steve-parker.org/sh/sh.shtml|''UNIX / Linux shell scripting tutorial'' by Steve Parker}}
* {{cita web|
* {{cita web |
* {{cita web|http://freebookcentre.net/UnixCategory/Free-Unix-Shell-Programming-Books-Download.html|Free Unix Shell scripting books}}
* {{cita web | 1 = http://www.caspur.it/~lanucara/lanucara_files/scripting.pdf | 2 = Linguaggi di scripting | accesso = 29 aprile 2011 | dataarchivio = 12 agosto 2011 | urlarchivio = https://web.archive.org/web/20110812185116/http://www.caspur.it/~lanucara/lanucara_files/scripting.pdf | urlmorto = sì }}
{{Portale|informatica}}
[[Categoria:
|