Ich lese ein Linux-Shell-Skriptbuch und habe die folgende Warnung gefunden:
"Durch die Befehlssubstitution wird eine sogenannte Subshell zum Ausführen des eingeschlossenen Befehls erstellt. Eine Subshell ist eine separate untergeordnete Shell, die von der Shell generiert wird, in der das Skript ausgeführt wird. Aus diesem Grund stehen dem Subshell-Befehl keine Variablen zur Verfügung, die Sie im Skript erstellen."
Ich habe versucht, eine Variable in der CLI meiner aktuellen Bash-Shell zu erstellen und dann die Subshell einzugeben, um zu überprüfen, ob ich sie auf dem Bildschirm drucken kann. Also ja, ich kann es nicht tun, scheint dem obigen Zitat zu entsprechen. Ich habe jedoch das folgende Skript mit Befehlsersetzung ausgeführt:
#!/bin/bash
var=5.5555
ans=$(echo $var)
echo $ans
Und das Ergebnis ist:
5.5555
Wie ich verstanden habe, sollte der Wert von var nicht gedruckt werden, da die Subshell nicht in der Lage sein sollte, ihn zu "sehen". Warum passiert das?