GNU/Linux >> Tutoriels Linux >  >> Linux

Parenthèse unique dans l'affectation de variables Bash ?

Je m'interrogeais sur les parenthèses simples dans bash. Je sais qu'ils sont utilisés pour exécuter des commandes dans des sous-shells et qu'ils sont utilisés pour créer des tableaux, mais sont-ils utilisés pour autre chose ?

Une chose qui a attiré mon attention est que lorsque vous utilisez l'affectation de variable in, comme

var=(hello)
echo $var    # hello

bash ne génère pas d'erreur ou quoi que ce soit, et la sortie est la même que si

var=hello

Ces deux définitions de variables sont-elles identiques ou y a-t-il une différence ?

Réponse acceptée :

Dans votre cas, parenthèse () sont utilisés comme définition de tableau, par exemple

a=(one two three)   # array definition
echo "${a}"         # print first element of array a
echo "${a[0]}"      # print first element of array a
echo "${a[1]}"      # print *second* element of array a
echo "${#a[@]}"     # print number of elements in array a

Si vous mettez une seule variable dans un tableau, vous avez juste un tableau avec un seul élément.

Pour répondre à votre autre question, si les parenthèses sont également utilisées pour autre chose :il existe de nombreuses situations dans bash qu'en combinaison avec d'autres caractères, ils peuvent être utilisés comme :

  • substitution de commande :$()
  • substitution de processus :<() et >()
  • sous-shell :(command)
  • évaluation arithmétique :(())
  • définition de la fonction :fun () { echo x; }
  • liste de modèles dans glob :?() , *() , +() , @() , !() (uniquement si extglob est activé )

Linux
  1. Bash Dynamic (variable) Noms des variables ?

  2. `declare -a A` crée-t-il un tableau vide `a` dans Bash ?

  3. Parenthèse dans Expr Arithmétique :3 * (2 + 1) ?

  4. Linux bash :affectation de plusieurs variables

  5. Alias ​​avec variable dans bash

Variable d'exportation bash

Tableaux bash

Tableau associatif dans Bash

Comment définir une variable d'environnement dans Bash

Bash si sur une seule ligne

bash - correspondance insensible à la casse de la variable