Vous n'êtes pas identifié(e).
L'icône rouge permet de télécharger chaque page du wiki visitée au format
PDF et la grise au format ODT →
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente Prochaine révision Les deux révisions suivantes | ||
doc:programmation:shells:debuter-avec-les-scripts-shell-bash [29/05/2014 07:08] Hypathie [Création de variables par l'utilisateur] |
doc:programmation:shells:debuter-avec-les-scripts-shell-bash [30/05/2014 06:39] Hypathie [Créer des paramètres de position : la commande set] |
||
---|---|---|---|
Ligne 364: | Ligne 364: | ||
====2) Affectation par la lecture : read ==== | ====2) Affectation par la lecture : read ==== | ||
+ | **On peut créer des variables au moyen de commandes, comme par exemple la commande read qui est une commande interne (ou primitive) au shell.** | ||
+ | |||
*syntaxe : | *syntaxe : | ||
<code> | <code> | ||
read nom-de-la-variable | read nom-de-la-variable | ||
</code> | </code> | ||
+ | *La valeur est enregistrée par l'utilisateur sur l'entrée standard (i.e. ce qu'on écrit à l'invite de commande).\\ | ||
+ | *Le nom de la variable s'écrit juste après read, ce n'est qu'un pointeur vers la valeur que vous avez rentrée. | ||
- | Par exemple: | + | Par exemple dans un script : |
<code bash> | <code bash> | ||
#!/bin/bash | #!/bin/bash | ||
Ligne 376: | Ligne 380: | ||
echo "Enchanté $nom !" | echo "Enchanté $nom !" | ||
</code> | </code> | ||
- | *La valeur est enregistrée par l'utilisateur sur l'entrée standard (i.e. ce qu'on écrit à l'invite de commande).\\ | + | **De même dans le terminal on peut tout à fait entrer tour à tour chacune des lignes de ce script, essayez !** ;-) |
- | *Le nom de la variable s'écrit juste après read, ce n'est qu'un pointeur vers la valeur que vous avez rentrée. | + | |
*L'option -p permet d'insérer un message avant l'attente de la valeur que l'utilisateur doit entrer. | *L'option -p permet d'insérer un message avant l'attente de la valeur que l'utilisateur doit entrer. | ||
Ligne 385: | Ligne 389: | ||
echo "bonjour $prenom !" | echo "bonjour $prenom !" | ||
</code> | </code> | ||
+ | ** Ici "prenom" est le nom de la variable, et sa valeur est entrée par l'utilisateur depuis le terminal.** | ||
+ | **Là aussi ces deux commandes peuvent être entrées dans le terminal.** | ||
+ | * read permet de déclarer plusieurs variables successivement (dans terminal ou script): | ||
+ | <code user> | ||
+ | read -p "entrez votre nom et prénom: " nom prenom | ||
+ | </code> | ||
+ | retour: | ||
+ | <code> | ||
+ | entrez votre nom et prénom: | ||
+ | </code> | ||
+ | On entre par exemple debian facile, puis on peut récupérer la valeur de chacune des variables "nom" et "prenom" | ||
+ | <code user> | ||
+ | echo $prenom $nom | ||
+ | </code> | ||
+ | retour : | ||
+ | <code> | ||
+ | facile debian | ||
+ | </code> | ||
+ | Mais dans un script c'est plus rapide ! 8-) | ||
+ | *Remarque : | ||
+ | Ci-dessous, on ne met pas le "nom" de la variable, parce qu'on ne cherche pas à appeler la valeur de cette variable mais à permettre au programme de se poursuivre.\\ | ||
+ | Quand on entre dans le terminal la réponse attendu par "read", le retour de la commande et zéro, donc elle est considérée comme exécutée, et le shell passe à l'exécution de la commande suivante. | ||
+ | |||
<code bash> | <code bash> | ||
#!/bin/bash | #!/bin/bash | ||
Ligne 391: | Ligne 417: | ||
echo "bonjour $USER !" | echo "bonjour $USER !" | ||
</code> | </code> | ||
+ | |||
+ | <note> | ||
+ | **Les options de read les plus intéressantes.** | ||
+ | * -p : afficher un message | ||
+ | * -n : limiter le nombre de caractères | ||
+ | * -t : limiter le temps autorisé pour saisir un message | ||
+ | * -s : ne pas afficher le texte saisi | ||
+ | par exemple: | ||
+ | read -p "entrez votre de naissance (deux derniers chiffres): " -n 2 annee | ||
+ | </note> | ||
=====Créer des paramètres de position : la commande set ===== | =====Créer des paramètres de position : la commande set ===== | ||
Ligne 507: | Ligne 543: | ||
</note> | </note> | ||
- | ====Déclaration de la valeur d'une variable avec une structure conditionnelle ==== | + | =====Déclaration de la valeur d'une variable avec une structure conditionnelle===== |
**La valeur du paramètre d'une conditionnelle est pointée par cette conditionnelle sans forcément être nommé.** | **La valeur du paramètre d'une conditionnelle est pointée par cette conditionnelle sans forcément être nommé.** |