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:script-bash-variables-arguments-parametres [03/06/2014 18:38] Hypathie [Quand les valeurs sont des paramètres] |
doc:programmation:shells:script-bash-variables-arguments-parametres [04/06/2014 06:28] Hypathie [Substitutions de commande] |
||
---|---|---|---|
Ligne 14: | Ligne 14: | ||
Contributeurs, les FIXME sont là pour vous aider, supprimez-les une fois le problème corrigé ou le champ rempli ! | Contributeurs, les FIXME sont là pour vous aider, supprimez-les une fois le problème corrigé ou le champ rempli ! | ||
- | ====== Création de variables ====== | + | ===== Création de variables ===== |
En liens nécessaires : \\ | En liens nécessaires : \\ | ||
[[doc:programmation:shell:shell#variables-et-environnement|Le shell pour tous : "Variables et environnement"]]\\ | [[doc:programmation:shell:shell#variables-et-environnement|Le shell pour tous : "Variables et environnement"]]\\ | ||
Ligne 250: | Ligne 250: | ||
</code> | </code> | ||
- | * **Mais avec la commande set qui fixe des paramètres de position:** | + | * **Mais avec la commande set qui modifie provisoirement les paramètres :** |
+ | Pour plus de détails sur la commande set voir : [[atelier:chantier:script-bash-detail-sur-les-parametres-et-les-boucles?&#syntaxe-de-set]] | ||
<code bash> | <code bash> | ||
#!/bin/bash | #!/bin/bash | ||
Ligne 297: | Ligne 298: | ||
</code> | </code> | ||
- | ====Récupérer la longueur d'une valeur de variable ==== | + | =====Récupérer la longueur d'une valeur de variable===== |
* **Pour obtenir la longueur d'une chaîne stockée dans une variable, on écrit ${#VAR}.** | * **Pour obtenir la longueur d'une chaîne stockée dans une variable, on écrit ${#VAR}.** | ||
Ligne 310: | Ligne 311: | ||
* ** Pour récupérer la longueur d'un paramètre de position** | * ** Pour récupérer la longueur d'un paramètre de position** | ||
FIXME | FIXME | ||
+ | |||
+ | |||
+ | |||
+ | =====Substitutions de commande===== | ||
+ | |||
+ | Permet de se servir de la sortie d'une commande dans un autre contexte pour ; | ||
+ | - affecter cette sortie à une variable ; | ||
+ | - utiliser cette sortie comme argument d'une autre commande | ||
+ | - etc. | ||
+ | |||
+ | Il y a deux syntaxes : | ||
+ | <code> | ||
+ | `commande` | ||
+ | </code> | ||
+ | |||
+ | OU | ||
+ | |||
+ | <code> | ||
+ | $(commande) | ||
+ | </code> | ||
+ | |||
+ | ===$(cmd) : des exemples=== | ||
+ | <code bash> | ||
+ | #!/bin/bash | ||
+ | dir=$(pwd) | ||
+ | echo "mon répertoire est : $dir" | ||
+ | </code> | ||
+ | <code> | ||
+ | mon répertoire est : /home/hypathie | ||
+ | </code> | ||
+ | *plusieurs commandes: | ||
+ | <code bash> | ||
+ | #!/bin/bash | ||
+ | echo $(pwd ; ls) | ||
+ | </code> | ||
+ | === $(cmd) : imbrication de commandes :=== | ||
+ | <code bash> | ||
+ | echo $( ls $(pwd)/Documents) | ||
+ | </code> | ||
+ | *avec set : | ||
+ | <code bash> | ||
+ | #!/bin/bash | ||
+ | set $(pwd ; whoami) | ||
+ | echo "$1 : $2" | ||
+ | echo $# | ||
+ | </code> | ||
+ | Ou | ||
+ | <code bash> | ||
+ | #!/bin/bash | ||
+ | set -- $(ls -l $(pwd)/.bashrc) | ||
+ | echo $* | ||
+ | </code> | ||
+ | |||
+ | =====Typologie des variables ===== | ||
+ | Comme nous l'avons vu on peut affecter une variable par différents types de valeurs ; des chaînes de caractères, des nombres, des valeurs d'autres variables, des substitutions de commandes.\\ | ||
+ | On dit pour cela quand bash les variables ne sont pas typées.\\ | ||
+ | Mais il peut être intéressant de typer une variable. Pour ce faire, il faut utiliser des commandes internes à bash qui permettent de déclarer une variable typée.\\ |