Programmazione in bash - parte 2

Seconda parte Questo mini-tutorial programmazione in Bash, dove impariamo a usare Ciclos e altri strumenti che ci aiuteranno a migliorare le funzionalità del nostro script.

Il condizionale If

La funzione di If è applicare un filtro ed eseguire un'operazione o un'attività per ogni tipo di filtro applicato. La sua struttura è la seguente:

Se [condizione]; quindi comandi elif [condizione]; poi altri comandi; comandi fi

Un esempio è mostrato accanto al ciclo For nella rispettiva sezione.

Ciclos

1. While: eseguirà tutti i comandi specificati tra do e done fintanto che la condizione è vera. Se vogliamo passargli operatori di confronto, l'espressione deve essere tra parentesi.

mentre CONDITION / COMMAND esegue i comandi eseguiti

Esempio: tabella di moltiplicazione di un numero

#! / bin / bash X = 1 echo "Inserisci un numero e premi INVIO" leggi M # Il ciclo controlla che X sia minore o uguale a 10 mentre [$ X –le 10] do #In R memorizziamo la moltiplicazione di X per MR = $ [X * M] #Questa moltiplicazione è stampata sullo schermo echo "$ M * $ X = $ R" #Con let, aumentiamo il valore di X di 1 unità let X = $ X + 1 fatto

2. For: memorizza un elenco di elementi in una variabile, che verrà utilizzato per eseguire determinate operazioni con ogni ciclo.

per VARIABILE in ELEMENTI esegue i comandi

Esempio: programma che copia un file da una cartella all'altra, sostituendo un vecchio file.

# / bin / bash # Stabiliamo le directory di origine e di destinazione ORIGIN = / home / user / Downloads DESTINATION = / home / user / Documents # Ci posizioniamo nel cd di origine $ ORIGIN # Di tutti i file, vogliamo solo quello che è # chiama FILE per FILE in * do ARCH-DESTINATION = "$ DESTINATION / $ FILE" # -f ci filtra i file regolari, poiché le directory non sono #nulla di buono per noi. –Nt filtra # file "più recenti" di quelli # trovati nella cartella di destinazione se [-f $ FILE] && [$ FILE –nt $ ARCH-DESTINATION]; poi echo "Copia $ FILE ..." # copia il file con cp cp $ FILE $ ARCH-DESTINATION fi fatto #Cd per uscire dalla cartella sorgente cd

Un altro esempio: script in cui l'utente deve indovinare un numero casuale generato dal computer.

# / bin / bash # Viene generato un numero casuale da 1 a 10, viene # salvato in RANDOM RANDOM = $ [$ RANDOM% 10 + 1] mentre [1] do echo –n "Inserisci un numero:" leggi NUM # Confronta se il numero scelto dall'utente è #equal to RANDOM; ricordarsi di usare $ per valutare i #valori delle variabili e non i loro nomi se [“$ NUM –eq“ $ RANDOM ”]; poi fai eco "Hai capito bene!" #break permette di terminare il ciclo mentre break #Se il numero è minore di RANDOM elif [“$ NUM –gt“ $ RANDOM ”]; then echo "È minore" "In caso contrario, è maggiore di RANDOM else echo" È maggiore "fi done

3. Until: struttura abbastanza simile a While, tranne per il fatto che il codice viene sempre eseguito mentre la valutazione della condizione è negativa, ovvero il programma continua a essere eseguito "fino a quando non si verifica la condizione"

finché CONDITION / COMMAND non esegue i comandi

Esempio: stampa i numeri 10-20 in ordine decrescente

#! / bin / bash CONT = 20 # Fintanto che il contatore è minore di 10 (-lt, "inferiore #than") il codice viene eseguito fino a [$ CONT -lt 10]; do echo "COUNTER $ CONT" #A CONT viene sottratto da un'unità lasciando che CONT- = 1 sia fatto

4. Seleziona: questo ultimo ciclo è un caso speciale, poiché generalmente viene utilizzato per realizzare menu velocemente. Funziona in modo simile al ciclo For.

selezionare VARIABILE in LISTA dei comandi eseguiti

Esempio: dare all'utente la possibilità di continuare o terminare lo script.

#! / bin / bash #item è una variabile che risponde a ciò che #utente sceglie, Continua e Fine sono le # opzioni disponibili per lui, sebbene sia possibile aggiungere altre opzioni # altro seleziona l'elemento in Continua Fine fare #Se l'utente sceglie Termina il programma, poi con pausa usciamo dal ciclo. se [$ elemento = "Fine"]; quindi rompere fi fatto
Grazie Juan Carlos Ortiz!

Aggiungi come fonte preferita in Google