Méthode B/Bibliographie et référence
Programmation Bash/Tests
Conditions.
Deux syntaxes équivalentes permettent de tester des expressions : codice_1 et codice_2. Elles renvoient toutes les deux un code de retour valant 0 si l'expression est vraie et 1 si l'expression est fausse.
Attention en shell (bin bash) on ne met pas de if avec des = , on utilise les valeurs eq, lt etc...)
$ [ 2 = 2 ]
$ echo $?
0
$ [ 2 = 3 ]
$ echo $?
1
La commande codice_3 fonctionne de manière complétement équivalente :
$ test 2 = 2
$ echo $?
0
$ test 2 = 3
$ echo $?
1
Les opérateurs de tests disponibles sont, pour les chaînes :
Pour les nombres :
Pour les expressions :
Test codice_17.
L'instruction codice_17 permet d'effectuer des opérations si une condition est réalisée.
if condition
 then instruction(s)
fi
L'instruction codice_17 peut aussi inclure une instruction else permettant d'exécuter des instructions dans le cas ou la condition n'est pas réalisée.
if condition
 then instruction(s)
else instruction(s)
fi
Il est bien sur possible d'imbriquer des codice_17 dans d'autres codice_17 et notamment des constructions telles que celle ci sont assez courantes :
if condition1
 then instruction(s)
else
 if condition2
 then instruction(s)
 else
 if condition3
 fi
 fi
fi
Pour permettre d'alléger ce type de code, ksh fournit un raccourci d'écriture : codice_22. Le code précédent pourrait être réécrit ainsi :
if condition1
 then instruction(s)
elif condition2
 then instruction(s)
elif condition3
fi
Test codice_23.
L'instruction codice_23 permet de comparer une valeur avec une liste d'autres valeurs et d'exécuter un bloc d'instructions lorsque une des valeurs de la liste correspond.
case valeur_testee in
valeur1) instruction(s);;
valeur2) instruction(s);;
valeur3) instruction(s);;
esac
Ce code est équivalent à :
if [ valeur_teste = valeur1 ]
 then instruction(s)
elif [ valeur_testee = valeur2 ]
 then instruction(s)
elif [ valeur_testee = valeur3 ]
 then instruction(s)
else
 instruction_else(s)
fi
Syntaxe du test.
Deux syntaxes équivalentes permettent de réaliser des tests sur des opérandes:
ou
Ces deux commandes renvoient un code de retour valant 0 si l'expression est vraie et 1 si l'expression est fausse. 
Exemple :
La commande codice_3 fonctionne de manière complètement équivalente :
mais certains lancements peuvent être fait sous certaine condition système:
Tester une variable.
Il est tout à fait possible de tester le contenu d'une variable avec les commandes codice_3 ou codice_27 :
[ $a = toto ]
la substitution de la variable par sa valeur est alors effectuée et le test est vrai si la variable contient la valeur codice_28 et faux sinon. Par contre, si la variable codice_29 n'est pas définie lors du test, la substitution de la ligne sera :
[ = toto ]
ce qui provoquera une erreur. Il est donc préférable de toujours protéger une variable lors d'un test soit avec des guillemets :
[ "$a" = toto ]
soit avec un préfixe :
[ x$a = xtoto ]
Attention, dans ce cas un caractère espace dans $a pose quand même un problème s'il est substitué. Il faut donc préférer la solution précédente.
Tests sur les objets du système de fichiers.
Les opérateurs de tests disponibles sont, pour les objets du système de fichiers :
 vrai si l'objet désigné par $FILE existe dans le répertoire courant,
 vrai si l'objet désigné par $FILE existe dans le répertoire courant et si sa taille est supérieure à zéro,
 vrai si l'objet désigné par $FILE est un fichier dans le répertoire courant,
 vrai si l'objet désigné par $FILE est un fichier lisible dans le répertoire courant,
 vrai si l'objet désigné par $FILE est un fichier inscriptible dans le répertoire courant,
 vrai si l'objet désigné par $FILE est un fichier exécutable dans le répertoire courant,
 vrai si l'objet désigné par $FILE est un répertoire dans le répertoire courant,
 vrai si l'objet désigné par $FILE est un lien.
 vrai si l'objet désigné par $FILE à été modifié depuis la dernière lecture.
