Flux rss
Collection CommentCaMarche.net

Le regroupement de commandes

Publié par jipicy, dernière mise à jour le dimanche 20 mai 2007 à 17:50:59 par jipicy

Accolades et parenthèses

Introduction


Les accolades et les parenthèses permettent le regroupement de commandes.
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 sous-shell, appelé aussi shell fils (fork).

Syntaxe

  • Exécution par le shell courant
    • {commande; commande; commande;}
  • Exécution par un sous-shell
    • (commande; commande; commande;...)

Notes :
  • Un séparateur ";" (point virgule) est nécessaire devant l'accolade fermante si celle-ci se trouve sur la même ligne que la dernière commande. Ce qui n'est pas le cas pour la parenthèse.
  • Le séparateur de commande peut être le "Saut de ligne" (LF pour Line Feed)
  • Le code retour d'un bloc de commande est celui de la dernière commande exécutée.

Utilisation


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

Exemple


Voilà un exemple qui j'espère 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
Les commandes AS/400 Les commandes de l’AS/400 Il existe environ un millier de commandes dans l'OS/400, regroupées sous le nom de « Langage de Contrôle ». Un utilisateur pourra les lancer depuis la ligne Option ou Commande située au bas de l'écran, quand celle-ci est... www.commentcamarche.net/contents/as400/as400-commandes.php3
[Script de commande] Syntaxe pr 2 commandes (Résolu) Bjr, J'utilise actuellement 2 scripts de commande avec la commande netsh, le premier pour l'adresse IP et le 2ème pour le DNS. Je souhaiterais regrouper ces 2 commandes en un script. Est-ce possible ? Si oui, quelle est la syntaxe ? Merci... www.commentcamarche.net/forum/affich-2111815-script-de-commande-syntaxe-pr-2-commandes
Shell, concatener 4 fichiers. (Résolu) Bonjour, J'ai un petit 'souci', je dois concatener ou regrouper plutot 4 fichier en un seul a l'aide d'une commande Shell. Pour etre plus clair, mon programme crée 4 fichiers totalement different, et a une option... www.commentcamarche.net/forum/affich-8236621-shell-concatener-4-fichiers
Commandes IP relatives aux réseaux sous WindowsIl est parfois très utile de connaître les commandes IP, pour analyser voire configurer ses réseaux TCP/IP. Voici la liste de ces commandes à utiliser dans une fenêtre DOS... www.commentcamarche.net/faq/sujet-9324-commandes-ip-relatives-aux-reseaux-sous-windows
[MS-Dos] Commandes DOS de baseCes commandes sont des commandes de base que vous pouvez utiliser dans un prompt DOS, par exemple, sur une disquette de démarrage. Pour obtenir plus d'informations sur ces commandes, tapez (dans un prompt DOS), le nom de votre commande suivi de /?... www.commentcamarche.net/faq/sujet-2187-ms-dos-commandes-dos-de-base
[Windows] Changer l'adresse IP en ligne de commande avec NetshSous les systèmes Windows 2000/Windows XP et supérieurs, il est possible de modifier les paramètres TCP/IP à partir d'une simple ligne de commande, afin par exemple d'automatiser cette tâche grâce à un script. Ceci est possible grâce à l'outil... www.commentcamarche.net/faq/sujet-2737-windows-changer-l-adresse-ip-en-ligne-de-commande-avec-netsh
Trie et calcul sur ligne de fichier (Résolu)Bonjour, Je suis à la recherche d'une commande ou d'un script me permettant de calculer et de regrouper le nombre de lignes identiques dans un même fichier et ensuite de les trier de maniére décroissant. Pour information je travail sur un... www.commentcamarche.net/forum/affich-4083966-trie-et-calcul-sur-ligne-de-fichier
Création d'une api sous linux embarqué (Résolu)Bonjour à tous, Je dois réaliser une api pour commander un daemon sous linux 2.2 embarqué. Je pensais réaliser une bibliothèque dynamique .so qui regrouperait l'ensemble des commandes nécessaires à la communication de l'utilisateur avec ce... www.commentcamarche.net/forum/affich-2731269-creation-d-une-api-sous-linux-embarque
Cherche liste commande MS-DOS (Résolu)Bonjour, je cherche la liste de toutes les commandes MS-DOS avec des explications qui sont explicites (et en français..). l'aide intégré à la CMD résume juste la caractéristique des commandes... merci d'avance. Entre ce que je pense, ce que... www.commentcamarche.net/forum/affich-4038995-cherche-liste-commande-ms-dos
Télécharger Free commanderFree Commander est une alternative pour remplacer le gestionnaire de fichier ou explorateur de Windows. Le programme est facile d'utilisation et vous aidera pour vos tâches quotidiennes. Vous trouverez toutes les fonctions nécessaires à la gestion de... www.commentcamarche.net/telecharger/telecharger-34055483-free-commander
Pizza Hut lance un service de commande par Internet(Paris - Relax news) - Commander un repas Pizza Hut via le Net est désormais possible grâce au nouveau service lancé par la marque. Pour l'heure, huit sites en Ile-de-France et en Province proposent le service. D'ici la fin de l'année, tous les points... www.commentcamarche.net/actualites/pizza-hut-lance-un-service-de-commande-par-internet-5847344-actualite.php3
Commandes LinuxTableau des principales commandes Linux Commande Description équivalent DOS ls liste le contenu d'un répertoire dir cd change de répertoire cd cd .. répertoire parent cd.. mkdir crée un nouveau... www.commentcamarche.net/contents/linux/lincomm.php3
Commandes UNIXTableau des principales commandes UNIX Commande Unix Description Options ls liste le contenu d'un répertoire -a Affiche tous les fichiers, y compris les fichiers cachés ... www.commentcamarche.net/contents/unix/unixcomm.php3
Attaques par injection de commandes SQLInjection de commandes SQL Les attaques par injection de commandes SQL sont des attaques visant les sites web s'appuyant sur des bases de données relationnelles. Dans ce type de sites, des paramètres sont passés à la base de données sous forme... www.commentcamarche.net/contents/attaques/injection-commandes-sql.php3