Survivre avec Bash

SYNTAXE ?

#! /bin/bash
# commentaires
instruction
instruction ; instruction
"substitution" des variables entre les double quote
'pas de substitution' des variables entre les quote
`exécute` la commande entre les ``

VARIABLES

i=2Affectation
chaine="de caracteres"Affectation
$i ou ${i}Valeur de i
echo $iAffichage
i=(a b c d)Affectation de tableau
${i[0]}1ère valeur du tableau
${#i[*]}nombre d'éléments du tableau
$0Nom du shell ou du shell script
$11er argument
$22eme argument
$*Tous les paramètres du script
$#Nombre de paramètres du script
$?Status de l'opération précédente
$$pid du processus courant

Lecture sur l'entrée standard

read var

TEST

avec IF

Présence de fichiers html ?
if condition ; then
  instr
[ elif condition ; then instr ]
...
[ else list ]
fi
if [[ `ls *.html` == "" ]]; then
  echo "pas de html"
else
  echo "html !"
fi

avec CASE

case var in
  val1 )
    instr
    ;;
  val2 )
    instr
    ;;
  ...
esac
a = 3
case $a in
  2)
    echo 2
    ;;
  3)
    echo 3
    ;;
esac

EXPRESSIONS CONDITIONNELLES

Expressions Vrai si
-e fichier fichier existe
-f fichier fichier existe et est un fichier
-d fichier fichier existe et est un répertoire
-r fichier fichier existe et est en lecture
-w fichier fichier existe et est modifiable
-x fichier fichier existe et est exécutable
string1 == string2 string1 et string2 sont égales
string1 != string2 string1 et string2 sont différents
string1 < string2 string1 précède string2 lexicographiquement
string1 > string2 string1 succède string2 lexicographiquement
( ! expression ) expression est faux
( expression1 && expression2 ) expression1 et expression2 sont vrai
( expression1 || expression2 ) expression1 ou expression2 sont vrai
nb1 == nb2 nb1 et nb2 sont égaux
(nb1 != nb2 && nb3 <= nb4 || nb5 >= nb6) if ((3!=4 && 7<=8 && 15>=5)); then echo cool; fi

BOUCLE FOR

avec liste

nettoyage de tous les fichiers~
for var in liste
do
  instr
[ break ]
[ continue ]
done
for a in `find . | grep ~$`
do
  rm $a
done

avec itération

renommage de fichiers
for (( expr1 ; expr2 ; expr3 ))
do
  instr
[ break ]
[ continue ]
done
for (( i=0; i<10; i++ ))
do
  mv 0$i.jpg t$i.jpg
done

BOUCLE WHILE UNTIL

while condition
do
  instr
[ break ]
[ continue ]
done
until condition
do
  instr
[ break ]
[ continue ]
done

FONCTION

DéclarationAppel
[ function ] name () {
  instr
}
name
coucou() {
  echo fonction coucou
}
coucou

home up envoyer un mail

Debian Get FireFox Valid HTML 4.01! Valid CSS!