logo Debian Debian Debian-France Debian-Facile Debian-fr.org Forum-Debian.fr Debian ? Communautés logo inclusivité

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

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 → ODT PDF Export

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

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 17:19]
Hypathie [Déclarer des paramètres de position : set]
doc:programmation:shells:script-bash-variables-arguments-parametres [03/06/2014 18:56]
Hypathie [Quand les valeurs sont des paramètres]
Ligne 170: Ligne 170:
 </​note>​ </​note>​
  
 +=====Quand les valeurs sont des paramètres =====
  
 +====Les paramètres de positions ====
  
 +Lorsqu'​on ajoute un argument au script avant son exécution, on peut alors récupérer la valeur de ce paramètre.\\
 +
 +  * **Pour récupérer chaque paramètre : $1 ; $2 ; $3** etc.
 +
 +  * **Pour récupérer tous les paramètres : $@**
 +
 +EXEMPLES : soit le script "​essai.sh"​
 +<code bash>
 +#!/bin/bash
 +var=Bonjour
 +echo $var
 +echo "​$1" ​
 +echo "​$2"​
 +echo "​$3"​
 +echo "ou le paramètre 1 est: $1, le deuxième est: $2, le troisième est : $3"
 +echo " "
 +echo "tous les paramètres $@"
 +</​code>​
 +ET
 +<code user>
 +./essai.sh a b c 
 +</​code>​
 +
 +Retour:
 +<​code>​
 +Bonjour ​ # on peut récupérer une valeur (ou des valeurs) déclarée(s) et les paramètres de position
 +a
 +b
 +c
 +ou le paramètre 1 est: a, le deuxième est: b, le troisième est : c
 + 
 +tous les paramètres a b c
 +</​code>​
 +
 +  * **Tous les arguments passés au scripts $* et $@ sont synonymes**
 +<code bash>
 +#!/bin/bash
 +echo $1
 +echo $*
 +echo $@
 +echo $#
 +</​code>​
 +ET
 +<code user>
 +./essai.sh bonjour à tous
 +</​code>​
 +retour :
 +
 +<​code>​
 +bonjour
 +bonjour à tous
 +bonjour à tous
 +3
 +</​code>​
 +
 +  * **de même pour $* et $@ :**
 +<code bash>
 +#!/bin/bash
 +echo $1
 +echo $*
 +echo $@
 +echo $#
 +</​code>​
 +ET
 +<code user>
 +./essai.sh "​bonjour à tous"
 +</​code>​
 +retour :
 +
 +<​code>​
 +bonjour à tous
 +bonjour à tous
 +bonjour à tous
 +1
 +</​code>​
 +
 +  * **Mais avec la commande set qui fixe des paramètres de position:**
 +<code bash>
 +#!/bin/bash
 +set "​bonjour à tous"
 +echo $*
 +echo $@
 +echo $1
 +echo $#
 +</​code>​
 +
 +<code user>
 +./essai.sh
 +</​code>​
 +
 +Retour :
 +<code >
 +bonjour à tous
 +bonjour à tous
 +bonjour à tous
 +1
 +</​code>​
 +
 +OU ENCORE :
 +
 +<​code>​
 +#!/bin/bash
 +set bonjour à tous
 +echo $*
 +echo $@
 +echo $1
 +echo $#
 +</​code>​
 +
 +<code user>
 +./essai.sh
 +</​code>​
 +
 +Retour :
 +
 +<code >
 +bonjour à tous
 +bonjour à tous
 +bonjour
 +3
 +
 +</​code>​
 +
 +====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}.**
 +
 +Exemples :
 +<code bash>
 +#!/bin/bash
 +var="​j'​aime debian-facile"​
 +echo ${#var}
 +</​code>​
 +
 +  * ** Pour récupérer la longueur d'un paramètre de position**
 +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>​
doc/programmation/shells/script-bash-variables-arguments-parametres.txt · Dernière modification: 23/02/2023 02:20 par agp91

Pied de page des forums

Propulsé par FluxBB