#!/usr/bin/env bash
Explication (par Tom “zdimension” Niget): Sur Unix/Linux, quand lance un fichier, l’OS va lire le début du fichier pour détecter une signature en entête.
#!
), si c’est le cas, il va lancer le programme
correspondant.Par exemple, si le fichier commence par #!/usr/bin/env bash
, il va lancer la
commande : /usr/bin/env bash <nom_du_fichier>
de manière que le programme se lance en tant que programme exécutable.
echo -e "Première ligne\nDeuxième ligne"
Sortie :
Première ligne
Deuxième ligne
echo -e "nb arguments : $# (argc en C)"
echo -e "arguments : $* (argv en C)"
echo -e "premier argument : $1"
Utilisation :
./script.sh arg1 arg2 arg3
Sortie :
nb arguments : 3 (argc en C)
arguments : arg1 arg2 arg3 (argv en C)
premier argument : arg1
for i in $*
do
echo $i
done
Utilisation :
./script.sh arg1 arg2 arg3
Sortie :
arg1
arg2
arg3
for i in {1..3}
do
echo $i
done
Sortie :
1
2
3
i=0
while [ $i -lt 3 ]
do
echo $i
i=$((i+1))
done
Sortie :
0
1
2
if [ $# -eq 0 ]
then
echo "Aucun argument"
elif [ $# -eq 1 ]
then
echo "Un seul argument"
else
echo "Plusieurs arguments"
fi
Table de conversion :
bash | Symbole | Définition |
---|---|---|
-eq |
= | égal à |
-ne |
!= | différent de |
-gt |
> | supérieur à |
-lt |
< | inférieur à |
-ge |
>= | supérieur ou égal à |
-le |
<= | inférieur ou égal à |
function maFonction(){
echo "Fonction !"
}
maFonction
Sortie :
Fonction !
function maFonction(){
echo "Fonction avec $# arguments"
}
maFonction arg1 arg2 arg3
Sortie :
Fonction avec 3 arguments
ma_liste = ( "a" "b" "c d" )
for thing in "${ma_liste[@]}" ; do
echo "$thing"
done
Sortie :
a
b
c d
Certains shells comme ash ne supportent pas les listes, on peut donc utiliser une string, le for sépare les éléments par des espaces.