Ich habe einen Code wie folgt:
%Vor% Leider wird die Variable ABC
nicht gesetzt.
Ich muss test_this
so aufrufen, da ich in meinem realen Programm einige Argumente dafür gebe, verschiedene komplizierte Operationen ausführt, die verschiedene andere Funktionen aufrufen, die auf dem Weg dieses oder jenes exportieren (basierend auf diesen Argumenten), und am Ende wird eine Ausgabe-Zeichenfolge zusammengestellt, um zurückgegeben zu werden. Es zweimal aufrufen, einmal, um Exporte und einmal für die Ausgabezeichenfolge zu erhalten, wäre schlecht.
Die Frage ist: Was kann ich tun, um sowohl die Exporte als auch die Ausgabezeichenfolge zu haben, aber nur durch einen Aufruf an eine solche Funktion?
Die Antwort, mit der ich zufrieden bin (danke paxdiablo):
%Vor% Ja, es wird > gesetzt. Leider wird es im Unterprozess festgelegt, der von $()
erstellt wird, um die Funktion test_this
auszuführen, und hat keine Auswirkungen auf den übergeordneten Prozess.
Und es zweimal aufrufen ist wahrscheinlich die einfachste Weise, es zu tun, etwas wie (mit einem "geheimen" Parameterwert, um Verhalten zu diktieren, wenn es anders sein muss):
%Vor%welche Ausgaben:
%Vor%Wenn Sie wirklich nur einmal aufrufen möchten, können Sie Folgendes tun:
%Vor%Verwenden Sie mit anderen Worten die gleiche Methode zum Extrahieren der Ausgabe wie für die anderen Informationen.