« Script shell » : différence entre les versions
Aucun résumé des modifications |
Aucun résumé des modifications |
||
Ligne 55 : | Ligne 55 : | ||
== Passer des parametres == | == Passer des parametres == | ||
bash <span style="color:blue;">script</span>.sh <span style="color:blue;">salut 1 cafe</span | bash <span style="color:blue;">script</span>.sh <span style="color:blue;">salut 1 cafe</span> | ||
$1 = "<span style="color:blue;">salut</span>"; $2 = <span style="color:blue;">1</span>; $3 = "<span style="color:blue;">cafe</span>";<br /> | $1 = "<span style="color:blue;">salut</span>"; $2 = <span style="color:blue;">1</span>; $3 = "<span style="color:blue;">cafe</span>";<br /> | ||
Rappel, la variable => $# contient le nombre de paramètre transmit au script | Rappel, la variable => $# contient le nombre de paramètre transmit au script | ||
Ligne 61 : | Ligne 61 : | ||
== boucles == | == boucles == | ||
while [<span style="color:blue;">cette condition</span>]  <span style="color:green;">#temps que</span | while [<span style="color:blue;">cette condition</span>]  <span style="color:green;">#temps que</span> | ||
do | do | ||
<span style="color:blue;">faire ca</span><br /> | |||
done< | done | ||
until [y'a ca]   <span style="color:green;">#jusqu'a ce que</span> | |||
do | |||
: <span style="color:blue;">faire ceci</span> | |||
done | |||
== Condition == | == Condition == | ||
if [ <span style="color:blue;">"$variable" = "untruc"</span> ]; then | if [ <span style="color:blue;">"$variable" = "untruc"</span> ]; then | ||
<span style="color:blue;">faire ca</span> | |||
elif [ <span style="color:blue;">"$variable" = "untruc"</span> ]; then | elif [ <span style="color:blue;">"$variable" = "untruc"</span> ]; then | ||
else | |||
else | <span style="color:blue;">faire ce truc</span> | ||
fi | |||
fi | |||
== Le case == | == Le case == | ||
case "$<span style="color:blue;">variable</span>" in <span style="color:green;">#si variable vaut</span | case "$<span style="color:blue;">variable</span>" in <span style="color:green;">#si variable vaut</span> | ||
<span style="color:blue;">ca</span> | <span style="color:blue;">ou ca</span> | <span style="color:blue;">ou encore ca</span> ) <span style="color:blue;">faire ca</span>;; | |||
<span style="color:blue;">ou si ca vaut ca</span> | <span style="color:blue;">ou ca</span> ) <span style="color:blue;">faire ca alors</span>;; | |||
<nowiki>*</nowiki> ) <span style="color:blue;">si c'est aucun autre truc faire ca</span>;; | |||
esac | esac | ||
Ligne 93 : | Ligne 93 : | ||
== Formatage du texte affiché en console == | == Formatage du texte affiché en console == | ||
echo -e '\033[<span style="color:blue;">A</span>;<span style="color:blue;">B</span>;<span style="color:blue;">C</span>m <span style="color: blue;">texte</span> \033[0m' | echo -e '\033[<span style="color:blue;">A</span>;<span style="color:blue;">B</span>;<span style="color:blue;">C</span>m <span style="color: blue;">texte</span> \033[0m' | ||
echo -e \033[1; 31m texte rouge \033[0m et içi par defaut => affiche: <span style="color: red;">texte rouge</span> et içi par defaut<br /> | echo -e \033[1; 31m texte rouge \033[0m et içi par defaut => affiche: <span style="color: red;">texte rouge</span> et içi par defaut<br /> | ||
A = effet du texte; B = couleur; C = couleur surlignage<br /> | A = effet du texte; B = couleur; C = couleur surlignage<br /> | ||
Ligne 188 : | Ligne 188 : | ||
=== déclarer la fonction : === | === déclarer la fonction : === | ||
<span style="color:blue;">nomFonction </span> () { | <span style="color:blue;">nomFonction </span> () { | ||
<span style="color:blue;">faire ca avec</span> | |||
;} | ;} | ||
=== utiliser la fonction : === | === utiliser la fonction : === | ||
<span style="color:blue;"> nomFonction "arg1" 1</span><br /> | <span style="color:blue;"> nomFonction "arg1" 1</span><br /> | ||
Les arguments (<span style="color:blue;">"arg1"</span> et <span style="color:blue;">1</span>) sont optionnels, dans cet exemple => $1 = <span style="color:blue;">arg1</span> et $2 = <span style="color:blue;">1</span>, ...<br /> | Les arguments (<span style="color:blue;">"arg1"</span> et <span style="color:blue;">1</span>) sont optionnels, dans cet exemple => $1 = <span style="color:blue;">arg1</span> et $2 = <span style="color:blue;">1</span>, ...<br /> | ||
On peut mettre les fonction dans un autre fichier appelé par => source <span style="color:blue;">fichier.sh</span> | On peut mettre les fonction dans un autre fichier appelé par => source <span style="color:blue;">fichier.sh</span> |
Version du 7 janvier 2014 à 17:19
[Par jullule]
Les scripts shell sont des programmes qui permettent d'automatiser les tâches en lignes de commandes. a la place de tapper et de retapper des commandes souvent utilisé au clavier, on les place dans un fichier qu'il suffit de lancer
Créer le script shell.
Un fichier shell n'a pas besoin d'extension particulière => script mais pour plus de lisibilitée on peut utiliser l'extension => script.sh Apres c'est une question de lisibilité.
Lancer un script
Le script se lance comme tout programme avec => ./script.sh ou avec bash script.sh pour le debogger, on lance le script avec bash -x => bash -x script.sh
Pour commencer
Première instruction a taper, le nom du shell utilisé, le plus courent est => bash
#!/bin/bash ou #!/bin/autre shell
Dernière chose avant de partir, taper => exit 0 Pour dire que le programme c'est bien fini sans ambuche
commentaire => #commentaire
declarer une variable => variable = ca
lire ce que contient la variable => $variable
recuperer une variable (clavier) => read variable
afficher quelque chose => echo test ou bien => echo "test" ou encore => echo $variable;
les parentheses permettent d'ecrire sur plusieurs lignes
Variables d'environnement
$HOME contient le répertoire utilisateur.
$USER contient le login d'utilisateur.
$PWD contient le répertoire courant.
$SHELL contient le nom du shell de connexion.
$PATH contient la liste des répertoires où se trouvent les commandes que l'utilisateur peut exécuter.
$HOSTNAME contient le nom de la machine.
$HISTSIZE contient la taille maximale des commandes exécutées contenues dans le fichier historique.
$PS1 contient les paramètres d'affichage de l'invite de commande (le prompt).
$* contient tous les arguments passés à la fonction.
$# contient le nombre d'arguments.
$? contient le code de retour de la dernière opération.
$0 contient le nom du script.
$! contient le PID de la dernière commande lancée.
Passer des parametres
bash script.sh salut 1 cafe
$1 = "salut"; $2 = 1; $3 = "cafe";
Rappel, la variable => $# contient le nombre de paramètre transmit au script
boucles
while [cette condition] #temps que do faire ca
done
until [y'a ca] #jusqu'a ce que do : faire ceci done
Condition
if [ "$variable" = "untruc" ]; then faire ca elif [ "$variable" = "untruc" ]; then else faire ce truc fi
Le case
case "$variable" in #si variable vaut ca | ou ca | ou encore ca ) faire ca;; ou si ca vaut ca | ou ca ) faire ca alors;; * ) si c'est aucun autre truc faire ca;;
esac
Formatage du texte affiché en console
echo -e '\033[A;B;Cm texte \033[0m'
echo -e \033[1; 31m texte rouge \033[0m et içi par defaut => affiche: texte rouge et içi par defaut
A = effet du texte; B = couleur; C = couleur surlignage
Code | Effet |
0 | Normal |
1 | Gras |
21 | Non-gras |
4 | Souligné |
24 | Non souligné |
5 | Clignotant |
7 | Inversé |
27 | Non-inversé |
Couleur | texte | fond |
Noir | 30 | 40 |
Rouge | 31 | 41 |
Vert | 32 | 42 |
Jaune | 33 | 43 |
Bleu | 34 | 44 |
Magenta | 35 | 45 |
Cyan | 36 | 46 |
Blanc | 37 | 47 |
Fonctions
déclarer la fonction :
nomFonction () { faire ca avec ;}
utiliser la fonction :
nomFonction "arg1" 1
Les arguments ("arg1" et 1) sont optionnels, dans cet exemple => $1 = arg1 et $2 = 1, ...
On peut mettre les fonction dans un autre fichier appelé par => source fichier.sh