De la documentation bash :
(list)
list est exécutée dans un environnement de sous-shell (voir ENVIRONNEMENT D'EXÉCUTION DE COMMANDE ci-dessous). Les affectations de variables et les commandes intégrées qui affectent l'environnement du shell ne restent pas en vigueur une fois la commande terminée. Le statut de retour est le statut de sortie de la liste.
En d'autres termes, vous vous assurez que tout ce qui se passe dans 'list' (comme a cd
) n'a aucun effet en dehors de (
et )
. La seule chose qui fuite est le code de sortie de la dernière commande ou avec set -e
la première commande qui génère une erreur (autre que quelques tels que if
, while
, etc.)
((expression))
L'expression est évaluée selon les règles décrites ci-dessous dans la section ÉVALUATION ARITHMÉTIQUE. Si la valeur de l'expression est non nulle, le statut de retour est 0; sinon, le statut de retour est 1. Cela correspond exactement à laisser "expression".
Ceci est une extension bash vous permettant de faire des maths. Ceci est un peu similaire à l'utilisation expr
sans toutes les limitations de expr
(comme avoir des espaces partout, s'échapper *
, etc.)
[[ expression ]]
Renvoie un statut de 0 ou 1 en fonction de l'évaluation de l'expression d'expression conditionnelle. Les expressions sont composées des primaires décrites ci-dessous dans la section EXPRESSIONS CONDITIONNELLES. Le fractionnement des mots et le développement du chemin ne sont pas effectués sur les mots entre [[et]]; Des extensions tilde, des paramètres et variables, des extensions arithmétiques, des substitutions de commandes, des substitutions de processus et des suppressions de devis sont effectuées. Les opérateurs conditionnels tels que -f doivent être non cotés pour être reconnus en tant que primaires.
Lorsqu'ils sont utilisés avec [[, les opérateurs <et> trient lexicographiquement en utilisant les paramètres régionaux actuels.
Ceci offre un test avancé permettant de comparer des chaînes, des nombres et des fichiers un peu comme des test
offres, mais plus puissants.
[ expr ]
Renvoie un statut de 0 (vrai) ou 1 (faux) en fonction de l'évaluation de l'expression conditionnelle expr. Chaque opérateur et oper et doit être un argument séparé. Les expressions sont composées des primaires décrites ci-dessus dans la section EXPRESSIONS CONDITIONNELLES. test n'accepte aucune option, ni n'accepte ni ignore un argument de - comme signifiant la fin des options.
[...]
Celui-ci appelle test
. En fait, jadis, [
était un lien symbolique vers test
. Cela fonctionne de la même manière et vous avez les mêmes limites. Puisqu’un binaire connaît le nom avec lequel il a été démarré, le programme de test peut analyser les paramètres jusqu’à ce qu’il trouve un paramètre ]
. Des trucs amusants sous Unix.
Notez que dans le cas de bash
, [
et test
sont des fonctions intégrées (comme mentionné dans un commentaire), les mêmes limitations s'appliquent à peu près.