Il mio primo script

Rispondi
Avatar utente
maxlinux2000
Amministratore
Messaggi: 7406
Iscritto il: 22 mar 2011, 11:50

Il mio primo script

Messaggio da maxlinux2000 » 25 ago 2013, 18:11

...spesso e volentieri avremmo bisogno di creare uno script per automatizzare qualche cosa, come per esempiolo scaricamento di un sito,o di una lista di files, oppure elaborare una serie di dati per ottenere un risultato.

inizio qui una serie di piccole lezioni o meglio "ricette" per imparare i rudimenti della programmazione in Bash.

Innanzitutto Bash significa "Born Again SHell". Praticamente si tratta di una copia libera della primissima Shell unix di proprietà della americana AT&T di cui si erano conservati i diritti.
Per maggiori info cercate su google "Storia di Unix"

La shell (chiamata impropiamente anche Terminale o Console) è un ambiente di sviluppo ove possiamo dare direttamente comandi, come per esempio formattare un HD, oppure creare script usando i comandi interni o esterni alla shell.

cominciamo com il primissimo e classico esempio di tutti i linguaggi di programmazione:




Codice: Seleziona tutto

$ touch Ciao.Mondo.sh
$ mcedit Ciao.Mondo.sh


"touch" significa "tocca", e viene anche usato per creare un file vuoto. In questo caso crea il file Ciao.Mondo.sh
.sh lo aggiungo per capire che si tratta di uno script di shell

"mcedit" è l' editor di testo di "mc". Per chi non lo conoscesse cercate la discussione di Midnigth Commander
Quindi "mcedit Ciao.Mondo.sh" apre il file vuoto che abbiamo appena creato con "touch"

Scriviamo dentro al file, il seguente codice

Codice: Seleziona tutto

#!/bin/bash

clear
echo Ciao Mondo!


Come vedete si tratta di un linguaggio molto semplice. La prima linea rimane sempre inalterata (nei sistemi Linux) diciamo che serve allo script per sapere dove si trova la shell ovvero dentro la directory /bin

"clear" serve per pulire lo schermo
"echo" è equivalente a "PRINT" del basic e serve per mostrare a video i messaggi.

A questo punto lo script è pronto, ma non funziona ancora per via della mancanza del permesso di esecuzione.

Rimediamo con il seguente comando:

Codice: Seleziona tutto

$ chmod 750 Ciao.Mondo.sh


"chmod" è il comando per cambiare i permessi. I permessi in tutti gli Unix, sono divisi in:
Utente,Gruppo,Altri
7= tutti i permessi compreso esecuzione
5=esecuzione ma senza modifica
0=nessun accesso.
Messi nella sequenza 750, significa: Tutti i permessi per l' utente propietario, Esecuzione per il gruppo, Nessun accesso per gli altri.

Più in la approfondiremo i concetti di permessi di unix.

con "chmod 750", lo script è pronto,ora possiamo lanciarlo con:


Codice: Seleziona tutto

$ ./Ciao.Mondo.sh


il ./ serve per dire al sistema, che lo script si trova nella attuale directory e non dentro al $PATH. (più in la affronteremo anche questo argomento se necessario)

e otterremo:

Codice: Seleziona tutto

Ciao Mondo!
Cogito, ergo NO SUV !!

Avatar utente
titone78
Messaggi: 1534
Iscritto il: 1 mag 2013, 14:01
Località: Ferrara
Contatta:

Re: Il mio primo script

Messaggio da titone78 » 25 ago 2013, 20:25

ciao max,ottima guida,perfetta per incominciare a capirci qualcosa.........unica cosa il comando chmod,e il comando per lanciarlo bisogna darli al file creato,cioe:

"ciao.mondo.sh",e non "hello".......
Specifico che ogni cosa da me mostrata e costruita e solo per scopo privato e non a scopo di lucro,non mi prendo responsabilità se qualcuno replica le mie costruzioni

Avatar utente
maxlinux2000
Amministratore
Messaggi: 7406
Iscritto il: 22 mar 2011, 11:50

Re: Il mio primo script

Messaggio da maxlinux2000 » 25 ago 2013, 20:47

opss! :D correggo
Cogito, ergo NO SUV !!

Avatar utente
Ferrobattuto
Moderatore
Messaggi: 8466
Iscritto il: 23 mar 2011, 13:56
Località: Basso Lazio.

Re: Il mio primo script

Messaggio da Ferrobattuto » 25 ago 2013, 21:01

Mi sono già persooooooooo............ Non funziona nienteeeeeee........ : Cry :
Inviato manualmente dal mio vecchio e sgangherato, ma fedele computer

Buone realizzazioni a tutti!
Ferrobattuto

Avatar utente
maxlinux2000
Amministratore
Messaggi: 7406
Iscritto il: 22 mar 2011, 11:50

Re: Il mio primo script

Messaggio da maxlinux2000 » 25 ago 2013, 22:57

ripeti tutto da capo, e postami gli errori
Cogito, ergo NO SUV !!

Avatar utente
jpquattro
Moderatore
Messaggi: 1339
Iscritto il: 26 gen 2015, 20:50

Re: Il mio primo script

Messaggio da jpquattro » 3 ott 2021, 9:16

Ciao Max.
Posso criticare un poco?
Ma il nome... con due (2!) punti nel mezzo? Magari funziona, ma appartiene alle cose che "non è saggio" fare.
Il punto, nel nome di un file (In Linux Unix ma se ricordo bene anche in windows) separa il nome vero e proprio "ciao mondo" dal suffisso, in questo caso sh.
Il suffisso specifica "a cosa serve il file" e quali programmi verranno usati per manipolarlo.
Nel caso specifico non crea problemi, ma c'è da giurarci prima o poi capita l'applicazione che fa Kasino.
Quindi nel nome di un file di solito non si mettono caratteri speciali, virgole doppi apici ecc ecc, ma solo il - o il _ oltre ai caratteri alfabetici (non è saggio neanche mettere le accentate per motivi analoghi).
Ovviamente queste cose tu le sai, ma molti degli altri no...

A questo proposito perché usare mcedit? vi sarebbe stato più adeguato, vi esiste sicuramente in tutte le distribuzioni, mcedit non lo so...

Paolo, il KritiKone

Avatar utente
maxlinux2000
Amministratore
Messaggi: 7406
Iscritto il: 22 mar 2011, 11:50

Re: Il mio primo script

Messaggio da maxlinux2000 » 4 ott 2021, 12:25

ciao,

chiaramente puoi fare tutte le critiche che vuoi, ci sono un sacco di stili di scrittura anche dentro allo stesso linguaggio, e ognuno fa quello che preferisce, anche se le scuole tentano di uniformare tutto, con riwsultati fallimentari.. come le scuole stesse oramai.

mcedit anche lui fa parte del mio stile.... infatti so usare "vi" e "vim" ma lo odio.
CMQ "mcedit" fa parte di "mc" (MidnightCommander) ed è un classico di linux, anche se spesso si usa solo come gestore di files.

ciao
MaX
Cogito, ergo NO SUV !!

Rispondi

Torna a “Linux, altri sistemi operativi, e programmi.”

Chi c’è in linea

Visitano il forum: Nessuno e 13 ospiti