2013-04-03T07:58:45
GwenDragonIn $? ist der Wert eines Exit.
gtpath=perl ~/code/perl/project/name/script.pl "$@"; retval=$?;
in retval ist es dann drin.
in gtpath ist das was das Perl-Programm nach STDOUT schreibt.
So wie der Befehl dasteht, ist
gtpath während des Aufrufes von
script.pl auf den String
perl gesetzt und behält ansonsten den Wert, den es unabhängig von diesem Befehl hatte.
retval wird auf den Rückgabewert des Skriptaufrufes gesetzt.
Wollte man die Ausgabe des Skriptes in
gtpath einfangen, so müsste der Befehl zum Beispiel mit
gtpath=$(perl ~/code/perl/project/name/script.pl "$@")
oder
gtpath=`perl ~/code/perl/project/name/script.pl "$@"`
beginnen.
When C++ is your hammer, every problem looks like your thumb.