diff --git a/src/parallel b/src/parallel index 19d47023..6de56b50 100755 --- a/src/parallel +++ b/src/parallel @@ -952,6 +952,8 @@ sub parse_env_var { @vars = grep { defined($ENV{$_}) } @vars; my @qcsh = map { my $a=$_; "setenv $a " . env_quote($ENV{$a}) } @vars; my @qbash = map { my $a=$_; "export $a=" . env_quote($ENV{$a}) } @vars; + my @bash_functions = grep { substr($ENV{$_},0,4) eq "() {" } @vars; + push @qbash, map { my $a=$_; "eval $a\"\$$a\"" } @bash_functions; # Create lines like: # echo $SHELL | grep "/t\\{0,1\\}csh" >/dev/null && setenv V1 val1 && setenv V2 val2 || export V1=val1 && export V2=val2 ; echo "$V1$V2"