#!/bin/bash
# affiche_param.sh
echo "Le 1er paramètre est : $1"
echo "Le 3ème paramètre est : $3"
echo "Le 10ème paramètre est : ${10}"
echo "Le 15ème paramètre est : ${15}"
./affiche_param.sh 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 Le 1er paramètre est : 1 Le 3ème paramètre est : 3 Le 10ème paramètre est : 10 Le 15ème paramètre est : 15ou encore :
./affiche_param.sh un 2 trois 4 5 6 7 8 9 dix 11 12 13 14 quinze 16 17 Le 1er paramètre est : un Le 3ème paramètre est : trois Le 10ème paramètre est : dix Le 15ème paramètre est : quinze
./affiche_param.sh un 2 "le 3ème" 4 5 6 7 8 9 dix 11 12 13 14 "le 15ème" 16 17 Le 1er paramètre est : un Le 3ème paramètre est : le 3ème Le 10ème paramètre est : dix Le 15ème paramètre est : le 15ème
$0 Contient le nom du script tel qu'il a été invoqué $* L'ensembles des paramètres sous la forme d'un seul argument $@ L'ensemble des arguments, un argument par paramètre $# Le nombre de paramètres passés au script $? Le code retour de la dernière commande $$ Le PID su shell qui exécute le script $! Le PID du dernier processus lancé en arrière-plan
#!/bin/bash # affiche_param_2.sh # Affichage du nom su script echo "Le nom de mon script est : $0" # Affichage du nombre de paramètres echo "Vous avez passé $# paramètres" # Liste des paramètres (un seul argument) for param in "$*" do echo "Voici la liste des paramètres (un seul argument) : $param" done # Liste des paramètres (un paramètre par argument) echo "Voici la liste des paramètres (un paramètre par argument) :" for param in "$@" do echo -e "\tParamètre : $param" done # Affichage du processus echo "Le PID du shell qui exécute le script est : $$" # Exécution d'une commande qui s'exécute en arrière-plan sleep 100 & # Affichage du processus lancé en arrière-plan echo "Le PID de la dernière commande exécutée en arrière-plan est : $!" # Affichage du code retour de la dernière commande "echo" echo "Le code retour de la commande précédente est : $?" # Génération d'une erreur echo "Génération d'une erreur..." # Affichage de la mauvaise commande echo "ls /etc/password 2>/dev/null" ls /etc/password 2>/dev/null # Affichage du code retour de la dernière commande echo "Le code retour de la commande précédente est : $?" exitCe qui donne avec l'invocation suivante :
./affiche_param_2.sh 1 2 3 quatre 5 six
Le nom de mon script est : ./affiche_param_2.sh
Vous avez passé 6 paramètres
Voici la liste des paramètres (un seul argument) : 1 2 3 quatre 5 six
Voici la liste des paramètres (un paramètre par argument) :
Paramètre : 1
Paramètre : 2
Paramètre : 3
Paramètre : quatre
Paramètre : 5
Paramètre : six
Le PID du shell qui exécute le script est : 6165
Le PID de la dernière commande exécutée en arrière-plan est : 6166
Le code retour de la commande précédente est : 0
Génération d'une erreur...
ls /etc/password 2>/dev/null
Le code retour de la commande précédente est : 1
set param1 param2 param3initialisera automatiquement les paramètres positionnels "$1,$2,$3" avec les valeurs "param1,param2,param3", effaçant de ce fait les anciennes valeurs si toutefois elles existaient. Les paramètres spéciaux "#,* et @" sont automatiquement mis à jours en conséquence.
$ set param1 param2 param3 $ echo "Nombre de paramètres : $#" Nombre de paramètres : 3 $ echo "Le second paramètre est : $2" Le second paramètre est : param2 $ echo "Les paramètres sont : $@" Les paramètres sont : param1 param2 param3 $ set pêche pomme $ echo "Nombre de paramètres : $#" Nombre de paramètres : 2 $ echo "Les paramètres sont : $@" Les paramètres sont : pêche pomme
$ IFS=":"; set $(grep $USER /etc/passwd) $ echo -e "Login :\t$1\nNom :\t$5\nID :\t$3\nGroup :\t$4\nShell :\t$7" Login : jp Nom : Jean-Philippe ID : 500 Group : 500 Shell : /bin/bash
#!/bin/bash
# decale_param.sh
echo
echo "Nombre de paramètres : $#"
echo "Le 1er paramètre est : $1"
echo "Le 3ème paramètre est : $3"
echo "Le 6ème paramètre est : $6"
echo "Le 10ème paramètre est : ${10}"
echo "============================================="
echo "Décalage d'un pas avec la commande \"shift\""
shift
echo "Nombre de paramètres : $#"
echo "Le 1er paramètre est : $1"
echo "Le 3ème paramètre est : $3"
echo "Le 6ème paramètre est : $6"
echo "Le 10ème paramètre est : ${10}"
echo "============================================="
echo "Décalage de quatre pas avec la commande \"shift 4\""
shift 4
echo "Nombre de paramètres : $#"
echo "Le 1er paramètre est : $1"
echo "Le 3ème paramètre est : $3"
echo "Le 6ème paramètre est : $6"
echo "Le 10ème paramètre est : ${10}"
echoEt son résultat :./decale_param.sh 1 2 3 4 5 6 7 8 9 10 Nombre de paramètres : 10 Le 1er paramètre est : 1 Le 3ème paramètre est : 3 Le 6ème paramètre est : 6 Le 10ème paramètre est : 10 ============================================= Décalage d'un pas avec la commande "shift" Nombre de paramètres : 9 Le 1er paramètre est : 2 Le 3ème paramètre est : 4 Le 6ème paramètre est : 7 Le 10ème paramètre est : ============================================= Décalage de quatre pas avec la commande "shift 4" Nombre de paramètres : 5 Le 1er paramètre est : 6 Le 3ème paramètre est : 8 Le 6ème paramètre est : Le 10ème paramètre est :
Autres Astuces dans la catégorie Bash