Ich bin verwirrt, was Fehlercode der Befehl zurückkehrt, wenn eine variable Zuordnung eindeutig und mit dem Befehl Substitution Ausführung:Bash: Exit-Code von Variablenzuweisung zu befehlen Substitution
a=$(false); echo $?
Es gibt 1
, die mich denken lassen Diese Variablenzuweisung wird nicht ausgeführt oder erzeugt bei der letzten einen neuen Fehlercode. Aber wenn ich versucht, dies:
false; a=""; echo $?
Es 0
gibt, offensichtlich ist es das, was a=""
zurückkehrt und sie überschreiben 1
zurück von false
.
Ich möchte wissen, warum dies passiert, gibt es eine Besonderheit in der Variablenzuweisung, die sich von anderen normalen Befehlen unterscheidet? Oder nur weil a=$(false)
als ein einziger Befehl betrachtet wird und nur Befehlsersatzteil sinnvoll ist?
- UPDATE -
Vielen Dank allen, von den Antworten und Kommentare ich den Punkt bekam „Wenn Sie eine Variable zuweisen mit dem Befehl Substitution, ist der Exit-Status der Status des Befehls“ (von @Barmar), diese Erklärung ist hervorragend klar und leicht zu verstehen, aber sprechen nicht genau genug für Programmierer, ich möchte die Bezugnahme auf diesen Punkt von Behörden wie TLDP oder GNU man page sehen, bitte helfen Sie mir, es zu finden raus, danke nochmal!
TLDP ist * nicht * eine maßgebliche Quelle - das ABS ist geradezu berüchtigt dafür, schlechte Praktiken in bash zu zeigen, so wie w3schools in der JavaScript-Welt. –