Als «subshell» getaggte Fragen

2
Setzen Klammern den Befehl wirklich in eine Unterschale?
Nach dem, was ich gelesen habe, sollte ein Befehl in Klammern in einer Subshell ausgeführt werden, ähnlich wie bei der Ausführung eines Skripts. Wenn dies zutrifft, wie wird die Variable x angezeigt, wenn x nicht exportiert wird? x=1 Das Ausführen (echo $x)in der Befehlszeile führt zu 1 Das Ausführen echo …

3
Ist $ () eine Subshell?
Ich verstehe die Subshell-Syntax als (<commands...>), ist $()nur eine Subshell, von der Sie Variablenwerte abrufen können? Hinweis: Dies gilt für Bash 4.4 basierend auf unterschiedlichen Formulierungen in der Dokumentation.
51 bash  subshell  syntax 

4
Warum beendet (exit 1) das Skript nicht?
Ich habe ein Skript, das nicht beendet wird, wenn ich es möchte. Ein Beispielskript mit demselben Fehler ist: #!/bin/bash function bla() { return 1 } bla || ( echo '1' ; exit 1 ) echo '2' Ich würde davon ausgehen, die Ausgabe zu sehen: :~$ ./test.sh 1 :~$ Aber ich …

3
Bash-Subshell-Erstellung mit geschweiften Klammern
Nach dieser , eine Liste von Befehlen zwischen geschweiften Klammern Platzieren bewirkt , dass die Liste in dem aktuellen Shell Kontext ausgeführt werden. Es wird keine Subshell erstellt . Verwenden Sie ps, um dies in Aktion zu sehen Dies ist die Prozesshierarchie für eine Prozesspipeline, die direkt in der Befehlszeile …
31 bash  subshell 

6
Shell-Skript aus einer Subshell beenden
Betrachten Sie dieses Snippet: stop () { echo "${1}" 1>&2 exit 1 } func () { if false; then echo "foo" else stop "something went wrong" fi } Normalerweise funcführt der Aufruf dazu, dass das Skript beendet wird. Dies ist das beabsichtigte Verhalten. Wenn es jedoch in einer Sub-Shell wie …

3
Wie kann ich erkennen, ob ich in einer Subshell bin?
Ich versuche, eine Funktion zu schreiben, die die Funktionalität des exiteingebauten Moduls ersetzt, um zu verhindern, dass ich das Terminal verlasse. Ich habe versucht, die SHLVLUmgebungsvariable zu verwenden, aber sie scheint sich innerhalb von Subshells nicht zu ändern: $ echo $SHLVL 1 $ ( echo $SHLVL ) 1 $ bash …
24 bash  shell  exit  subshell 

3
Regel zum Aufrufen von Subshell in Bash?
Ich scheine die Bash-Regel zum Erstellen einer Subshell falsch zu verstehen. Ich dachte, Klammern erzeugen immer eine Subshell, die als eigener Prozess abläuft. Dies scheint jedoch nicht der Fall zu sein. In Code-Snippet A (siehe unten) wird der zweite sleepBefehl nicht in einer separaten Shell ausgeführt (wie von pstreeeinem anderen …


2
Warum ist eine Variable in einer Subshell sichtbar?
Das Learning Bash Book erwähnt, dass eine Subshell nur Umgebungsvariablen und Dateideskriptoren usw. erbt und keine Variablen, die nicht exportiert werden: $ var=15 $ (echo $var) 15 $ ./file # this file include the same command echo $var $ Wie ich weiß, erstellt die Shell zwei Subshells für ()und für …
18 bash  shell  subshell 




5
Stateful-Bash-Funktion
Ich möchte eine Funktion in Bash implementieren, die bei jedem Aufruf die Anzahl erhöht (und zurückgibt). Leider scheint dies nicht trivial zu sein, da ich die Funktion in einer Subshell aufrufe und folglich die Variablen der übergeordneten Shell nicht ändern kann. Hier ist mein Versuch: PS_COUNT=0 ps_count_inc() { let PS_COUNT=PS_COUNT+1 …


3
Wird die Falle von einer Unterschale geerbt?
Ich habe folgendes Skript ausprobiert: #!/bin/bash trap 'echo "touching a file" && touch $FILE' EXIT foo1(){ echo "foo1" } foo(){ echo "foo" export FILE=${FILE:-/tmp/file1} } (foo1) foo Die Ausgabe für das obige Skript war: [root@usr1 my_tests]# ./test.sh foo1 foo touching a file Ich hatte jedoch damit foo1gerechnet, dass die Falle …
14 shell  trap  subshell 

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.