Re-
Les accolades et les parenthèses permettent le regroupement de commandes.
Comme expliqué par "bipod", avec des accolades, les commandes sont exécutées par le shell courant, alors qu'avec les parenthèses elles sont exécutées par un shell fils (fork).
Le regroupement de commandes sert principalement à :
- rediriger un ensemble de commandes vers (ou depuis) un même fichier
- exécuter un ensemble de commandes en arrière-plan
- conditionner l'exécution d'un ensemble de commandes
Voilà un exemple qui j'espère t'aidera à mieux cerner l'emploi des accolades et des parenthèses :
#! /bin/bash
echo -e "#############################"
echo -e "# Utilisation des accolades #"
echo -e "#############################"
echo -e "\nRépertoire courant : \c"
pwd
echo -e "Initialisation de la variable \"v\" :\nv=\"abc\""
v="abc"
echo -e "\nDébut de l'environnement avec accolades...\n"
{
echo -e "Réaffectation de la variable \"v\" :\nv=\"123\""
v="123"
echo -e "\nAffichage de la variable \"v\" : \c"
echo -e "$v"
echo -e "\nChangement de répertoire : "
echo -e "cd /tmp"
cd /tmp
echo -e "\nRépertoire courant : \c"
pwd
}
echo -e "\nFin de l'environnement avec accolades...\n"
echo -e "\nRépertoire courant : \c"
pwd
echo -e "\nAffichage de la variable \"v\" : \c"
echo -e "$v"
echo
unset v
cd $HOME
echo -e "Appuyez sur une touche pour continuer..."
read touche
echo -e "###############################"
echo -e "# Utilisation des parenthèses #"
echo -e "###############################"
echo -e "\nRépertoire courant : \c"
pwd
echo -e "Initialisation de la variable \"v\" :\nv=\"abc\""
v="abc"
echo -e "\nDébut de l'environnement avec parenthèses...\n"
(
echo -e "Réaffectation de la variable \"v\" :\nv=\"123\""
v="123"
echo -e "\nAffichage de la variable \"v\" : \c"
echo -e "$v"
echo -e "\nChangement de répertoire : "
echo -e "cd /tmp"
cd /tmp
echo -e "\nRépertoire courant : \c"
pwd
)
echo -e "\nFin de l'environnement avec parenthèses...\n"
echo -e "\nRépertoire courant : \c"
pwd
echo -e "\nAffichage de la variable \"v\" : \c"
echo -e "$v"
echo
exit
;-))
Z'@+...che.JP : Zen, my Nuggets ! ;-)
Le savoir n'est bon que s'il est partagé.