En lisant comment installer grub
, je suis tombé sur un article affirmant que je devais utiliser l'une des deux syntaxes suivantes,
echo \(hd0,0\) >> /boot/grub/grub.conf
ou
echo '(hd0,0)' >> /boot/grub/grub.conf
parce que, sur la ligne de commande, les parenthèses sont interprétées de manière particulière. Quelle est la particularité des parenthèses? Comment sont-ils interprétés?
$()
et()
?$()
est une substitution de commande, la()
est un sous-shell. Les deux exécutent des commandes, la différence est ce qui arrive à la sortie. Les noms sont beaucoup plus faciles à rechercher que les symboles. Voir aussi unix.stackexchange.com/q/213530/9537Une liste de commandes intégrée entre parenthèses est exécutée en tant que sous-shell.
Les variables d'un sous-shell ne sont pas visibles en dehors du bloc de code du sous-shell. Ils ne sont pas accessibles au processus parent, au shell qui a lancé le sous-shell. Ce sont en fait des variables locales.
Voir Linuxtopia - Chapitre 20. Sous-shell
la source