Gibt es eine Subshell, die erstellt wird, wenn ich "sh -c" command "ausführe, eine neue Shell oder keine davon?

In Bash, wenn ich den folgenden Befehl ausführen:

sh -c "command"

ist dort eine Unterschale erstellt und dann diecommand wird ausgeführt?

Meine Vermutung ist, dass der Befehl in der aktuellen Shell ausgeführt wird, aber ich bin nicht sicher. Diese Vermutung kommt von der Tatsache, dass ich bereits mit den folgenden Befehlen getestet habe:

echo $BASHPID, $BASH_SUBSHELL

un

sh -c "echo $BASHPID, $BASH_SUBSHELL"

und die Ergebnisse sind die gleichen. Dies könnte jedoch etwas irreführend sein, wie mir jemand sagte, da die Variablen möglicherweise ersetzt werden, bevor der Befehl ausgeführt wird. Ist das die Wahrheit?

Antworten auf die Frage(7)

Ihre Antwort auf die Frage