Bases de Linux et de la ligne de commande
$ X=1
$ bash -c 'echo "[$X]"'
$ export X
$ bash -c 'echo "[$X]"'Si l'on exécute dans l'ordre les commandes ci-dessus, quelle est la combinaison des sorties des deux commandes bash -c ?
- A[] et [1]
- B[1] et [1]
- C[] et []
Afficher la réponse et l'explication
Réponse : A. [] et [1]
Une variable seulement affectée, comme dans « X=1 », est une variable de shell : elle n'est utilisable que dans ce shell et n'est pas transmise aux processus enfants qu'il lance (ici, un nouveau bash). Avec export, elle devient une variable d'environnement, et sa valeur est héritée par les processus enfants lancés ensuite. La première sortie est donc [], et la deuxième [1]. Comme on utilise des guillemets simples, $X est développé non pas dans le shell parent, mais dans le bash enfant.
Continuer : 9 autres questions sur Bases de Linux et de la ligne de commande