« Script shell » : différence entre les versions
Aucun résumé des modifications |
|||
(3 versions intermédiaires par le même utilisateur non affichées) | |||
Ligne 6 : | Ligne 6 : | ||
fichier qu'il suffit de lancer | fichier qu'il suffit de lancer | ||
code couleur du tutoriel : | code couleur du tutoriel :<br /> | ||
<span style="color:green;"> | <span style="color:green;">en vert</span> les commentaires<br /> | ||
<span style="color:blue"> | <span style="color:blue">en bleu</span> les exemples (à remplacer avec ses noms) | ||
== Créer le script shell. == | == Créer le script shell. == | ||
Ligne 199 : | Ligne 200 : | ||
<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