Difference between revisions of "HelloBash Ep3"
From Tmplab
(→Ecrire et exécuter des scripts) |
(→Gestion des arguments et des options) |
||
Line 19: | Line 19: | ||
== Gestion des arguments et des options == | == Gestion des arguments et des options == | ||
+ | |||
+ | cat ./myscript.sh | ||
+ | #!/bin/bash | ||
+ | echo "My name is $0" | ||
+ | echo "My first argument is $1" | ||
+ | ./myscript.sh foo | ||
+ | |||
+ | On voit donc que la commande est stockée dans la variable $0 et le premier argument dans $1. | ||
+ | |||
+ | Bash ne sait pas nativement reconnaître des options, le script ne voit que des arguments les uns derrière les autres, accessibles dans des variables numérotées. | ||
+ | |||
+ | cat ./myscript.sh | ||
+ | #!/bin/bash | ||
+ | echo -e "Arg1: $1 - Arg2: $2 - Arg3: $3 - Arg4: $4 - Arg5: $5 " | ||
+ | ./myscript.sh Epstein did not kill himself | ||
+ | |||
+ | Pour utiliser des options une ligne de commande plus riche on utilise la commande getopts (voir plus loin). | ||
+ | |||
== Déclarer des variables == | == Déclarer des variables == | ||
== Faire des tests conditionnels == | == Faire des tests conditionnels == | ||
En cours de rédaction... | En cours de rédaction... |
Revision as of 23:51, 12 November 2019
Retour à la liste des épisodes
Contents
Ecrire et exécuter des scripts
Un premier script
echo " #!/bin/bash" > /tmp/myscript.sh echo "echo helloBash" >> /tmp/myscript.sh cat /tmp/myscript.sh | bash
L'entête #! ("Shebang" ou "Crunchbang") indique quel est l'interpréteur à utiliser (ici Bash, mais on pourrait en utiliser d'autre)
L'extension .sh est une convention pour les scripts shell en général.
Pour l'exécuter il faut ajouter le droit d'exécution sur le fichier
chmod 755 /tmp/myscript.sh bash -c /tmp/myscript.sh /tmp/myscript.sh
Gestion des arguments et des options
cat ./myscript.sh #!/bin/bash echo "My name is $0" echo "My first argument is $1" ./myscript.sh foo
On voit donc que la commande est stockée dans la variable $0 et le premier argument dans $1.
Bash ne sait pas nativement reconnaître des options, le script ne voit que des arguments les uns derrière les autres, accessibles dans des variables numérotées.
cat ./myscript.sh #!/bin/bash echo -e "Arg1: $1 - Arg2: $2 - Arg3: $3 - Arg4: $4 - Arg5: $5 " ./myscript.sh Epstein did not kill himself
Pour utiliser des options une ligne de commande plus riche on utilise la commande getopts (voir plus loin).
Déclarer des variables
Faire des tests conditionnels
En cours de rédaction...