Tests sur les chaînes de caractères.
Les opérateurs de tests disponibles sont, pour les chaînes :
Tests sur les nombres (entiers).
Pour les nombres :
 vrai si n1 et n2 sont égaux ("EQual"),
 vrai si n1 et n2 sont différents ("Not Equal"),
 vrai si n1 est strictement inférieur à n2 ("Less Than"),
 vrai si n1 est inférieur ou égal à n2 ("Less or Equal"),
 vrai si n1 est strictement supérieur à n2 ("Greater Than"),
 vrai si n1 est supérieur ou égal à n2 ("Greater or Equal").
Tests et logique.
Ou comment introduire une alternative logique :
 vrai si e est fausse. ! est la négation.
 vrai si e1 et e2 sont vraies. -a ou le et logique ("And").
 vrai si e1 ou e2 est vraie. -o ou le ou logique ("Or").
Un exemple complet.
read -p "Si vous etes d'accord entrez o ou oui : " reponse
if [ ! "$reponse" = "o" -a ! "$reponse" = "oui" ]; then
 echo "Non, je ne suis pas d'accord !" 
else
 echo "Oui, je suis d'accord"
fi
L'exemple montre la manière dont on utilise des négations avec un "et" logique. En particulier, il ne faut pas utiliser de parenthèses. Le "non" (le point d'exclamation) s'applique à la proposition logique qui vient ensuite (seulement ""$reponse" = "o""). À noter que "read -p" permet de poser une question et de stocker la réponse de l'utilisateur dans une variable.

Programmation Bash/Redirections
Flux.
Sous Unix, chaque processus possède trois flux :
Par défaut les deux flux de sortie sont envoyés sur le terminal de l'utilisateur et l'entrée est prise sur le clavier. Tout étant représenté par des fichiers sous Unix, cela correspond à lire dans le fichier représentant le clavier pour l'entrée standard et écrire dans le fichier représentant le terminal pour les sorties standards.
Redirections.
Bash et Ksh permettent de rediriger les trois flux standards, ce qui revient à associer le flux à un fichier différent :
Tubes.
Un tube permet de rediriger la sortie standard d'une commande dans l'entrée standard d'une autre commande.
est (presque) équivalent à
Tee.
Tee permet un embranchement, ce qu'il reçoit sur son entrée est redirigé vers un fichier et la sortie standard.
 echo "toto" | tee f
affiche "toto" et créé le fichier f avec le texte "toto".

Programmation Bash/Commandes ksh
Liste des commandes Bash compatibles ksh.

Programmation Bash/Enchaînements et scripts

Scripts.
Exécution d'un script.
Il y a deux manières d'exécuter un script, soit en rendant le script exécutable, soit en passant le fichier comme argument à la commande codice_1.
Variables spéciales.
Plusieurs variables spéciales sont disponibles lors de l'exécution d'un script.
Pour tester si le script contient au moins un paramètre :
if [ "x$1" = "x" ]
 then echo "argument vide"
 else echo "argument non vide"
fi
Enchaînements.
Enchaînements simples.
Les commandes codice_8 jusqu'à codice_9 sont exécutées parallèlement.
Les commandes codice_8 jusqu'à codice_9 sont exécutées successivement.
Enchaînements conditionnels.
Cet exemple va exécuter toutes les commandes codice_8 jusqu'à codice_9 tant que celles ci se terminent correctement.
Dans cet exemple les commandes codice_8 jusqu'à codice_9 seront exécutées successivement tant qu'aucune ne se termine correctement.

Polonais/Déclinaison du nom masculin
= Déclinaison du nom masculin =
Il existe trois genres masculins en polonais – le masculin personnel, le masculin animé et le masculin inanimé. Les différences entre eux sont régulières :
Mais il existe aussi certaines différences dans la déclinaison.
Avant de les expliquer, regardons quelques exemples.
Les changements phonétiques et les irrégularités sont :
Maintenant, quelques phrases :