0% found this document useful (0 votes)
4 views

Bash Scripting Introduction

Basic bash scripting, with description in italian/english

Uploaded by

nicoroma03
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
4 views

Bash Scripting Introduction

Basic bash scripting, with description in italian/english

Uploaded by

nicoroma03
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 5

1.

0 Appunti
Inizializzare uno script Bash
1. Come prima cosa creare un file che abbia l’estenzione .sh
2. Poi aggiungere le seguenti righe all’interno del file:

#!/bin/bash
# ...
echo "Hello world"

1. Per avviare lo script effettuare il comando bash namefile.sh (http://namefile.sh)

Dichiarare variabili
In uno script è possibile salvare dei valori uttilizzando delle variabili nella maniera seguente:

i=4
x="Hello world"
echo $x
l=(A B C D)
echo ${l[0]}${l[2]}

Variabili “predefinite”
Parametri posizionali passati allo script:
La variabile $0 corrisponde al nome dello script
Le variabili $1…$n sono gli altri parametri
Numero dei parametri: $#
Tutti i parametri: $@
La variabile $! contiene il PID dell’ultimo processo mandato in background
La variabile $? corrisponde al valore di ritorno dell’ultimo comando eseguito

Utilizzo del comando shift


Un esempio per utilizzare sto dito in culo di merda è il seguente:

while (( "$#" )); do


echo "Argomento corrente: $1"
shift
done
# ogni volta va a spostare l'elemento ad ogni iterazione, una tumorata insomma

Leggere l’input di un utente


Utilizzando il comando bellissimo read sarà possibile leggere l’input dell’utente e memorizzarlo
all’interno di una variabile:

read nome
echo "Ciao $nome!"
read -p "Come ti chiami?" nome # il parametro p permette di usare un messaggio
echo "Ciao $nome!"
read -s -p "Password?" segreto # il parametro s non viene mostrato a schermo
echo "Conosco il tuo $segreto"

Catturare l’output di un comando


Utilizzando $() oppure ```` posso catturare l'output di un comando:

uscita=$(ls | grep A)
echo $uscita
# ...
uscita=`ls`

Espressioni aritmetiche
Essendo che, chi ha creato bash aveva la mamma battona, le espressioni aritmetiche in bash non
hanno senso di esistere, e vengono svolte nel seguente modo:

il comando expr
la forma $(()) ($ viene omesso nelle condizioni if, while, until)
l’espressione let

i=4
j=`expr $i '*' 2`
j=`expr $j + 1`
j=$(( j + 3 ))
let j=j+1

Condizione If… then… else


Per effettuare questa condizione bisogna scriverla nel seguente modo:

if condizione; then
# ...
elif condizione2; then
# ...
else
# ...
fi

Confronti tra valori numeri o stringhe


Per fare i confronti basta utilizzare il comando test , abbreviato anche a [] es. [ $x -eq $y ]

Ecco le possibilità che si possono avere:

-n op Controlla se la stringa op contiene qualcosa


-z op Controlla se la stringa op è vuota
-d op Esiste una directory op
-e op Esiste il file/directory op
a -eq b a e b sono numeri interi e sono uguali
a -ne b Opposto di -eq
a = b a è uguale a b (come stringa)
a != b Opposto di =
a -lt b a < b (a, b numeri interi)
a -gt b a > b (a, b numeri interi)
a -le b a <= b (a, b numeri interi)
a -ge b a >= b (a,b numeri interi)
a -a b AND logico
a -o b OR logico
! a NOT logico

test "Ciao" = "Ciao"


echo $?
0
Inserire più condizionali
Per inserire più di una condizione all’interno della nostra istruzione if utilizzare:

if [ $# -gt 3 ] && [ "$1" = "A" ]; then


# ...

Creazione di funzioni
Come sappiamo esistono due tipologie di funzioni: quelle che ritornano un valore e quelle che invece
non lo ritornano. In bash non c’è questa distinzione e vengono dichiarate nello stesso modo:

function nome() { # è possibile tralasciare function oppure () ma mai entrambi


...
}
...
function saluta { # per eseguirlo mi basta chiamare il nome della funzione
echo “Ciao mondo”
}
saluta
...
somma() {
return $(( $1 + $2 )) # gli argomenti sono associati alle variabili $N
}
somma 3 4
risultato=$? # memorizza nella variabile il comando precedentemente eseguito
...
function moltiplica() {
echo $(( $1 * $2 ));
}
echo $(moltiplica 4 3)

Utilizzo del while


Per utilizzare la condizione while è possibile tramite il seguente modo:

i=1
while [ $i -le 10 ]; do
echo “il valore di i è $i”
i=`expr $i + 1`
done
Utilizzo del ciclo for
Per utilizzare il ciclo for possiamo utilizzare sostanzialmente due varianti: for “normale” e for each

for

for i in *.txt; do
echo $i
done
for i in A B C; do
echo $i
done

for each

for (( i=0; i<=10; i++ ))


do
echo "Ciao $c"
done
for ((a=1,b=1; a<=10;a++,b++)); do
echo "Ciao $a $b"
done

Utilizzo del ciclo until


Esegue il ciclo fintanto che la condizione non diventa vera

contatore=10
until [ $contatore -lt 1 ]; do
echo $contatore
let contatore-=1
done

Utilizzo dello Switch / Case


for i in *.txt; do
case $i in
a*) echo “Inizia con a” ;;
*) echo “Non inizia con a” ;;
esac
done

You might also like