« Script shell » : différence entre les versions
Aucun résumé des modifications |
|||
(8 versions intermédiaires par le même utilisateur non affichées) | |||
Ligne 5 : | Ligne 5 : | ||
a la place de tapper et de retapper des commandes souvent utilisé au clavier, on les place dans un | 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 | fichier qu'il suffit de lancer | ||
code couleur du tutoriel :<br /> | |||
<span style="color:green;">en vert</span> les commentaires<br /> | |||
<span style="color:blue">en bleu</span> les exemples (à remplacer avec ses noms) | |||
== Créer le script shell. == | == Créer le script shell. == | ||
Ligne 55 : | Ligne 59 : | ||
== 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 | ||
== 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 | ||
== 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 191 : | ||
=== 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 | <span style="color:blue;"> nomFonction "arg1" 1</span> | ||
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 | On peut mettre les fonctions dans un autre fichier appelé par => source <span style="color:blue;">fichier.sh</span> |
Dernière version du 29 mai 2016 à 11:12
[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
code couleur du tutoriel :
en vert les commentaires
en bleu les exemples (à remplacer avec ses noms)
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 fonctions dans un autre fichier appelé par => source fichier.sh