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 ?

  1. A[] et [1]
  2. B[1] et [1]
  3. 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.

S'entraîner sur ce thème Retour au thème

Autres questions sur Bases de Linux et de la ligne de commande

  1. Quelle est la fonction principale d'un système de gestion de paquets de Linux (apt sur les systèmes dérivés de Debian, dnf sur les systèmes dérivés de Red Hat, etc.) ?
  2. Sur un système Linux qui utilise systemd, quelle est la différence entre « systemctl start license.service » et « systemctl enable license.service » pour le service license.service ?
  3. La ligne « 30 2 * * 1 /home/alice/backup.sh » a été enregistrée dans cron. Quand backup.sh est-il exécuté ?
  4. Un serveur Linux avertit que l'espace disque libre devient insuffisant. Quelle est la bonne combinaison d'une commande qui vérifie l'espace utilisé et l'espace libre de chaque système de fichiers, et d'une commande qui totalise l'espace occupé par les fichiers d'un répertoire ?
  5. On a créé avec ssh-keygen, sur son propre PC, une paire de clés pour l'authentification par clé publique, et on veut se connecter au serveur server1 avec ssh sans mot de passe. Quelle est la bonne façon de placer les clés ?