From 9e5433e3e5ba00c43f7591c46dc0793621e513df Mon Sep 17 00:00:00 2001 From: Ole Tange Date: Sun, 26 Nov 2017 16:18:55 +0100 Subject: [PATCH] parset/env_parset: Support for ash, dash, ksh, sh, zsh. --- src/env_parallel | 2 +- src/env_parallel.ash | 77 +- src/env_parallel.bash | 22 +- src/env_parallel.dash | 77 +- src/env_parallel.ksh | 74 + src/env_parallel.sh | 77 +- src/env_parallel.zsh | 72 + src/niceload | 2 +- src/parallel | 2 +- src/parset.pod | 85 +- testsuite/tests-to-run/parallel-local-0.3s.sh | 21 +- testsuite/tests-to-run/parallel-local-ssh7.sh | 666 +++++-- testsuite/wanted-results/parallel-local-0.3s | 18 + testsuite/wanted-results/parallel-local-ssh7 | 1563 ++++++++++------- 14 files changed, 1976 insertions(+), 782 deletions(-) diff --git a/src/env_parallel b/src/env_parallel index 122a25aa..c2f5ff28 100755 --- a/src/env_parallel +++ b/src/env_parallel @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash # Copyright (C) 2016,2017 # Ole Tange and Free Software Foundation, Inc. diff --git a/src/env_parallel.ash b/src/env_parallel.ash index 0587ef06..e6fa231b 100755 --- a/src/env_parallel.ash +++ b/src/env_parallel.ash @@ -29,10 +29,10 @@ env_parallel() { # based on env_parallel.sh _names_of_ALIASES() { - alias | perl -pe 's/=.*//' + alias | perl -pe 's/^alias //;s/=.*//' } _bodies_of_ALIASES() { - alias "$@" | perl -pe 's/^/alias /' + alias "$@" | perl -pe 's/^(alias )?/alias /' } _names_of_maybe_FUNCTIONS() { set | perl -ne '/^(\S+)\(\)\{$/ and print "$1\n"' @@ -167,6 +167,8 @@ env_parallel() { unset _list_alias_BODIES unset _list_variable_VALUES unset _list_function_BODIES + unset _grep_REGEXP + unset _ignore_UNDERSCORE # Test if environment is too big if `which true` >/dev/null ; then `which parallel` "$@"; @@ -184,3 +186,74 @@ env_parallel() { return 255 fi } + +parset() { + _parset_parallel_prg=parallel + _parset_main "$@" +} + +env_parset() { + _parset_parallel_prg=env_parallel + _parset_main "$@" +} + +_parset_main() { + # If $1 contains ',' or space: + # Split on , to get the destination variable names + # If $1 is a single destination variable name: + # Treat it as the name of an array + # + # # Create array named myvar + # parset myvar echo ::: {1..10} + # echo ${myvar[5]} + # + # # Put output into $var_a $var_b $var_c + # varnames=(var_a var_b var_c) + # parset "${varnames[*]}" echo ::: {1..3} + # echo $var_c + # + # # Put output into $var_a4 $var_b4 $var_c4 + # parset "var_a4 var_b4 var_c4" echo ::: {1..3} + # echo $var_c4 + + _parset_name="$1" + if [ "$_parset_name" = "" ] ; then + echo parset: Error: No destination variable given. >&2 + echo parset: Error: Try: >&2 + echo parset: Error: ' ' parset myarray echo ::: foo bar >&2 + return 255 + fi + shift + echo "$_parset_name" | + perl -ne 'chomp;for (split /[, ]/) { + # Allow: var_32 var[3] + if(not /^[a-zA-Z_][a-zA-Z_0-9]*(\[\d+\])?$/) { + print STDERR "parset: Error: $_ is an invalid variable name.\n"; + print STDERR "parset: Error: Variable names must be letter followed by letters or digits.\n"; + $exitval = 255; + } + } + exit $exitval; + ' || return 255 + if echo "$_parset_name" | grep -E ',| ' >/dev/null ; then + # $1 contains , or space + # Split on , or space to get the names + eval "$( + # Compute results into files + $_parset_parallel_prg --files -k "$@" | + # var1=`cat tmpfile1; rm tmpfile1` + # var2=`cat tmpfile2; rm tmpfile2` + parallel -q echo {2}='`cat {1}; rm {1}`' :::: - :::+ $( + echo "$_parset_name" | + perl -pe 's/,/ /g' + ) + )" + else + # $1 contains no space or , + # => $1 is the name of the array to put data into + # Supported in: bash + # Arrays do not work in: ash dash + eval $_parset_name="( $( $_parset_parallel_prg --files -k "$@" | + perl -pe 'chop;$_="\"\`cat $_; rm $_\`\" "' ) )" + fi +} diff --git a/src/env_parallel.bash b/src/env_parallel.bash index 6751e437..c0ff69d0 100755 --- a/src/env_parallel.bash +++ b/src/env_parallel.bash @@ -164,6 +164,8 @@ env_parallel() { unset _list_alias_BODIES unset _list_variable_VALUES unset _list_function_BODIES + unset _grep_REGEXP + unset _ignore_UNDERSCORE # Test if environment is too big if [ "`which true`" == "$_which_true" ] ; then `which parallel` "$@"; @@ -183,6 +185,16 @@ env_parallel() { } parset() { + _parset_parallel_prg=parallel + _parset_main "$@" +} + +env_parset() { + _parset_parallel_prg=env_parallel + _parset_main "$@" +} + +_parset_main() { # If $1 contains ',' or space: # Split on , to get the destination variable names # If $1 is a single destination variable name: @@ -202,13 +214,13 @@ parset() { # echo $var_c4 _parset_name="$1" - shift - if [ "$_parset_name" == "" ] ; then + if [ "$_parset_name" = "" ] ; then echo parset: Error: No destination variable given. >&2 echo parset: Error: Try: >&2 echo parset: Error: ' ' parset myarray echo ::: foo bar >&2 return 255 fi + shift echo "$_parset_name" | perl -ne 'chomp;for (split /[, ]/) { # Allow: var_32 var[3] @@ -225,7 +237,7 @@ parset() { # Split on , or space to get the names eval "$( # Compute results into files - parallel --files -k "$@" | + $_parset_parallel_prg --files -k "$@" | # var1=`cat tmpfile1; rm tmpfile1` # var2=`cat tmpfile2; rm tmpfile2` parallel -q echo {2}='`cat {1}; rm {1}`' :::: - :::+ $( @@ -236,7 +248,9 @@ parset() { else # $1 contains no space or , # => $1 is the name of the array to put data into - eval $_parset_name="( $( parallel --files -k "$@" | + # Supported in: bash + # Arrays do not work in: ash dash + eval $_parset_name="( $( $_parset_parallel_prg --files -k "$@" | perl -pe 'chop;$_="\"\`cat $_; rm $_\`\" "' ) )" fi } diff --git a/src/env_parallel.dash b/src/env_parallel.dash index 3594b477..93f25c60 100755 --- a/src/env_parallel.dash +++ b/src/env_parallel.dash @@ -29,10 +29,10 @@ env_parallel() { # based on env_parallel.sh _names_of_ALIASES() { - alias | perl -pe 's/=.*//' + alias | perl -pe 's/^alias //;s/=.*//' } _bodies_of_ALIASES() { - alias "$@" | perl -pe 's/^/alias /' + alias "$@" | perl -pe 's/^(alias )?/alias /' } _names_of_maybe_FUNCTIONS() { set | perl -ne '/^(\S+)\(\)\{$/ and print "$1\n"' @@ -167,6 +167,8 @@ env_parallel() { unset _list_alias_BODIES unset _list_variable_VALUES unset _list_function_BODIES + unset _grep_REGEXP + unset _ignore_UNDERSCORE # Test if environment is too big if `which true` >/dev/null ; then `which parallel` "$@"; @@ -184,3 +186,74 @@ env_parallel() { return 255 fi } + +parset() { + _parset_parallel_prg=parallel + _parset_main "$@" +} + +env_parset() { + _parset_parallel_prg=env_parallel + _parset_main "$@" +} + +_parset_main() { + # If $1 contains ',' or space: + # Split on , to get the destination variable names + # If $1 is a single destination variable name: + # Treat it as the name of an array + # + # # Create array named myvar + # parset myvar echo ::: {1..10} + # echo ${myvar[5]} + # + # # Put output into $var_a $var_b $var_c + # varnames=(var_a var_b var_c) + # parset "${varnames[*]}" echo ::: {1..3} + # echo $var_c + # + # # Put output into $var_a4 $var_b4 $var_c4 + # parset "var_a4 var_b4 var_c4" echo ::: {1..3} + # echo $var_c4 + + _parset_name="$1" + if [ "$_parset_name" = "" ] ; then + echo parset: Error: No destination variable given. >&2 + echo parset: Error: Try: >&2 + echo parset: Error: ' ' parset myarray echo ::: foo bar >&2 + return 255 + fi + shift + echo "$_parset_name" | + perl -ne 'chomp;for (split /[, ]/) { + # Allow: var_32 var[3] + if(not /^[a-zA-Z_][a-zA-Z_0-9]*(\[\d+\])?$/) { + print STDERR "parset: Error: $_ is an invalid variable name.\n"; + print STDERR "parset: Error: Variable names must be letter followed by letters or digits.\n"; + $exitval = 255; + } + } + exit $exitval; + ' || return 255 + if echo "$_parset_name" | grep -E ',| ' >/dev/null ; then + # $1 contains , or space + # Split on , or space to get the names + eval "$( + # Compute results into files + $_parset_parallel_prg --files -k "$@" | + # var1=`cat tmpfile1; rm tmpfile1` + # var2=`cat tmpfile2; rm tmpfile2` + parallel -q echo {2}='`cat {1}; rm {1}`' :::: - :::+ $( + echo "$_parset_name" | + perl -pe 's/,/ /g' + ) + )" + else + # $1 contains no space or , + # => $1 is the name of the array to put data into + # Supported in: bash + # Arrays do not work in: ash dash + eval $_parset_name="( $( $_parset_parallel_prg --files -k "$@" | + perl -pe 'chop;$_="\"\`cat $_; rm $_\`\" "' ) )" + fi +} diff --git a/src/env_parallel.ksh b/src/env_parallel.ksh index 7901906f..3b32c86c 100755 --- a/src/env_parallel.ksh +++ b/src/env_parallel.ksh @@ -157,6 +157,8 @@ env_parallel() { unset _list_alias_BODIES unset _list_variable_VALUES unset _list_function_BODIES + unset _grep_REGEXP + unset _ignore_UNDERSCORE # Test if environment is too big if `which true` >/dev/null ; then `which parallel` "$@"; @@ -174,3 +176,75 @@ env_parallel() { return 255 fi } + +parset() { + _parset_parallel_prg=parallel + _parset_main "$@" +} + +env_parset() { + _parset_parallel_prg=env_parallel + _parset_main "$@" +} + +_parset_main() { + # If $1 contains ',' or space: + # Split on , to get the destination variable names + # If $1 is a single destination variable name: + # Treat it as the name of an array + # + # # Create array named myvar + # parset myvar echo ::: {1..10} + # echo ${myvar[5]} + # + # # Put output into $var_a $var_b $var_c + # varnames=(var_a var_b var_c) + # parset "${varnames[*]}" echo ::: {1..3} + # echo $var_c + # + # # Put output into $var_a4 $var_b4 $var_c4 + # parset "var_a4 var_b4 var_c4" echo ::: {1..3} + # echo $var_c4 + + _parset_name="$1" + if [ "$_parset_name" = "" ] ; then + echo parset: Error: No destination variable given. >&2 + echo parset: Error: Try: >&2 + echo parset: Error: ' ' parset myarray echo ::: foo bar >&2 + return 255 + fi + shift + echo "$_parset_name" | + perl -ne 'chomp;for (split /[, ]/) { + # Allow: var_32 var[3] + if(not /^[a-zA-Z_][a-zA-Z_0-9]*(\[\d+\])?$/) { + print STDERR "parset: Error: $_ is an invalid variable name.\n"; + print STDERR "parset: Error: Variable names must be letter followed by letters or digits.\n"; + $exitval = 255; + } + } + exit $exitval; + ' || return 255 + # Internal grep gives wrong exit code in Ksh + if echo "$_parset_name" | \grep -E ',| ' >/dev/null ; then + # $1 contains , or space + # Split on , or space to get the names + eval "$( + # Compute results into files + $_parset_parallel_prg --files -k "$@" | + # var1=`cat tmpfile1; rm tmpfile1` + # var2=`cat tmpfile2; rm tmpfile2` + parallel -q echo {2}='`cat {1}; rm {1}`' :::: - :::+ $( + echo "$_parset_name" | + perl -pe 's/,/ /g' + ) + )" + else + # $1 contains no space or , + # => $1 is the name of the array to put data into + # Supported in: bash + # Arrays do not work in: ash dash + eval $_parset_name="( $( $_parset_parallel_prg --files -k "$@" | + perl -pe 'chop;$_="\"\`cat $_; rm $_\`\" "' ) )" + fi +} diff --git a/src/env_parallel.sh b/src/env_parallel.sh index 0c9bb377..bfdd0cba 100755 --- a/src/env_parallel.sh +++ b/src/env_parallel.sh @@ -29,10 +29,10 @@ env_parallel() { # env_parallel.sh _names_of_ALIASES() { - alias | perl -pe 's/=.*//' + alias | perl -pe 's/^alias //;s/=.*//' } _bodies_of_ALIASES() { - alias "$@" | perl -pe 's/^/alias /' + alias "$@" | perl -pe 's/^(alias )?/alias /' } _names_of_maybe_FUNCTIONS() { set | perl -ne '/^(\S+)\(\)\{$/ and print "$1\n"' @@ -167,6 +167,8 @@ env_parallel() { unset _list_alias_BODIES unset _list_variable_VALUES unset _list_function_BODIES + unset _grep_REGEXP + unset _ignore_UNDERSCORE # Test if environment is too big if `which true` >/dev/null ; then `which parallel` "$@"; @@ -184,3 +186,74 @@ env_parallel() { return 255 fi } + +parset() { + _parset_parallel_prg=parallel + _parset_main "$@" +} + +env_parset() { + _parset_parallel_prg=env_parallel + _parset_main "$@" +} + +_parset_main() { + # If $1 contains ',' or space: + # Split on , to get the destination variable names + # If $1 is a single destination variable name: + # Treat it as the name of an array + # + # # Create array named myvar + # parset myvar echo ::: {1..10} + # echo ${myvar[5]} + # + # # Put output into $var_a $var_b $var_c + # varnames=(var_a var_b var_c) + # parset "${varnames[*]}" echo ::: {1..3} + # echo $var_c + # + # # Put output into $var_a4 $var_b4 $var_c4 + # parset "var_a4 var_b4 var_c4" echo ::: {1..3} + # echo $var_c4 + + _parset_name="$1" + if [ "$_parset_name" = "" ] ; then + echo parset: Error: No destination variable given. >&2 + echo parset: Error: Try: >&2 + echo parset: Error: ' ' parset myarray echo ::: foo bar >&2 + return 255 + fi + shift + echo "$_parset_name" | + perl -ne 'chomp;for (split /[, ]/) { + # Allow: var_32 var[3] + if(not /^[a-zA-Z_][a-zA-Z_0-9]*(\[\d+\])?$/) { + print STDERR "parset: Error: $_ is an invalid variable name.\n"; + print STDERR "parset: Error: Variable names must be letter followed by letters or digits.\n"; + $exitval = 255; + } + } + exit $exitval; + ' || return 255 + if echo "$_parset_name" | grep -E ',| ' >/dev/null ; then + # $1 contains , or space + # Split on , or space to get the names + eval "$( + # Compute results into files + $_parset_parallel_prg --files -k "$@" | + # var1=`cat tmpfile1; rm tmpfile1` + # var2=`cat tmpfile2; rm tmpfile2` + parallel -q echo {2}='`cat {1}; rm {1}`' :::: - :::+ $( + echo "$_parset_name" | + perl -pe 's/,/ /g' + ) + )" + else + # $1 contains no space or , + # => $1 is the name of the array to put data into + # Supported in: bash + # Arrays do not work in: ash dash + eval $_parset_name="( $( $_parset_parallel_prg --files -k "$@" | + perl -pe 'chop;$_="\"\`cat $_; rm $_\`\" "' ) )" + fi +} diff --git a/src/env_parallel.zsh b/src/env_parallel.zsh index ee323e63..00931f8c 100755 --- a/src/env_parallel.zsh +++ b/src/env_parallel.zsh @@ -162,3 +162,75 @@ env_parallel() { unset PARALLEL_ENV; return $_parallel_exit_CODE } + +parset() { + _parset_parallel_prg=parallel + _parset_main "$@" +} + +env_parset() { + _parset_parallel_prg=env_parallel + _parset_main "$@" +} + +_parset_main() { + # If $1 contains ',' or space: + # Split on , to get the destination variable names + # If $1 is a single destination variable name: + # Treat it as the name of an array + # + # # Create array named myvar + # parset myvar echo ::: {1..10} + # echo ${myvar[5]} + # + # # Put output into $var_a $var_b $var_c + # varnames=(var_a var_b var_c) + # parset "${varnames[*]}" echo ::: {1..3} + # echo $var_c + # + # # Put output into $var_a4 $var_b4 $var_c4 + # parset "var_a4 var_b4 var_c4" echo ::: {1..3} + # echo $var_c4 + + _parset_name="$1" + if [ "$_parset_name" = "" ] ; then + echo parset: Error: No destination variable given. >&2 + echo parset: Error: Try: >&2 + echo parset: Error: ' ' parset myarray echo ::: foo bar >&2 + return 255 + fi + shift + echo "$_parset_name" | + perl -ne 'chomp;for (split /[, ]/) { + # Allow: var_32 var[3] + if(not /^[a-zA-Z_][a-zA-Z_0-9]*(\[\d+\])?$/) { + print STDERR "parset: Error: $_ is an invalid variable name.\n"; + print STDERR "parset: Error: Variable names must be letter followed by letters or digits.\n"; + $exitval = 255; + } + } + exit $exitval; + ' || return 255 + if echo "$_parset_name" | grep -E ',| ' >/dev/null ; then + # $1 contains , or space + # Split on , or space to get the names + eval "$( + # Compute results into files + $_parset_parallel_prg --files -k "$@" | + # var1=`cat tmpfile1; rm tmpfile1` + # var2=`cat tmpfile2; rm tmpfile2` + parallel -q echo {2}='`cat {1}; rm {1}`' :::: - :::+ $( + echo "$_parset_name" | + perl -pe 's/,/ /g' + ) + )" + else + # $1 contains no space or , + # => $1 is the name of the array to put data into + # Supported in: bash + # Arrays do not work in: ash dash + eval $_parset_name="( $( $_parset_parallel_prg --files -k "$@" | + perl -pe 'chop;$_="\"\`cat $_; rm $_\`\" "' ) )" + fi +} + diff --git a/src/niceload b/src/niceload index fc129d9e..31370b04 100755 --- a/src/niceload +++ b/src/niceload @@ -24,7 +24,7 @@ use strict; use Getopt::Long; $Global::progname="niceload"; -$Global::version = 20171122; +$Global::version = 20171123; Getopt::Long::Configure("bundling","require_order"); get_options_from_array(\@ARGV) || die_usage(); if($opt::version) { diff --git a/src/parallel b/src/parallel index a6f6604e..920cf2f8 100755 --- a/src/parallel +++ b/src/parallel @@ -1383,7 +1383,7 @@ sub check_invalid_option_combinations { sub init_globals { # Defaults: - $Global::version = 20171122; + $Global::version = 20171123; $Global::progname = 'parallel'; $Global::infinity = 2**31; $Global::debug = 0; diff --git a/src/parset.pod b/src/parset.pod index 39a2dcb3..984f4fd4 100644 --- a/src/parset.pod +++ b/src/parset.pod @@ -11,13 +11,18 @@ parset - set shell variables in parallel B I [options for GNU Parallel] +B I [options for GNU Parallel] (alpha testing) =head1 DESCRIPTION B is a shell function that puts the output from GNU B into shell variables. -The B function is defined as part of B. +B is a shell function that puts the output from +B into shell variables. + +The B and B functions are defined as part of +B. If I is a single variable name, this will be treated as the destination variable and made into an array. @@ -25,10 +30,6 @@ the destination variable and made into an array. If I contains multiple names separated by ',' or space, the names will be the destination variables. -The last bug in B was discovered 2017-06-29, so the code is -ready for being tested widely. Please use it for everyday use and -report bugs. - =head1 OPTIONS @@ -38,7 +39,7 @@ variable. =head1 SUPPORTED SHELLS -=head2 Bash +=head2 Bash/Zsh/Ksh =head3 Examples @@ -60,10 +61,10 @@ Put output into vars B<$seq, $pwd, $ls>: The commands to run can be an array: - cmd=("echo '<>'" "pwd") + cmd=("echo first" "echo '<>'" "pwd") parset data ::: "${cmd[@]}" - echo "${data[0]}" echo "${data[1]}" + echo "${data[2]}" B can not be part of a pipe. In particular this means it cannot read anything from standard input (stdin) or write to a pipe: @@ -74,7 +75,7 @@ but must instead use a tempfile: seq 10 > parallel_input parset res echo :::: parallel_input - echo "${res[0]}" + echo "${res[1]}" echo "${res[9]}" or a FIFO: @@ -82,24 +83,82 @@ or a FIFO: mkfifo input_fifo seq 30 > input_fifo & parset res echo :::: input_fifo - echo "${res[0]}" + echo "${res[1]}" echo "${res[29]}" -or Bash process substitution: +or Bash/Zsh/Ksh process substitution: parset res echo :::: <(seq 100) - echo "${res[0]}" + echo "${res[1]}" echo "${res[99]}" =head3 Installation -Put this in B<$HOME/.bashrc>: +Put this in the relevant B<$HOME/.bashrc> or B<$HOME/.zshenv> or B<$HOME/.kshrc>: . `which env_parallel.bash` + . `which env_parallel.zsh` + source `which env_parallel.ksh` E.g. by doing: echo '. `which env_parallel.bash`' >> $HOME/.bashrc + echo '. `which env_parallel.zsh`' >> $HOME/.zshenv + echo 'source `which env_parallel.ksh`' >> $HOME/.kshrc + +or by doing: + + env_parallel --install + + +=head2 ash/dash (FreeBSD's /bin/sh) + +=head3 Examples + +ash does not support arrays. + +Put output into vars B<$seq, $pwd, $ls>: + + parset "seq pwd ls" ::: "seq 10" pwd ls + echo "$ls" + +B can not be part of a pipe. In particular this means it +cannot read anything from standard input (stdin) or write to a pipe: + + seq 3 | parset res1,res2,res3 echo Does not work + +but must instead use a tempfile: + + seq 3 > parallel_input + parset res1,res2,res3 echo :::: parallel_input + echo "res1" + echo "res2" + echo "res3" + +or a FIFO: + + mkfifo input_fifo + seq 3 > input_fifo & + parset res1,res2,res3 echo :::: input_fifo + echo "res1" + echo "res2" + echo "res3" + +=head3 Installation + +Put the relevant one of these into B<$HOME/.profile>: + + . `which env_parallel.sh` + . `which env_parallel.ash` + . `which env_parallel.dash` + +E.g. by doing: + + echo '. `which env_parallel.ash`' >> $HOME/.bashrc + +or by doing: + + env_parallel --install =head1 EXIT STATUS diff --git a/testsuite/tests-to-run/parallel-local-0.3s.sh b/testsuite/tests-to-run/parallel-local-0.3s.sh index edd66ae5..5d1f1f9a 100644 --- a/testsuite/tests-to-run/parallel-local-0.3s.sh +++ b/testsuite/tests-to-run/parallel-local-0.3s.sh @@ -729,7 +729,7 @@ par_parcat_args_stdin() { echo OK1 > $tmp1 echo OK2 > $tmp2 (echo $tmp1 - echo $tmp2) | parcat + echo $tmp2) | parcat | sort rm $tmp1 $tmp2 } @@ -771,6 +771,25 @@ par_parset() { parset 'myarray[6],myarray[5],myarray[4]' echo ::: baz bar foo echo ${myarray[*]} echo ${myarray[4]} ${myarray[5]} ${myarray[5]} + + echo '### env_parset' + alias myecho='echo myecho "$myvar" "${myarr[1]}"' + myvar="myvar" + myarr=("myarr 0" "myarr 1" "myarr 2") + mynewline="`echo newline1;echo newline2;`" + env_parset arr1 myecho ::: foo bar baz + echo "${arr1[0]} ${arr1[1]} ${arr1[2]}" + env_parset comma3,comma2,comma1 myecho ::: baz bar foo + echo "$comma1 $comma2 $comma3" + env_parset 'space3 space2 space1' myecho ::: baz bar foo + echo "$space1 $space2 $space3" + env_parset 'newline3 newline2 newline1' 'echo "$mynewline";seq' ::: 3 2 1 + echo "$newline1" + echo "$newline2" + echo "$newline3" + env_parset 'myarray[6],myarray[5],myarray[4]' myecho ::: baz bar foo + echo "${myarray[*]}" + echo "${myarray[4]} ${myarray[5]} ${myarray[5]}" } export -f $(compgen -A function | grep par_) diff --git a/testsuite/tests-to-run/parallel-local-ssh7.sh b/testsuite/tests-to-run/parallel-local-ssh7.sh index 608591d7..522cc250 100755 --- a/testsuite/tests-to-run/parallel-local-ssh7.sh +++ b/testsuite/tests-to-run/parallel-local-ssh7.sh @@ -946,27 +946,44 @@ par_bash_environment_too_big() { echo 'bug #50815: env_parallel should warn if the environment is too big' . `which env_parallel.bash`; - bigvar="$(yes \"| head -c 76k)" - env_parallel echo ::: OK - env_parallel -S lo echo ::: OK + bigvar="$(perl -e 'print "x"x121000')" + env_parallel echo ::: OK_bigvar + env_parallel -S lo echo ::: OK_bigvar_remote + + bigvar="$(perl -e 'print "\""x61000')" + env_parallel echo ::: OK_bigvar_quote + env_parallel -S lo echo ::: OK_bigvar_quote_remote bigvar=u - eval 'bigfunc() { a="'"$(yes a| head -c 115k)"'"; };' - env_parallel echo ::: OK - env_parallel -S lo echo ::: OK + eval 'bigfunc() { a="'"$(perl -e 'print "x"x122000')"'"; };' + env_parallel echo ::: OK_bigfunc + env_parallel -S lo echo ::: OK_bigfunc_remote - bigvar="$(yes | head -c 120k)" - env_parallel echo ::: fail - env_parallel -S lo echo ::: fail + eval 'bigfunc() { a="'"$(perl -e 'print "\""x122000')"'"; };' + env_parallel echo ::: OK_bigfunc_quote + env_parallel -S lo echo ::: OK_bigfunc_quote_remote + bigfunc() { true; } - bigvar="$(yes \"| head -c 80k)" - env_parallel echo ::: fail - env_parallel -S lo echo ::: fail + echo Rest should fail + + bigvar="$(perl -e 'print "x"x123000')" + env_parallel echo ::: fail_bigvar + env_parallel -S lo echo ::: fail_bigvar_remote + + bigvar="$(perl -e 'print "\""x62000')" + env_parallel echo ::: fail_bigvar_quote + env_parallel -S lo echo ::: fail_bigvar_quote_remote bigvar=u - eval 'bigfunc() { a="'"$(yes a| head -c 121k)"'"; };' - env_parallel echo ::: fail - env_parallel -S lo echo ::: fail + eval 'bigfunc() { a="'"$(perl -e 'print "x"x1230000')"'"; };' + env_parallel echo ::: fail_bigfunc + env_parallel -S lo echo ::: fail_bigfunc_remote + + eval 'bigfunc() { a="'"$(perl -e 'print "\""x123000')"'"; };' + env_parallel echo ::: fail_bigfunc_quote + env_parallel -S lo echo ::: fail_bigfunc_quote_remote + + bigfunc() { true; } _EOF ) ssh bash@lo "$myscript" @@ -976,33 +993,47 @@ par_dash_environment_too_big() { myscript=$(cat <<'_EOF' echo 'bug #50815: env_parallel should warn if the environment is too big' . `which env_parallel.dash`; + bigvar="$(perl -e 'print "x"x130000')" - env_parallel echo ::: OK - env_parallel -S lo echo ::: OK + env_parallel echo ::: OK_bigvar + env_parallel -S lo echo ::: OK_bigvar_remote bigvar="$(perl -e 'print "\""x65000')" - env_parallel echo ::: OK - env_parallel -S lo echo ::: OK + env_parallel echo ::: OK_bigvar_quote + env_parallel -S lo echo ::: OK_bigvar_quote_remote -# Functions not supported om ash +# Functions not supported in dash # bigvar=u -# eval 'bigfunc() { a="'"$(perl -e 'print "\""x126000')"'"; };' -# env_parallel echo ::: OK -# env_parallel -S lo echo ::: OK +# eval 'bigfunc() { a="'"$(perl -e 'print "x"x122000')"'"; };' +# env_parallel echo ::: OK_bigfunc +# env_parallel -S lo echo ::: OK_bigfunc_remote +# +# eval 'bigfunc() { a="'"$(perl -e 'print "\""x122000')"'"; };' +# env_parallel echo ::: OK_bigfunc_quote +# env_parallel -S lo echo ::: OK_bigfunc_quote_remote +# bigfunc() { true; } + + echo Rest should fail bigvar="$(perl -e 'print "x"x131000')" - env_parallel echo ::: fail - env_parallel -S lo echo ::: fail + env_parallel echo ::: fail_bigvar + env_parallel -S lo echo ::: fail_bigvar_remote bigvar="$(perl -e 'print "\""x66000')" - env_parallel echo ::: fail - env_parallel -S lo echo ::: fail + env_parallel echo ::: fail_bigvar_quote + env_parallel -S lo echo ::: fail_bigvar_quote_remote -# Functions not supported om ash +# Functions not supported in dash # bigvar=u -# eval 'bigfunc() { a="'"$(perl -e 'print "\""x126000')"'"; };' -# env_parallel echo ::: OK -# env_parallel -S lo echo ::: OK +# eval 'bigfunc() { a="'"$(perl -e 'print "x"x1230000')"'"; };' +# env_parallel echo ::: fail_bigfunc +# env_parallel -S lo echo ::: fail_bigfunc_remote +# +# eval 'bigfunc() { a="'"$(perl -e 'print "\""x123000')"'"; };' +# env_parallel echo ::: fail_bigfunc_quote +# env_parallel -S lo echo ::: fail_bigfunc_quote_remote +# +# bigfunc() { true; } _EOF ) ssh dash@lo "$myscript" @@ -1012,33 +1043,47 @@ par_ash_environment_too_big() { myscript=$(cat <<'_EOF' echo 'bug #50815: env_parallel should warn if the environment is too big' . `which env_parallel.ash`; + bigvar="$(perl -e 'print "x"x130000')" - env_parallel echo ::: OK - env_parallel -S lo echo ::: OK + env_parallel echo ::: OK_bigvar + env_parallel -S lo echo ::: OK_bigvar_remote bigvar="$(perl -e 'print "\""x65000')" - env_parallel echo ::: OK - env_parallel -S lo echo ::: OK + env_parallel echo ::: OK_bigvar_quote + env_parallel -S lo echo ::: OK_bigvar_quote_remote # Functions not supported in ash # bigvar=u -# eval 'bigfunc() { a="'"$(perl -e 'print "\""x126000')"'"; };' -# env_parallel echo ::: OK -# env_parallel -S lo echo ::: OK +# eval 'bigfunc() { a="'"$(perl -e 'print "x"x122000')"'"; };' +# env_parallel echo ::: OK_bigfunc +# env_parallel -S lo echo ::: OK_bigfunc_remote +# +# eval 'bigfunc() { a="'"$(perl -e 'print "\""x122000')"'"; };' +# env_parallel echo ::: OK_bigfunc_quote +# env_parallel -S lo echo ::: OK_bigfunc_quote_remote +# bigfunc() { true; } + + echo Rest should fail bigvar="$(perl -e 'print "x"x131000')" - env_parallel echo ::: fail - env_parallel -S lo echo ::: fail + env_parallel echo ::: fail_bigvar + env_parallel -S lo echo ::: fail_bigvar_remote bigvar="$(perl -e 'print "\""x66000')" - env_parallel echo ::: fail - env_parallel -S lo echo ::: fail + env_parallel echo ::: fail_bigvar_quote + env_parallel -S lo echo ::: fail_bigvar_quote_remote # Functions not supported in ash # bigvar=u -# eval 'bigfunc() { a="'"$(perl -e 'print "\""x126000')"'"; };' -# env_parallel echo ::: OK -# env_parallel -S lo echo ::: OK +# eval 'bigfunc() { a="'"$(perl -e 'print "x"x1230000')"'"; };' +# env_parallel echo ::: fail_bigfunc +# env_parallel -S lo echo ::: fail_bigfunc_remote +# +# eval 'bigfunc() { a="'"$(perl -e 'print "\""x123000')"'"; };' +# env_parallel echo ::: fail_bigfunc_quote +# env_parallel -S lo echo ::: fail_bigfunc_quote_remote +# +# bigfunc() { true; } _EOF ) ssh ash@lo "$myscript" @@ -1048,33 +1093,47 @@ par_sh_environment_too_big() { myscript=$(cat <<'_EOF' echo 'bug #50815: env_parallel should warn if the environment is too big' . `which env_parallel.sh`; + bigvar="$(perl -e 'print "x"x130000')" - env_parallel echo ::: OK - env_parallel -S lo echo ::: OK + env_parallel echo ::: OK_bigvar + env_parallel -S lo echo ::: OK_bigvar_remote bigvar="$(perl -e 'print "\""x65000')" - env_parallel echo ::: OK - env_parallel -S lo echo ::: OK + env_parallel echo ::: OK_bigvar_quote + env_parallel -S lo echo ::: OK_bigvar_quote_remote -# Functions not supported on GNU/Linux +# Functions not supported in sh # bigvar=u -# eval 'bigfunc() { a="'"$(perl -e 'print "\\\""x133000')"'"; };' -# env_parallel echo ::: OK -# env_parallel -S lo echo ::: OK +# eval 'bigfunc() { a="'"$(perl -e 'print "x"x122000')"'"; };' +# env_parallel echo ::: OK_bigfunc +# env_parallel -S lo echo ::: OK_bigfunc_remote +# +# eval 'bigfunc() { a="'"$(perl -e 'print "\""x122000')"'"; };' +# env_parallel echo ::: OK_bigfunc_quote +# env_parallel -S lo echo ::: OK_bigfunc_quote_remote +# bigfunc() { true; } + + echo Rest should fail bigvar="$(perl -e 'print "x"x131000')" - env_parallel echo ::: fail - env_parallel -S lo echo ::: fail + env_parallel echo ::: fail_bigvar + env_parallel -S lo echo ::: fail_bigvar_remote bigvar="$(perl -e 'print "\""x66000')" - env_parallel echo ::: fail - env_parallel -S lo echo ::: fail + env_parallel echo ::: fail_bigvar_quote + env_parallel -S lo echo ::: fail_bigvar_quote_remote -# Functions not supported on GNU/Linux +# Functions not supported in sh # bigvar=u -# eval 'bigfunc() { a="'"$(perl -e 'print "\""x132000')"'"; };' -# env_parallel echo ::: fail -# env_parallel -S lo echo ::: fail +# eval 'bigfunc() { a="'"$(perl -e 'print "x"x1230000')"'"; };' +# env_parallel echo ::: fail_bigfunc +# env_parallel -S lo echo ::: fail_bigfunc_remote +# +# eval 'bigfunc() { a="'"$(perl -e 'print "\""x123000')"'"; };' +# env_parallel echo ::: fail_bigfunc_quote +# env_parallel -S lo echo ::: fail_bigfunc_quote_remote +# +# bigfunc() { true; } _EOF ) ssh sh@lo "$myscript" @@ -1084,31 +1143,45 @@ par_zsh_environment_too_big() { myscript=$(cat <<'_EOF' echo 'bug #50815: env_parallel should warn if the environment is too big' . `which env_parallel.zsh`; - bigvar="$(perl -e 'print "x"x122000')" - env_parallel echo ::: OK - env_parallel -S lo echo ::: OK - bigvar="$(perl -e 'print "\""x122000')" - env_parallel echo ::: OK - env_parallel -S lo echo ::: OK + bigvar="$(perl -e 'print "x"x120000')" + env_parallel echo ::: OK_bigvar + env_parallel -S lo echo ::: OK_bigvar_remote + + bigvar="$(perl -e 'print "\""x120000')" + env_parallel echo ::: OK_bigvar_quote + env_parallel -S lo echo ::: OK_bigvar_quote_remote bigvar=u - eval 'bigfunc() { a="'"$(perl -e 'print "x"x122000')"'"; };' - env_parallel echo ::: OK - env_parallel -S lo echo ::: OK + eval 'bigfunc() { a="'"$(perl -e 'print "x"x120000')"'"; };' + env_parallel echo ::: OK_bigfunc + env_parallel -S lo echo ::: OK_bigfunc_remote - bigvar="$(perl -e 'print "x"x123000')" - env_parallel echo ::: fail - env_parallel -S lo echo ::: fail + eval 'bigfunc() { a="'"$(perl -e 'print "\""x120000')"'"; };' + env_parallel echo ::: OK_bigfunc_quote + env_parallel -S lo echo ::: OK_bigfunc_quote_remote + bigfunc() { true; } + + echo Rest should fail + + bigvar="$(perl -e 'print "x"x121000')" + env_parallel echo ::: fail_bigvar + env_parallel -S lo echo ::: fail_bigvar_remote bigvar="$(perl -e 'print "\""x123000')" - env_parallel echo ::: fail - env_parallel -S lo echo ::: fail + env_parallel echo ::: fail_bigvar_quote + env_parallel -S lo echo ::: fail_bigvar_quote_remote bigvar=u - eval 'bigfunc() { a="'"$(perl -e 'print "x"x123000')"'"; };' - env_parallel echo ::: fail - env_parallel -S lo echo ::: fail + eval 'bigfunc() { a="'"$(perl -e 'print "x"x1210000')"'"; };' + env_parallel echo ::: fail_bigfunc + env_parallel -S lo echo ::: fail_bigfunc_remote + + eval 'bigfunc() { a="'"$(perl -e 'print "\""x121000')"'"; };' + env_parallel echo ::: fail_bigfunc_quote + env_parallel -S lo echo ::: fail_bigfunc_quote_remote + + bigfunc() { true; } _EOF ) ssh zsh@lo "$myscript" @@ -1118,32 +1191,45 @@ par_ksh_environment_too_big() { myscript=$(cat <<'_EOF' echo 'bug #50815: env_parallel should warn if the environment is too big' . `which env_parallel.ksh`; - bigvar="$(perl -e 'print "x"x125000')" - env_parallel echo ::: OK - bigvar="$(perl -e 'print "x"x124000')" - env_parallel -S lo echo ::: OK - bigvar="$(perl -e 'print "\""x124000')" - env_parallel echo ::: OK - env_parallel -S lo echo ::: OK + bigvar="$(perl -e 'print "x"x122000')" + env_parallel echo ::: OK_bigvar + env_parallel -S lo echo ::: OK_bigvar_remote + + bigvar="$(perl -e 'print "\""x122000')" + env_parallel echo ::: OK_bigvar_quote + env_parallel -S lo echo ::: OK_bigvar_quote_remote bigvar=u - eval 'bigfunc() { a="'"$(perl -e 'print "\""x124000')"'"; };' - env_parallel echo ::: OK - env_parallel -S lo echo ::: OK + eval 'bigfunc() { a="'"$(perl -e 'print "x"x122000')"'"; };' + env_parallel echo ::: OK_bigfunc + env_parallel -S lo echo ::: OK_bigfunc_remote - bigvar="$(perl -e 'print "x"x126000')" - env_parallel echo ::: fail - env_parallel -S lo echo ::: fail + eval 'bigfunc() { a="'"$(perl -e 'print "\""x122000')"'"; };' + env_parallel echo ::: OK_bigfunc_quote + env_parallel -S lo echo ::: OK_bigfunc_quote_remote + bigfunc() { true; } - bigvar="$(perl -e 'print "\""x125000')" - env_parallel echo ::: fail - env_parallel -S lo echo ::: fail + echo Rest should fail + + bigvar="$(perl -e 'print "x"x123000')" + env_parallel echo ::: fail_bigvar + env_parallel -S lo echo ::: fail_bigvar_remote + + bigvar="$(perl -e 'print "\""x123000')" + env_parallel echo ::: fail_bigvar_quote + env_parallel -S lo echo ::: fail_bigvar_quote_remote bigvar=u - eval 'bigfunc() { a="'"$(perl -e 'print "\""x125000')"'"; };' - env_parallel echo ::: fail - env_parallel -S lo echo ::: fail + eval 'bigfunc() { a="'"$(perl -e 'print "x"x1230000')"'"; };' + env_parallel echo ::: fail_bigfunc + env_parallel -S lo echo ::: fail_bigfunc_remote + + eval 'bigfunc() { a="'"$(perl -e 'print "\""x123000')"'"; };' + env_parallel echo ::: fail_bigfunc_quote + env_parallel -S lo echo ::: fail_bigfunc_quote_remote + + bigfunc() { true; } _EOF ) ssh ksh@lo "$myscript" @@ -1161,7 +1247,391 @@ par_tcsh_environment_too_big() { echo Not implemented } +par_bash_parset() { + myscript=$(cat <<'_EOF' + echo 'parset' + . `which env_parallel.bash` + + echo '### parset into array' + parset arr1 echo ::: foo bar baz + echo ${arr1[0]} ${arr1[1]} ${arr1[2]} + + echo '### parset into vars with comma' + parset comma3,comma2,comma1 echo ::: baz bar foo + echo $comma1 $comma2 $comma3 + + echo '### parset into vars with space' + parset 'space3 space2 space1' echo ::: baz bar foo + echo $space1 $space2 $space3 + + echo '### parset with newlines' + parset 'newline3 newline2 newline1' seq ::: 3 2 1 + echo "$newline1" + echo "$newline2" + echo "$newline3" + + echo '### parset into indexed array vars' + parset 'myarray[6],myarray[5],myarray[4]' echo ::: baz bar foo + echo ${myarray[*]} + echo ${myarray[4]} ${myarray[5]} ${myarray[6]} + + echo '### env_parset' + myfun() { + myecho myfun "$@"; + } + alias myecho='echo myecho "$myvar" "${myarr[1]}"' + myvar="myvar" + myarr=("myarr 0" "myarr 1" "myarr 2") + mynewline="`echo newline1;echo newline2;`" + env_parset arr1 myfun ::: foo bar baz + echo "${arr1[0]} ${arr1[1]} ${arr1[2]}" + env_parset comma3,comma2,comma1 myfun ::: baz bar foo + echo "$comma1 $comma2 $comma3" + env_parset 'space3 space2 space1' myfum ::: baz bar foo + echo "$space1 $space2 $space3" + env_parset 'newline3 newline2 newline1' 'echo "$mynewline";seq' ::: 3 2 1 + echo "$newline1" + echo "$newline2" + echo "$newline3" + env_parset 'myarray[6],myarray[5],myarray[4]' myfun ::: baz bar foo + echo "${myarray[*]}" + echo "${myarray[4]} ${myarray[5]} ${myarray[6]}" +_EOF + ) + ssh bash@lo "$myscript" +} + +par_dash_parset() { + myscript=$(cat <<'_EOF' + echo 'parset' + . `which env_parallel.dash` + +# Arrays not supported in dash +# echo '### parset into array' +# parset arr1 echo ::: foo bar baz +# echo ${arr1[0]} ${arr1[1]} ${arr1[2]} + + echo '### parset into vars with comma' + parset comma3,comma2,comma1 echo ::: baz bar foo + echo $comma1 $comma2 $comma3 + + echo '### parset into vars with space' + parset 'space3 space2 space1' echo ::: baz bar foo + echo $space1 $space2 $space3 + + echo '### parset with newlines' + parset 'newline3 newline2 newline1' seq ::: 3 2 1 + echo "$newline1" + echo "$newline2" + echo "$newline3" + +# Arrays not supported in dash +# echo '### parset into indexed array vars' +# parset 'myarray[6],myarray[5],myarray[4]' echo ::: baz bar foo +# echo ${myarray[*]} +# echo ${myarray[4]} ${myarray[5]} ${myarray[6]} + + echo '### env_parset' + myfun() { + myecho myfun "$@"; + } + alias myecho='echo myecho "$myvar"' + myvar="myvar" +# Arrays not supported in dash +# myarr=("myarr 0" "myarr 1" "myarr 2") + mynewline="`echo newline1;echo newline2;`" +# Arrays not supported in dash +# env_parset arr1 myfun ::: foo bar baz +# echo "${arr1[0]} ${arr1[1]} ${arr1[2]}" + env_parset comma3,comma2,comma1 myecho ::: baz bar foo + echo "$comma1 $comma2 $comma3" + env_parset 'space3 space2 space1' myecho ::: baz bar foo + echo "$space1 $space2 $space3" + env_parset 'newline3 newline2 newline1' 'echo "$mynewline";seq' ::: 3 2 1 + echo "$newline1" + echo "$newline2" + echo "$newline3" +# Arrays not supported in dash +# env_parset 'myarray[6],myarray[5],myarray[4]' myfun ::: baz bar foo +# echo "${myarray[*]}" +# echo "${myarray[4]} ${myarray[5]} ${myarray[6]}" +_EOF + ) + ssh dash@lo "$myscript" +} + +par_ash_parset() { + myscript=$(cat <<'_EOF' + echo 'parset' + . `which env_parallel.ash` + +# Arrays not supported in ash +# echo '### parset into array' +# parset arr1 echo ::: foo bar baz +# echo ${arr1[0]} ${arr1[1]} ${arr1[2]} + + echo '### parset into vars with comma' + parset comma3,comma2,comma1 echo ::: baz bar foo + echo $comma1 $comma2 $comma3 + + echo '### parset into vars with space' + parset 'space3 space2 space1' echo ::: baz bar foo + echo $space1 $space2 $space3 + + echo '### parset with newlines' + parset 'newline3 newline2 newline1' seq ::: 3 2 1 + echo "$newline1" + echo "$newline2" + echo "$newline3" + +# Arrays not supported in ash +# echo '### parset into indexed array vars' +# parset 'myarray[6],myarray[5],myarray[4]' echo ::: baz bar foo +# echo ${myarray[*]} +# echo ${myarray[4]} ${myarray[5]} ${myarray[6]} + + echo '### env_parset' + myfun() { + myecho myfun "$@"; + } + alias myecho='echo myecho "$myvar"' + myvar="myvar" +# Arrays not supported in ash +# myarr=("myarr 0" "myarr 1" "myarr 2") + mynewline="`echo newline1;echo newline2;`" +# Arrays not supported in ash +# env_parset arr1 myfun ::: foo bar baz +# echo "${arr1[0]} ${arr1[1]} ${arr1[2]}" + env_parset comma3,comma2,comma1 myecho ::: baz bar foo + echo "$comma1 $comma2 $comma3" + env_parset 'space3 space2 space1' myecho ::: baz bar foo + echo "$space1 $space2 $space3" + env_parset 'newline3 newline2 newline1' 'echo "$mynewline";seq' ::: 3 2 1 + echo "$newline1" + echo "$newline2" + echo "$newline3" +# Arrays not supported in ash +# env_parset 'myarray[6],myarray[5],myarray[4]' myfun ::: baz bar foo +# echo "${myarray[*]}" +# echo "${myarray[4]} ${myarray[5]} ${myarray[6]}" +_EOF + ) + ssh ash@lo "$myscript" +} + +par_sh_parset() { + myscript=$(cat <<'_EOF' + echo 'parset' + . `which env_parallel.sh` + +# echo '### parset into array' +# echo "Arrays not supported in all sh's" +# parset arr1 echo ::: foo bar baz +# echo ${arr1[0]} ${arr1[1]} ${arr1[2]} + + echo '### parset into vars with comma' + parset comma3,comma2,comma1 echo ::: baz bar foo + echo $comma1 $comma2 $comma3 + + echo '### parset into vars with space' + parset 'space3 space2 space1' echo ::: baz bar foo + echo $space1 $space2 $space3 + + echo '### parset with newlines' + parset 'newline3 newline2 newline1' seq ::: 3 2 1 + echo "$newline1" + echo "$newline2" + echo "$newline3" + +# echo '### parset into indexed array vars' +# echo "Arrays not supported in all sh's" +# parset 'myarray[6],myarray[5],myarray[4]' echo ::: baz bar foo +# echo ${myarray[*]} +# echo ${myarray[4]} ${myarray[5]} ${myarray[6]} + + echo '### env_parset' + echo '# alias' + alias myalias='echo myalias' + env_parset alias3,alias2,alias1 myalias ::: baz bar foo + echo "$alias1" + echo "$alias2" + echo "$alias3" + +# echo '# function' +# echo "Arrays not supported in all sh's" +# myfun() { +# echo myfun "$@"; +# } +# env_parset fun3,fun2,fun1 myfun ::: baz bar foo +# echo "$fun1" +# echo "$fun2" +# echo "$fun3" + + echo '# variable with newline' + myvar="`echo newline1;echo newline2;`" + env_parset var3,var2,var1 'echo "$myvar"' ::: baz bar foo + echo "$var1" + echo "$var2" + echo "$var3" + +# Arrays not supported in sh +# myarr=("myarr 0" "myarr 1" "myarr 2") +# Arrays not supported in sh +# env_parset arr1 myfun ::: foo bar baz +# echo "${arr1[0]} ${arr1[1]} ${arr1[2]}" + + echo '### parset into vars with comma' + env_parset comma3,comma2,comma1 echo ::: baz bar foo + echo "$comma1 $comma2 $comma3" + echo '### parset into vars with space' + env_parset 'space3 space2 space1' echo ::: baz bar foo + echo "$space1 $space2 $space3" + echo '### parset with newlines' + mynewline="`echo newline1;echo newline2;`" + env_parset 'newline3 newline2 newline1' 'echo "$mynewline";seq' ::: 3 2 1 + echo "$newline1" + echo "$newline2" + echo "$newline3" +# Arrays not supported in sh +# env_parset 'myarray[6],myarray[5],myarray[4]' myfun ::: baz bar foo +# echo "${myarray[*]}" +# echo "${myarray[4]} ${myarray[5]} ${myarray[6]}" +_EOF + ) + ssh sh@lo "$myscript" +} + +par_zsh_parset() { + myscript=$(cat <<'_EOF' + echo 'parset' + . `which env_parallel.zsh` + eval "`cat <<"_EOS"; + + echo '### parset into array' + parset arr1 echo ::: foo bar baz + echo ${arr1[1]} ${arr1[2]} ${arr1[3]} + + echo '### parset into vars with comma' + parset comma3,comma2,comma1 echo ::: baz bar foo + echo $comma1 $comma2 $comma3 + + echo '### parset into vars with space' + parset 'space3 space2 space1' echo ::: baz bar foo + echo $space1 $space2 $space3 + + echo '### parset with newlines' + parset 'newline3 newline2 newline1' seq ::: 3 2 1 + echo "$newline1" + echo "$newline2" + echo "$newline3" + + echo '### parset into indexed array vars' + parset 'myarray[6],myarray[5],myarray[4]' echo ::: baz bar foo + echo ${myarray[*]} + echo ${myarray[4]} ${myarray[5]} ${myarray[6]} + + echo '### env_parset' + alias myecho='echo myecho "$myvar" "${myarr[1]}"'; + # eval is needed because zsh does not see alias in function otherwise + eval "myfun() { + myecho myfun \"\$\@\" + }" + myvar="myvar" + myarr=("myarr 0" "myarr 1" "myarr 2") + mynewline="$(echo newline1;echo newline2;)" + env_parset arr1 myfun {} ::: foo bar baz + echo "${arr1[1]}" + echo "${arr1[2]}" + echo "${arr1[3]}" + env_parset comma3,comma2,comma1 myfun ::: baz bar foo + echo "$comma1" + echo "$comma2" + echo "$comma3" + env_parset 'space3 space2 space1' myfun ::: baz bar foo + echo "$space1" + echo "$space2" + echo "$space3" + env_parset 'newline3 newline2 newline1' 'echo "$mynewline";seq' ::: 3 2 1 + echo "$newline1" + echo "$newline2" + echo "$newline3" + env_parset 'myarray[6],myarray[5],myarray[4]' myfun ::: baz bar foo + echo "${myarray[*]}" + echo "${myarray[4]} ${myarray[5]} ${myarray[6]}" +_EOS`" +_EOF + ) + ssh zsh@lo "$myscript" +} + +par_ksh_parset() { + myscript=$(cat <<'_EOF' + echo 'parset' + . `which env_parallel.ksh` + + echo '### parset into array' + parset arr1 echo ::: foo bar baz + echo ${arr1[0]} ${arr1[1]} ${arr1[2]} + + echo '### parset into vars with comma' + parset comma3,comma2,comma1 echo ::: baz bar foo + echo $comma1 $comma2 $comma3 + + echo '### parset into vars with space' + parset 'space3 space2 space1' echo ::: baz bar foo + echo $space1 $space2 $space3 + + echo '### parset with newlines' + parset 'newline3 newline2 newline1' seq ::: 3 2 1 + echo "$newline1" + echo "$newline2" + echo "$newline3" + + echo '### parset into indexed array vars' + parset 'myarray[6],myarray[5],myarray[4]' echo ::: baz bar foo + echo ${myarray[*]} + echo ${myarray[4]} ${myarray[5]} ${myarray[6]} + + echo '### env_parset' + myfun() { + myecho myfun "$@"; + } + alias myecho='echo myecho "$myvar" "${myarr[1]}"' + myvar="myvar" + myarr=("myarr 0" "myarr 1" "myarr 2") + mynewline="`echo newline1;echo newline2;`" + env_parset arr1 myfun ::: foo bar baz + echo "${arr1[0]} ${arr1[1]} ${arr1[2]}" + env_parset comma3,comma2,comma1 myfun ::: baz bar foo + echo "$comma1 $comma2 $comma3" + env_parset 'space3 space2 space1' myfum ::: baz bar foo + echo "$space1 $space2 $space3" + env_parset 'newline3 newline2 newline1' 'echo "$mynewline";seq' ::: 3 2 1 + echo "$newline1" + echo "$newline2" + echo "$newline3" + env_parset 'myarray[6],myarray[5],myarray[4]' myfun ::: baz bar foo + echo "${myarray[*]}" + echo "${myarray[4]} ${myarray[5]} ${myarray[6]}" +_EOF + ) + ssh ksh@lo "$myscript" +} + +par_fish_parset() { + echo Not implemented +} + +par_csh_parset() { + echo Not implemented +} + +par_tcsh_parset() { + echo Not implemented +} + export -f $(compgen -A function | grep par_) #compgen -A function | grep par_ | sort | parallel --delay $D -j$P --tag -k '{} 2>&1' -compgen -A function | grep par_ | sort | +#compgen -A function | grep par_ | sort | +compgen -A function | grep par_ | sort -r | parallel --joblog /tmp/jl-`basename $0` -j200% --tag -k '{} 2>&1' diff --git a/testsuite/wanted-results/parallel-local-0.3s b/testsuite/wanted-results/parallel-local-0.3s index e9ec31c2..2b014d9f 100644 --- a/testsuite/wanted-results/parallel-local-0.3s +++ b/testsuite/wanted-results/parallel-local-0.3s @@ -1442,6 +1442,24 @@ par_parset 3 par_parset ### parset into indexed array vars par_parset foo bar baz par_parset foo bar bar +par_parset ### env_parset +par_parset myecho myvar myarr 1 foo myecho myvar myarr 1 bar myecho myvar myarr 1 baz +par_parset myecho myvar myarr 1 foo myecho myvar myarr 1 bar myecho myvar myarr 1 baz +par_parset myecho myvar myarr 1 foo myecho myvar myarr 1 bar myecho myvar myarr 1 baz +par_parset newline1 +par_parset newline2 +par_parset 1 +par_parset newline1 +par_parset newline2 +par_parset 1 +par_parset 2 +par_parset newline1 +par_parset newline2 +par_parset 1 +par_parset 2 +par_parset 3 +par_parset myecho myvar myarr 1 foo myecho myvar myarr 1 bar myecho myvar myarr 1 baz +par_parset myecho myvar myarr 1 foo myecho myvar myarr 1 bar myecho myvar myarr 1 bar par_pipe_compress_blocks ### bug #41482: --pipe --compress blocks at different -j/seq combinations par_pipe_compress_blocks 1 par_pipe_compress_blocks echo 1-4 + 1-4 diff --git a/testsuite/wanted-results/parallel-local-ssh7 b/testsuite/wanted-results/parallel-local-ssh7 index cce9b414..c42ed717 100644 --- a/testsuite/wanted-results/parallel-local-ssh7 +++ b/testsuite/wanted-results/parallel-local-ssh7 @@ -1,555 +1,161 @@ ### test --env _ Both test that variables are copied, but also that they are NOT copied, if ignored -par_ash_environment_too_big bug #50815: env_parallel should warn if the environment is too big -par_ash_environment_too_big OK -par_ash_environment_too_big OK -par_ash_environment_too_big OK -par_ash_environment_too_big OK -par_ash_environment_too_big ash: 1: which: Argument list too long -par_ash_environment_too_big env_parallel: Error: Your environment is too big. -par_ash_environment_too_big env_parallel: Error: Try running this in a clean environment once: -par_ash_environment_too_big env_parallel: Error: env_parallel --record-env -par_ash_environment_too_big env_parallel: Error: And the use '--env _' -par_ash_environment_too_big env_parallel: Error: For details see: man env_parallel -par_ash_environment_too_big ash: 1: which: Argument list too long -par_ash_environment_too_big env_parallel: Error: Your environment is too big. -par_ash_environment_too_big env_parallel: Error: Try running this in a clean environment once: -par_ash_environment_too_big env_parallel: Error: env_parallel --record-env -par_ash_environment_too_big env_parallel: Error: And the use '--env _' -par_ash_environment_too_big env_parallel: Error: For details see: man env_parallel -par_ash_environment_too_big ash: 1: which: Argument list too long -par_ash_environment_too_big env_parallel: Error: Your environment is too big. -par_ash_environment_too_big env_parallel: Error: Try running this in a clean environment once: -par_ash_environment_too_big env_parallel: Error: env_parallel --record-env -par_ash_environment_too_big env_parallel: Error: And the use '--env _' -par_ash_environment_too_big env_parallel: Error: For details see: man env_parallel -par_ash_environment_too_big ash: 1: which: Argument list too long -par_ash_environment_too_big env_parallel: Error: Your environment is too big. -par_ash_environment_too_big env_parallel: Error: Try running this in a clean environment once: -par_ash_environment_too_big env_parallel: Error: env_parallel --record-env -par_ash_environment_too_big env_parallel: Error: And the use '--env _' -par_ash_environment_too_big env_parallel: Error: For details see: man env_parallel -par_bash_env_parallel_fifo OK -par_bash_env_parallel_fifo OK -par_bash_env_parallel_fifo bug #50435: Remote fifo broke in 20150522 -par_bash_env_parallel_fifo data from stdin -par_bash_env_parallel_fifo data from stdin -par_bash_environment_too_big bug #50815: env_parallel should warn if the environment is too big -par_bash_environment_too_big OK -par_bash_environment_too_big OK -par_bash_environment_too_big OK -par_bash_environment_too_big OK -par_bash_environment_too_big /usr/local/bin/env_parallel.bash: line 168: /usr/bin/which: Argument list too long -par_bash_environment_too_big env_parallel: Error: Your environment is too big. -par_bash_environment_too_big env_parallel: Error: Try running this in a clean environment once: -par_bash_environment_too_big env_parallel: Error: env_parallel --record-env -par_bash_environment_too_big env_parallel: Error: And the use '--env _' -par_bash_environment_too_big env_parallel: Error: For details see: man env_parallel -par_bash_environment_too_big /usr/local/bin/env_parallel.bash: line 168: /usr/bin/which: Argument list too long -par_bash_environment_too_big env_parallel: Error: Your environment is too big. -par_bash_environment_too_big env_parallel: Error: Try running this in a clean environment once: -par_bash_environment_too_big env_parallel: Error: env_parallel --record-env -par_bash_environment_too_big env_parallel: Error: And the use '--env _' -par_bash_environment_too_big env_parallel: Error: For details see: man env_parallel -par_bash_environment_too_big /usr/local/bin/env_parallel.bash: line 168: /usr/bin/which: Argument list too long -par_bash_environment_too_big env_parallel: Error: Your environment is too big. -par_bash_environment_too_big env_parallel: Error: Try running this in a clean environment once: -par_bash_environment_too_big env_parallel: Error: env_parallel --record-env -par_bash_environment_too_big env_parallel: Error: And the use '--env _' -par_bash_environment_too_big env_parallel: Error: For details see: man env_parallel -par_bash_environment_too_big /usr/local/bin/env_parallel.bash: line 168: /usr/bin/which: Argument list too long -par_bash_environment_too_big env_parallel: Error: Your environment is too big. -par_bash_environment_too_big env_parallel: Error: Try running this in a clean environment once: -par_bash_environment_too_big env_parallel: Error: env_parallel --record-env -par_bash_environment_too_big env_parallel: Error: And the use '--env _' -par_bash_environment_too_big env_parallel: Error: For details see: man env_parallel -par_bash_environment_too_big /usr/local/bin/env_parallel.bash: line 168: /usr/bin/which: Argument list too long -par_bash_environment_too_big env_parallel: Error: Your environment is too big. -par_bash_environment_too_big env_parallel: Error: Try running this in a clean environment once: -par_bash_environment_too_big env_parallel: Error: env_parallel --record-env -par_bash_environment_too_big env_parallel: Error: And the use '--env _' -par_bash_environment_too_big env_parallel: Error: For details see: man env_parallel -par_bash_environment_too_big /usr/local/bin/env_parallel.bash: line 168: /usr/bin/which: Argument list too long -par_bash_environment_too_big env_parallel: Error: Your environment is too big. -par_bash_environment_too_big env_parallel: Error: Try running this in a clean environment once: -par_bash_environment_too_big env_parallel: Error: env_parallel --record-env -par_bash_environment_too_big env_parallel: Error: And the use '--env _' -par_bash_environment_too_big env_parallel: Error: For details see: man env_parallel -par_bash_funky -par_bash_funky -par_bash_funky -par_bash_funky \\\\\\\\ -par_bash_funky  -par_bash_funky  -par_bash_funky -par_bash_funky -par_bash_funky space 6 -par_bash_funky space 6 -par_bash_funky 3 arg alias_works -par_bash_funky 3 arg alias_works_over_ssh -par_bash_funky Funkyline-  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~-funkyline -par_bash_funky Funkyline-  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~-funkyline -par_bash_funky Funkymultiline- -par_bash_funky Funkymultiline- -par_bash_funky \ \  -par_bash_funky \ \\\\\\\\\\\\\\ \!\"\#\$%\&\'\(\)\*+,-./0123456789:\;\<\=\>\?@ABCDEFGHIJKLMNOPQRSTUVWXYZ\[\\\]\^_\`abcdefghijklmnopqrstuvwxyz\{\|\}\~\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ -par_bash_funky assoc_val_a -par_bash_funky assoc_val_a -par_bash_funky function_works -par_bash_funky function_works_over_ssh -par_bash_funky myvar works -par_bash_funky myvar works -par_bash_funky -funkymultiline -par_bash_funky -funkymultiline -par_bash_man ### bash -par_bash_man ### From man env_parallel -par_bash_man aliases work -par_bash_man aliases work -par_bash_man aliases work -par_bash_man aliases work -par_bash_man functions work -par_bash_man functions work -par_bash_man functions work -par_bash_man functions work -par_bash_man variables work -par_bash_man variables work -par_bash_man variables work -par_bash_man variables work -par_bash_man arrays -par_bash_man work, -par_bash_man too -par_bash_man arrays -par_bash_man work, -par_bash_man too -par_bash_man arrays -par_bash_man work, -par_bash_man too -par_bash_man arrays -par_bash_man work, -par_bash_man too -par_bash_man exit value 2 should be 2 -par_bash_man Unknown option: no-such-option -par_bash_man exit value 255 should be 255 -par_bash_underscore ### bash -par_bash_underscore ### Testing of --env _ -par_bash_underscore variables in aliases in and arrays in functions work -par_bash_underscore variables in aliases in and arrays in functions work -par_bash_underscore variables in aliases in and arrays in functions work -par_bash_underscore variables in aliases in and arrays in functions work -par_bash_underscore variables in aliases in and arrays in functions work -par_bash_underscore variables in aliases in and arrays in functions work -par_bash_underscore /bin/bash: line 56: not_copied_alias: command not found -par_bash_underscore /bin/bash: line 56: not_copied_func: command not found -par_bash_underscore error=OK -par_bash_underscore error=OK -par_bash_underscore aliases in and arrays in functions work -par_bash_underscore aliases in and arrays in functions work -par_bash_underscore aliases in functions work -par_bash_underscore aliases in functions work -par_bash_underscore /bin/bash: line 49: myecho: command not found -par_bash_underscore OK if no myecho ^^^^^^^^^^^^^^^^^^^^^^^^^ -par_bash_underscore /bin/bash: line 49: myecho: command not found -par_bash_underscore OK if no myecho ^^^^^^^^^^^^^^^^^^^^^^^^^ -par_bash_underscore /bin/bash: line 49: myfunc: command not found -par_bash_underscore OK if no myfunc ^^^^^^^^^^^^^^^^^^^^^^^^^ -par_bash_underscore /bin/bash: line 49: myfunc: command not found -par_bash_underscore OK if no myfunc ^^^^^^^^^^^^^^^^^^^^^^^^^ -par_csh_env_parallel_fifo bug #50435: Remote fifo broke in 20150522 -par_csh_env_parallel_fifo data from stdin -par_csh_env_parallel_fifo OK -par_csh_env_parallel_fifo data from stdin -par_csh_env_parallel_fifo OK -par_csh_environment_too_big Not implemented -par_csh_funky 3 arg alias_works -par_csh_funky myvar works -par_csh_funky space special chars problem -par_csh_funky Funky-  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~-funky alias_var_works -par_csh_funky func_echo: Command not found. -par_csh_funky 3 arg alias_works_over_ssh -par_csh_funky myvar works -par_csh_funky space special chars problem -par_csh_funky Funky-  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~-funky alias_var_works_over_ssh -par_csh_funky func_echo: Command not found. -par_csh_funky \\\\\\\\ \ \ \ \ \\\\\\\\\\\\\\ \!\"\#\$%\&\'\(\)\*+,-./0123456789:\;\<\=\>\?@ABCDEFGHIJKLMNOPQRSTUVWXYZ\[\\\]\^_\`abcdefghijklmnopqrstuvwxyz\{\|\}\~\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ -par_csh_man ### csh -par_csh_man -par_csh_man -par_csh_man -par_csh_man -par_csh_man -par_csh_man -par_csh_man -par_csh_man -par_csh_man -par_csh_man {+/}/{/..}.{+..} = {...}.{+...} = {+/}/{/...}.{+...} -par_csh_man ;login: The USENIX Magazine, February 2011:42-47. -par_csh_man O. Tange (2011): GNU Parallel - The Command-Line Power Tool, -par_csh_man ### From man env_parallel -par_csh_man --colsep regexp Split input on regexp for positional replacements -par_csh_man --nonall Run the given command with no arguments on all sshlogins -par_csh_man --onall Run the given command with argument on all sshlogins -par_csh_man --pipe Split stdin (standard input) to multiple jobs. -par_csh_man --recend str Record end separator for --pipe. -par_csh_man --recstart str Record start separator for --pipe. -par_csh_man --slf .. Use ~/.parallel/sshloginfile as the list of sshlogins -par_csh_man --trc {}.bar Shorthand for --transfer --return {}.bar --cleanup -par_csh_man -S sshlogin Example: foo@server.example.com -par_csh_man -X Multiple arguments with context replace -par_csh_man -j n Run n jobs in parallel -par_csh_man -k Keep same order -par_csh_man Academic tradition requires you to cite works you base your article on. -par_csh_man If you pay 10000 EUR you should feel free to use GNU Parallel without citing. -par_csh_man If you use programs that use GNU Parallel to process data for an article in a -par_csh_man See 'man parallel' for details -par_csh_man This helps funding further development; AND IT WON'T COST YOU A CENT. -par_csh_man Unknown option: no-such-option -par_csh_man Usage: -par_csh_man With --plus: {} = {+/}/{/} = {.}.{+.} = {+/}/{/.}.{+.} = {..}.{+..} = -par_csh_man aliases work -par_csh_man aliases work -par_csh_man aliases work -par_csh_man aliases work -par_csh_man arrays -par_csh_man arrays -par_csh_man arrays -par_csh_man arrays -par_csh_man cat ... | parallel --pipe [options] [command [arguments]] -par_csh_man exit value -1 should be 255 -par_csh_man exit value 2 should be 2 -par_csh_man parallel [options] [command [arguments]] (::: arguments|:::: argfile(s))... -par_csh_man parallel [options] [command [arguments]] < list_of_arguments -par_csh_man scientific publication, please cite: -par_csh_man too -par_csh_man too -par_csh_man too -par_csh_man too -par_csh_man variables work -par_csh_man variables work -par_csh_man variables work -par_csh_man variables work -par_csh_man work, -par_csh_man work, -par_csh_man work, -par_csh_man work, -par_csh_man {3} {3.} {3/} {3/.} {=3 perl code =} Positional replacement strings -par_csh_man {} {.} {/} {/.} {#} {%} {= perl code =} Replacement strings -par_csh_underscore ### csh -par_csh_underscore ### Testing of --env _ -par_csh_underscore #: Command not found. -par_csh_underscore variables and arrays in aliases work -par_csh_underscore variables and arrays in aliases work -par_csh_underscore variables and arrays in aliases work -par_csh_underscore variables and arrays in aliases work -par_csh_underscore variables and arrays in aliases work -par_csh_underscore variables and arrays in aliases work -par_csh_underscore myvar: Undefined variable. -par_csh_underscore myvar: Undefined variable. -par_csh_underscore myarray: Undefined variable. -par_csh_underscore myarray: Undefined variable. -par_csh_underscore myecho: Command not found. -par_csh_underscore OK ^^^^^^^^^^^^^^^^^ if no myecho -par_csh_underscore myecho: Command not found. -par_csh_underscore OK ^^^^^^^^^^^^^^^^^ if no myecho -par_csh_underscore Connection to lo closed. -par_dash_environment_too_big bug #50815: env_parallel should warn if the environment is too big -par_dash_environment_too_big OK -par_dash_environment_too_big OK -par_dash_environment_too_big OK -par_dash_environment_too_big OK -par_dash_environment_too_big dash: 1: which: Argument list too long -par_dash_environment_too_big env_parallel: Error: Your environment is too big. -par_dash_environment_too_big env_parallel: Error: Try running this in a clean environment once: -par_dash_environment_too_big env_parallel: Error: env_parallel --record-env -par_dash_environment_too_big env_parallel: Error: And the use '--env _' -par_dash_environment_too_big env_parallel: Error: For details see: man env_parallel -par_dash_environment_too_big dash: 1: which: Argument list too long -par_dash_environment_too_big env_parallel: Error: Your environment is too big. -par_dash_environment_too_big env_parallel: Error: Try running this in a clean environment once: -par_dash_environment_too_big env_parallel: Error: env_parallel --record-env -par_dash_environment_too_big env_parallel: Error: And the use '--env _' -par_dash_environment_too_big env_parallel: Error: For details see: man env_parallel -par_dash_environment_too_big dash: 1: which: Argument list too long -par_dash_environment_too_big env_parallel: Error: Your environment is too big. -par_dash_environment_too_big env_parallel: Error: Try running this in a clean environment once: -par_dash_environment_too_big env_parallel: Error: env_parallel --record-env -par_dash_environment_too_big env_parallel: Error: And the use '--env _' -par_dash_environment_too_big env_parallel: Error: For details see: man env_parallel -par_dash_environment_too_big dash: 1: which: Argument list too long -par_dash_environment_too_big env_parallel: Error: Your environment is too big. -par_dash_environment_too_big env_parallel: Error: Try running this in a clean environment once: -par_dash_environment_too_big env_parallel: Error: env_parallel --record-env -par_dash_environment_too_big env_parallel: Error: And the use '--env _' -par_dash_environment_too_big env_parallel: Error: For details see: man env_parallel -par_fish_env_parallel_fifo bug #50435: Remote fifo broke in 20150522 -par_fish_env_parallel_fifo data from stdin -par_fish_env_parallel_fifo OK -par_fish_env_parallel_fifo data from stdin -par_fish_env_parallel_fifo OK -par_fish_env_parallel_fifo $? is not the exit status. In fish, please use $status. -par_fish_env_parallel_fifo fish: cat $PARALLEL_TMP; and echo $OK;perl -e '$bash=shift;$csh=shift;for(@ARGV){unlink;rmdir;}if($bash=~s/h//){exit$bash;}exit$csh;' "$?h" "$status" $PARALLEL_TMP -par_fish_env_parallel_fifo ^ -par_fish_environment_too_big Not implemented -par_fish_funky env_parallel: Warning: ASCII value 1 in variables is not supported -par_fish_funky 3 arg alias_works -par_fish_funky env_parallel: Warning: ASCII value 1 in variables is not supported -par_fish_funky function_works -par_fish_funky myvar works -par_fish_funky myenvvar works -par_fish_funky space 6 -par_fish_funky -par_fish_funky -par_fish_funky -par_fish_funky Funky-   !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~-funky -par_fish_funky Funkyenv-   !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~-funkyenv -par_fish_funky -par_fish_funky -par_fish_funky -par_fish_funky env_parallel: Warning: ASCII value 1 in variables is not supported -par_fish_funky 3 arg alias_works_over_ssh -par_fish_funky env_parallel: Warning: ASCII value 1 in variables is not supported -par_fish_funky function_works_over_ssh -par_fish_funky myvar works -par_fish_funky myenvvar works -par_fish_funky space 6 -par_fish_funky -par_fish_funky -par_fish_funky -par_fish_funky Funky-   !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~-funky -par_fish_funky Funkyenv-   !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~-funkyenv -par_fish_funky -par_fish_funky -par_fish_funky -par_fish_funky -par_fish_funky \\\\\\\\ \ \ \ \ \\\\\\\\\\\\\\ \ \!\"\#\$%\&\'\(\)\*+,-./0123456789:\;\<\=\>\?@ABCDEFGHIJKLMNOPQRSTUVWXYZ\[\\\]\^_\`abcdefghijklmnopqrstuvwxyz\{\|\}\~\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ -par_fish_man ### fish -par_fish_man ### From man env_parallel -par_fish_man aliases work -par_fish_man aliases work -par_fish_man aliases work -par_fish_man aliases work -par_fish_man functions work -par_fish_man functions work -par_fish_man functions work -par_fish_man functions work -par_fish_man variables work -par_fish_man variables work -par_fish_man variables work -par_fish_man variables work -par_fish_man arrays -par_fish_man work, -par_fish_man too -par_fish_man arrays -par_fish_man work, -par_fish_man too -par_fish_man arrays -par_fish_man work, -par_fish_man too -par_fish_man arrays -par_fish_man work, -par_fish_man too -par_fish_man exit value 2 should be 2 -par_fish_man Unknown option: no-such-option -par_fish_man exit value 255 should be 255 -par_fish_underscore ### fish -par_fish_underscore ### Testing of --env _ -par_fish_underscore variables in aliases and arrays in functions work -par_fish_underscore variables in aliases and arrays in functions work -par_fish_underscore variables in aliases and arrays in functions work -par_fish_underscore variables in aliases and arrays in functions work -par_fish_underscore variables in aliases and arrays in functions work -par_fish_underscore variables in aliases and arrays in functions work -par_fish_underscore ^ -par_fish_underscore ^ -par_fish_underscore error=OK -par_fish_underscore error=OK -par_fish_underscore aliases and arrays in functions work -par_fish_underscore aliases and arrays in functions work -par_fish_underscore aliases functions work -par_fish_underscore aliases functions work -par_fish_underscore ^ -par_fish_underscore in function “myfunc” -par_fish_underscore called on standard input -par_fish_underscore with parameter list “work” -par_fish_underscore -par_fish_underscore OK if ^^^^^^^^^^^^^^^^^ no myecho -par_fish_underscore ^ -par_fish_underscore in function “myfunc” -par_fish_underscore called on standard input -par_fish_underscore with parameter list “work” -par_fish_underscore -par_fish_underscore OK if ^^^^^^^^^^^^^^^^^ no myecho -par_fish_underscore ^ -par_fish_underscore OK if ^^^^^^^^^^^^^^^^^ no myfunc -par_fish_underscore ^ -par_fish_underscore OK if ^^^^^^^^^^^^^^^^^ no myfunc -par_ksh_env_parallel_fifo OK -par_ksh_env_parallel_fifo OK -par_ksh_env_parallel_fifo bug #50435: Remote fifo broke in 20150522 -par_ksh_env_parallel_fifo data from stdin -par_ksh_env_parallel_fifo data from stdin -par_ksh_environment_too_big bug #50815: env_parallel should warn if the environment is too big -par_ksh_environment_too_big OK -par_ksh_environment_too_big OK -par_ksh_environment_too_big OK -par_ksh_environment_too_big OK -par_ksh_environment_too_big OK -par_ksh_environment_too_big OK -par_ksh_environment_too_big ksh[161]: which: /usr/bin/which: cannot execute [Argument list too long] -par_ksh_environment_too_big env_parallel: Error: Your environment is too big. -par_ksh_environment_too_big env_parallel: Error: Try running this in a clean environment once: -par_ksh_environment_too_big env_parallel: Error: env_parallel --record-env -par_ksh_environment_too_big env_parallel: Error: And the use '--env _' -par_ksh_environment_too_big env_parallel: Error: For details see: man env_parallel -par_ksh_environment_too_big ksh[161]: which: /usr/bin/which: cannot execute [Argument list too long] -par_ksh_environment_too_big env_parallel: Error: Your environment is too big. -par_ksh_environment_too_big env_parallel: Error: Try running this in a clean environment once: -par_ksh_environment_too_big env_parallel: Error: env_parallel --record-env -par_ksh_environment_too_big env_parallel: Error: And the use '--env _' -par_ksh_environment_too_big env_parallel: Error: For details see: man env_parallel -par_ksh_environment_too_big ksh[161]: which: /usr/bin/which: cannot execute [Argument list too long] -par_ksh_environment_too_big env_parallel: Error: Your environment is too big. -par_ksh_environment_too_big env_parallel: Error: Try running this in a clean environment once: -par_ksh_environment_too_big env_parallel: Error: env_parallel --record-env -par_ksh_environment_too_big env_parallel: Error: And the use '--env _' -par_ksh_environment_too_big env_parallel: Error: For details see: man env_parallel -par_ksh_environment_too_big ksh[161]: which: /usr/bin/which: cannot execute [Argument list too long] -par_ksh_environment_too_big env_parallel: Error: Your environment is too big. -par_ksh_environment_too_big env_parallel: Error: Try running this in a clean environment once: -par_ksh_environment_too_big env_parallel: Error: env_parallel --record-env -par_ksh_environment_too_big env_parallel: Error: And the use '--env _' -par_ksh_environment_too_big env_parallel: Error: For details see: man env_parallel -par_ksh_environment_too_big ksh[161]: which: /usr/bin/which: cannot execute [Argument list too long] -par_ksh_environment_too_big env_parallel: Error: Your environment is too big. -par_ksh_environment_too_big env_parallel: Error: Try running this in a clean environment once: -par_ksh_environment_too_big env_parallel: Error: env_parallel --record-env -par_ksh_environment_too_big env_parallel: Error: And the use '--env _' -par_ksh_environment_too_big env_parallel: Error: For details see: man env_parallel -par_ksh_environment_too_big ksh[161]: which: /usr/bin/which: cannot execute [Argument list too long] -par_ksh_environment_too_big env_parallel: Error: Your environment is too big. -par_ksh_environment_too_big env_parallel: Error: Try running this in a clean environment once: -par_ksh_environment_too_big env_parallel: Error: env_parallel --record-env -par_ksh_environment_too_big env_parallel: Error: And the use '--env _' -par_ksh_environment_too_big env_parallel: Error: For details see: man env_parallel -par_ksh_funky -par_ksh_funky \\\\\\\\ -par_ksh_funky  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~-funky -par_ksh_funky  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~-funky -par_ksh_funky space 6 -par_ksh_funky space 6 -par_ksh_funky 3 arg alias_works -par_ksh_funky 3 arg alias_works_over_ssh -par_ksh_funky Funky- -par_ksh_funky Funky- -par_ksh_funky \ \ \ \\\\\\\\\\\\\\ \!\"\#\$%\&\'\(\)\*+,-./0123456789:\;\<\=\>\?@ABCDEFGHIJKLMNOPQRSTUVWXYZ\[\\\]\^_\`abcdefghijklmnopqrstuvwxyz\{\|\}\~\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ -par_ksh_funky assoc_val_a -par_ksh_funky assoc_val_a -par_ksh_funky function_works -par_ksh_funky function_works_over_ssh -par_ksh_funky myvar works -par_ksh_funky myvar works -par_ksh_man ### ksh -par_ksh_man ### From man env_parallel -par_ksh_man aliases work -par_ksh_man aliases work -par_ksh_man aliases work -par_ksh_man aliases work -par_ksh_man functions work -par_ksh_man functions work -par_ksh_man functions work -par_ksh_man functions work -par_ksh_man variables work -par_ksh_man variables work -par_ksh_man variables work -par_ksh_man variables work -par_ksh_man arrays -par_ksh_man work, -par_ksh_man too -par_ksh_man arrays -par_ksh_man work, -par_ksh_man too -par_ksh_man arrays -par_ksh_man work, -par_ksh_man too -par_ksh_man arrays -par_ksh_man work, -par_ksh_man too -par_ksh_man exit value 2 should be 2 -par_ksh_man Unknown option: no-such-option -par_ksh_man exit value 255 should be 255 -par_ksh_underscore ### ksh -par_ksh_underscore ### Testing of --env _ -par_ksh_underscore variables in aliases in and arrays in functions work -par_ksh_underscore variables in aliases in and arrays in functions work -par_ksh_underscore variables in aliases in and arrays in functions work -par_ksh_underscore variables in aliases in and arrays in functions work -par_ksh_underscore variables in aliases in and arrays in functions work -par_ksh_underscore variables in aliases in and arrays in functions work -par_ksh_underscore /usr/bin/ksh: line 5: not_copied_alias: not found -par_ksh_underscore /usr/bin/ksh: line 5: not_copied_func: not found -par_ksh_underscore error=OK -par_ksh_underscore error=OK -par_ksh_underscore aliases in and arrays in functions work -par_ksh_underscore aliases in and arrays in functions work -par_ksh_underscore aliases in functions work -par_ksh_underscore aliases in functions work -par_ksh_underscore /usr/bin/ksh: myecho: not found [No such file or directory] -par_ksh_underscore OK if no myecho ^^^^^^^^^^^^^^^^^ -par_ksh_underscore /usr/bin/ksh: myecho: not found [No such file or directory] -par_ksh_underscore OK if no myecho ^^^^^^^^^^^^^^^^^ -par_ksh_underscore /usr/bin/ksh: line 2: myfunc: not found -par_ksh_underscore OK if no myfunc ^^^^^^^^^^^^^^^^^ -par_ksh_underscore /usr/bin/ksh: line 2: myfunc: not found -par_ksh_underscore OK if no myfunc ^^^^^^^^^^^^^^^^^ -par_sh_environment_too_big bug #50815: env_parallel should warn if the environment is too big -par_sh_environment_too_big OK -par_sh_environment_too_big OK -par_sh_environment_too_big OK -par_sh_environment_too_big OK -par_sh_environment_too_big sh: 1: which: Argument list too long -par_sh_environment_too_big env_parallel: Error: Your environment is too big. -par_sh_environment_too_big env_parallel: Error: Try running this in a clean environment once: -par_sh_environment_too_big env_parallel: Error: env_parallel --record-env -par_sh_environment_too_big env_parallel: Error: And the use '--env _' -par_sh_environment_too_big env_parallel: Error: For details see: man env_parallel -par_sh_environment_too_big sh: 1: which: Argument list too long -par_sh_environment_too_big env_parallel: Error: Your environment is too big. -par_sh_environment_too_big env_parallel: Error: Try running this in a clean environment once: -par_sh_environment_too_big env_parallel: Error: env_parallel --record-env -par_sh_environment_too_big env_parallel: Error: And the use '--env _' -par_sh_environment_too_big env_parallel: Error: For details see: man env_parallel -par_sh_environment_too_big sh: 1: which: Argument list too long -par_sh_environment_too_big env_parallel: Error: Your environment is too big. -par_sh_environment_too_big env_parallel: Error: Try running this in a clean environment once: -par_sh_environment_too_big env_parallel: Error: env_parallel --record-env -par_sh_environment_too_big env_parallel: Error: And the use '--env _' -par_sh_environment_too_big env_parallel: Error: For details see: man env_parallel -par_sh_environment_too_big sh: 1: which: Argument list too long -par_sh_environment_too_big env_parallel: Error: Your environment is too big. -par_sh_environment_too_big env_parallel: Error: Try running this in a clean environment once: -par_sh_environment_too_big env_parallel: Error: env_parallel --record-env -par_sh_environment_too_big env_parallel: Error: And the use '--env _' -par_sh_environment_too_big env_parallel: Error: For details see: man env_parallel -par_tcsh_env_parallel_fifo OK -par_tcsh_env_parallel_fifo OK -par_tcsh_env_parallel_fifo bug #50435: Remote fifo broke in 20150522 -par_tcsh_env_parallel_fifo data from stdin -par_tcsh_env_parallel_fifo data from stdin -par_tcsh_environment_too_big Not implemented -par_tcsh_funky -par_tcsh_funky -par_tcsh_funky -par_tcsh_funky 3 arg alias_works -par_tcsh_funky 3 arg alias_works_over_ssh -par_tcsh_funky Funky-  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~-funky alias_var_works -par_tcsh_funky Funky-  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~-funky alias_var_works_over_ssh -par_tcsh_funky \\\\\\\\ \ \ \ \ \\\\\\\\\\\\\\ \!\"\#\$%\&\'\(\)\*+,-./0123456789:\;\<\=\>\?@ABCDEFGHIJKLMNOPQRSTUVWXYZ\[\\\]\^_\`abcdefghijklmnopqrstuvwxyz\{\|\}\~\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ -par_tcsh_funky func_echo: Command not found. -par_tcsh_funky func_echo: Command not found. -par_tcsh_funky myvar works -par_tcsh_funky myvar works -par_tcsh_funky space special chars problem -par_tcsh_funky space special chars problem +par_zsh_underscore ### zsh +par_zsh_underscore ### Testing of --env _ +par_zsh_underscore variables in aliases in and arrays in functions work +par_zsh_underscore variables in aliases in and arrays in functions work +par_zsh_underscore variables in aliases in and arrays in functions work +par_zsh_underscore variables in aliases in and arrays in functions work +par_zsh_underscore variables in aliases in and arrays in functions work +par_zsh_underscore variables in aliases in and arrays in functions work +par_zsh_underscore (eval):1: command not found: not_copied_alias +par_zsh_underscore (eval):1: command not found: not_copied_func +par_zsh_underscore BAD error=OK +par_zsh_underscore error=OK +par_zsh_underscore aliases in and arrays in functions work +par_zsh_underscore aliases in and arrays in functions work +par_zsh_underscore aliases in functions work +par_zsh_underscore aliases in functions work +par_zsh_underscore (eval):1: command not found: myecho +par_zsh_underscore OK if no .^^^^^^^^^^^^^^^^^^^^^^^^^ myecho +par_zsh_underscore (eval):1: command not found: myecho +par_zsh_underscore OK if no .^^^^^^^^^^^^^^^^^^^^^^^^^ myecho +par_zsh_underscore (eval):1: command not found: myfunc +par_zsh_underscore OK if no .^^^^^^^^^^^^^^^^^^^^^^^^^ myfunc +par_zsh_underscore (eval):1: command not found: myfunc +par_zsh_underscore OK if no .^^^^^^^^^^^^^^^^^^^^^^^^^ myfunc +par_zsh_parset parset +par_zsh_parset ### parset into array +par_zsh_parset foo bar baz +par_zsh_parset ### parset into vars with comma +par_zsh_parset foo bar baz +par_zsh_parset ### parset into vars with space +par_zsh_parset foo bar baz +par_zsh_parset ### parset with newlines +par_zsh_parset 1 +par_zsh_parset 1 +par_zsh_parset 2 +par_zsh_parset 1 +par_zsh_parset 2 +par_zsh_parset 3 +par_zsh_parset ### parset into indexed array vars +par_zsh_parset foo bar baz +par_zsh_parset foo bar baz +par_zsh_parset ### env_parset +par_zsh_parset myecho myvar myarr 0 myfun foo +par_zsh_parset myecho myvar myarr 0 myfun bar +par_zsh_parset myecho myvar myarr 0 myfun baz +par_zsh_parset myecho myvar myarr 0 myfun foo +par_zsh_parset myecho myvar myarr 0 myfun bar +par_zsh_parset myecho myvar myarr 0 myfun baz +par_zsh_parset myecho myvar myarr 0 myfun foo +par_zsh_parset myecho myvar myarr 0 myfun bar +par_zsh_parset myecho myvar myarr 0 myfun baz +par_zsh_parset newline1 +par_zsh_parset newline2 +par_zsh_parset 1 +par_zsh_parset newline1 +par_zsh_parset newline2 +par_zsh_parset 1 +par_zsh_parset 2 +par_zsh_parset newline1 +par_zsh_parset newline2 +par_zsh_parset 1 +par_zsh_parset 2 +par_zsh_parset 3 +par_zsh_parset myecho myvar myarr 0 myfun foo myecho myvar myarr 0 myfun bar myecho myvar myarr 0 myfun baz +par_zsh_parset myecho myvar myarr 0 myfun foo myecho myvar myarr 0 myfun bar myecho myvar myarr 0 myfun baz +par_zsh_man ### zsh +par_zsh_man ### From man env_parallel +par_zsh_man aliases work +par_zsh_man aliases work +par_zsh_man aliases work +par_zsh_man aliases work +par_zsh_man functions work +par_zsh_man functions work +par_zsh_man functions work +par_zsh_man functions work +par_zsh_man variables work +par_zsh_man variables work +par_zsh_man variables work +par_zsh_man variables work +par_zsh_man arrays +par_zsh_man work, +par_zsh_man too +par_zsh_man arrays +par_zsh_man work, +par_zsh_man too +par_zsh_man arrays +par_zsh_man work, +par_zsh_man too +par_zsh_man arrays +par_zsh_man work, +par_zsh_man too +par_zsh_man exit value 2 should be 2 +par_zsh_man Unknown option: no-such-option +par_zsh_man exit value 255 should be 255 +par_zsh_funky +par_zsh_funky \\\\\\\\ +par_zsh_funky  +par_zsh_funky  +par_zsh_funky  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~-funky +par_zsh_funky  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~-funky +par_zsh_funky space 6 +par_zsh_funky space 6 +par_zsh_funky 3 arg alias_works +par_zsh_funky 3 arg alias_works_over_ssh +par_zsh_funky Funky- +par_zsh_funky Funky- +par_zsh_funky \ \ \ \\\\\\\\\\\\\\ \!\"\#\$%\&\'\(\)\*+,-./0123456789:\;\<\=\>\?@ABCDEFGHIJKLMNOPQRSTUVWXYZ\[\\\]\^_\`abcdefghijklmnopqrstuvwxyz\{\|\}\~\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ +par_zsh_funky assoc_val_a +par_zsh_funky assoc_val_a +par_zsh_funky function_works +par_zsh_funky function_works_over_ssh +par_zsh_funky myvar works +par_zsh_funky myvar works +par_zsh_environment_too_big bug #50815: env_parallel should warn if the environment is too big +par_zsh_environment_too_big OK_bigvar +par_zsh_environment_too_big OK_bigvar_remote +par_zsh_environment_too_big OK_bigvar_quote +par_zsh_environment_too_big OK_bigvar_quote_remote +par_zsh_environment_too_big OK_bigfunc +par_zsh_environment_too_big OK_bigfunc_remote +par_zsh_environment_too_big OK_bigfunc_quote +par_zsh_environment_too_big OK_bigfunc_quote_remote +par_zsh_environment_too_big Rest should fail +par_zsh_environment_too_big env_parallel:132: argument list too long: /usr/local/bin/parallel +par_zsh_environment_too_big env_parallel:132: argument list too long: /usr/local/bin/parallel +par_zsh_environment_too_big env_parallel:132: argument list too long: /usr/local/bin/parallel +par_zsh_environment_too_big env_parallel:132: argument list too long: /usr/local/bin/parallel +par_zsh_environment_too_big env_parallel:132: argument list too long: /usr/local/bin/parallel +par_zsh_environment_too_big env_parallel:132: argument list too long: /usr/local/bin/parallel +par_zsh_environment_too_big env_parallel:132: argument list too long: /usr/local/bin/parallel +par_zsh_environment_too_big env_parallel:132: argument list too long: /usr/local/bin/parallel +par_zsh_env_parallel_fifo OK +par_zsh_env_parallel_fifo OK +par_zsh_env_parallel_fifo bug #50435: Remote fifo broke in 20150522 +par_zsh_env_parallel_fifo data from stdin +par_zsh_env_parallel_fifo data from stdin +par_tcsh_underscore ### tcsh +par_tcsh_underscore ### Testing of --env _ +par_tcsh_underscore #: Command not found. +par_tcsh_underscore variables and arrays in aliases work +par_tcsh_underscore variables and arrays in aliases work +par_tcsh_underscore variables and arrays in aliases work +par_tcsh_underscore variables and arrays in aliases work +par_tcsh_underscore variables and arrays in aliases work +par_tcsh_underscore variables and arrays in aliases work +par_tcsh_underscore myvar: Undefined variable. +par_tcsh_underscore myvar: Undefined variable. +par_tcsh_underscore myarray: Undefined variable. +par_tcsh_underscore myarray: Undefined variable. +par_tcsh_underscore myecho: Command not found. +par_tcsh_underscore OK ^^^^^^^^^^^^^^^^^ if no myecho +par_tcsh_underscore myecho: Command not found. +par_tcsh_underscore OK ^^^^^^^^^^^^^^^^^ if no myecho +par_tcsh_underscore Connection to lo closed. +par_tcsh_parset Not implemented par_tcsh_man ### tcsh par_tcsh_man ### From man env_parallel par_tcsh_man #: Command not found. @@ -615,111 +221,754 @@ par_tcsh_man If you pay 10000 EUR you should feel free to use GNU Parallel witho par_tcsh_man par_tcsh_man exit value 255 should be 255 par_tcsh_man Connection to lo closed. -par_tcsh_underscore ### tcsh -par_tcsh_underscore ### Testing of --env _ -par_tcsh_underscore #: Command not found. -par_tcsh_underscore variables and arrays in aliases work -par_tcsh_underscore variables and arrays in aliases work -par_tcsh_underscore variables and arrays in aliases work -par_tcsh_underscore variables and arrays in aliases work -par_tcsh_underscore variables and arrays in aliases work -par_tcsh_underscore variables and arrays in aliases work -par_tcsh_underscore myvar: Undefined variable. -par_tcsh_underscore myvar: Undefined variable. -par_tcsh_underscore myarray: Undefined variable. -par_tcsh_underscore myarray: Undefined variable. -par_tcsh_underscore myecho: Command not found. -par_tcsh_underscore OK ^^^^^^^^^^^^^^^^^ if no myecho -par_tcsh_underscore myecho: Command not found. -par_tcsh_underscore OK ^^^^^^^^^^^^^^^^^ if no myecho -par_tcsh_underscore Connection to lo closed. -par_zsh_env_parallel_fifo OK -par_zsh_env_parallel_fifo OK -par_zsh_env_parallel_fifo bug #50435: Remote fifo broke in 20150522 -par_zsh_env_parallel_fifo data from stdin -par_zsh_env_parallel_fifo data from stdin -par_zsh_environment_too_big bug #50815: env_parallel should warn if the environment is too big -par_zsh_environment_too_big OK -par_zsh_environment_too_big OK -par_zsh_environment_too_big OK -par_zsh_environment_too_big OK -par_zsh_environment_too_big OK -par_zsh_environment_too_big OK -par_zsh_environment_too_big env_parallel:132: argument list too long: /usr/local/bin/parallel -par_zsh_environment_too_big env_parallel:132: argument list too long: /usr/local/bin/parallel -par_zsh_environment_too_big env_parallel:132: argument list too long: /usr/local/bin/parallel -par_zsh_environment_too_big env_parallel:132: argument list too long: /usr/local/bin/parallel -par_zsh_environment_too_big env_parallel:132: argument list too long: /usr/local/bin/parallel -par_zsh_environment_too_big env_parallel:132: argument list too long: /usr/local/bin/parallel -par_zsh_funky -par_zsh_funky \\\\\\\\ -par_zsh_funky  -par_zsh_funky  -par_zsh_funky  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~-funky -par_zsh_funky  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~-funky -par_zsh_funky space 6 -par_zsh_funky space 6 -par_zsh_funky 3 arg alias_works -par_zsh_funky 3 arg alias_works_over_ssh -par_zsh_funky Funky- -par_zsh_funky Funky- -par_zsh_funky \ \ \ \\\\\\\\\\\\\\ \!\"\#\$%\&\'\(\)\*+,-./0123456789:\;\<\=\>\?@ABCDEFGHIJKLMNOPQRSTUVWXYZ\[\\\]\^_\`abcdefghijklmnopqrstuvwxyz\{\|\}\~\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ -par_zsh_funky assoc_val_a -par_zsh_funky assoc_val_a -par_zsh_funky function_works -par_zsh_funky function_works_over_ssh -par_zsh_funky myvar works -par_zsh_funky myvar works -par_zsh_man ### zsh -par_zsh_man ### From man env_parallel -par_zsh_man aliases work -par_zsh_man aliases work -par_zsh_man aliases work -par_zsh_man aliases work -par_zsh_man functions work -par_zsh_man functions work -par_zsh_man functions work -par_zsh_man functions work -par_zsh_man variables work -par_zsh_man variables work -par_zsh_man variables work -par_zsh_man variables work -par_zsh_man arrays -par_zsh_man work, -par_zsh_man too -par_zsh_man arrays -par_zsh_man work, -par_zsh_man too -par_zsh_man arrays -par_zsh_man work, -par_zsh_man too -par_zsh_man arrays -par_zsh_man work, -par_zsh_man too -par_zsh_man exit value 2 should be 2 -par_zsh_man Unknown option: no-such-option -par_zsh_man exit value 255 should be 255 -par_zsh_underscore ### zsh -par_zsh_underscore ### Testing of --env _ -par_zsh_underscore variables in aliases in and arrays in functions work -par_zsh_underscore variables in aliases in and arrays in functions work -par_zsh_underscore variables in aliases in and arrays in functions work -par_zsh_underscore variables in aliases in and arrays in functions work -par_zsh_underscore variables in aliases in and arrays in functions work -par_zsh_underscore variables in aliases in and arrays in functions work -par_zsh_underscore (eval):1: command not found: not_copied_alias -par_zsh_underscore (eval):1: command not found: not_copied_func -par_zsh_underscore BAD error=OK -par_zsh_underscore error=OK -par_zsh_underscore aliases in and arrays in functions work -par_zsh_underscore aliases in and arrays in functions work -par_zsh_underscore aliases in functions work -par_zsh_underscore aliases in functions work -par_zsh_underscore (eval):1: command not found: myecho -par_zsh_underscore OK if no .^^^^^^^^^^^^^^^^^^^^^^^^^ myecho -par_zsh_underscore (eval):1: command not found: myecho -par_zsh_underscore OK if no .^^^^^^^^^^^^^^^^^^^^^^^^^ myecho -par_zsh_underscore (eval):1: command not found: myfunc -par_zsh_underscore OK if no .^^^^^^^^^^^^^^^^^^^^^^^^^ myfunc -par_zsh_underscore (eval):1: command not found: myfunc -par_zsh_underscore OK if no .^^^^^^^^^^^^^^^^^^^^^^^^^ myfunc +par_tcsh_funky +par_tcsh_funky +par_tcsh_funky +par_tcsh_funky 3 arg alias_works +par_tcsh_funky 3 arg alias_works_over_ssh +par_tcsh_funky Funky-  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~-funky alias_var_works +par_tcsh_funky Funky-  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~-funky alias_var_works_over_ssh +par_tcsh_funky \\\\\\\\ \ \ \ \ \\\\\\\\\\\\\\ \!\"\#\$%\&\'\(\)\*+,-./0123456789:\;\<\=\>\?@ABCDEFGHIJKLMNOPQRSTUVWXYZ\[\\\]\^_\`abcdefghijklmnopqrstuvwxyz\{\|\}\~\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ +par_tcsh_funky func_echo: Command not found. +par_tcsh_funky func_echo: Command not found. +par_tcsh_funky myvar works +par_tcsh_funky myvar works +par_tcsh_funky space special chars problem +par_tcsh_funky space special chars problem +par_tcsh_environment_too_big Not implemented +par_tcsh_env_parallel_fifo OK +par_tcsh_env_parallel_fifo OK +par_tcsh_env_parallel_fifo bug #50435: Remote fifo broke in 20150522 +par_tcsh_env_parallel_fifo data from stdin +par_tcsh_env_parallel_fifo data from stdin +par_sh_parset parset +par_sh_parset ### parset into vars with comma +par_sh_parset foo bar baz +par_sh_parset ### parset into vars with space +par_sh_parset foo bar baz +par_sh_parset ### parset with newlines +par_sh_parset 1 +par_sh_parset 1 +par_sh_parset 2 +par_sh_parset 1 +par_sh_parset 2 +par_sh_parset 3 +par_sh_parset ### env_parset +par_sh_parset # alias +par_sh_parset myalias foo +par_sh_parset myalias bar +par_sh_parset myalias baz +par_sh_parset # variable with newline +par_sh_parset newline1 +par_sh_parset newline2 foo +par_sh_parset newline1 +par_sh_parset newline2 bar +par_sh_parset newline1 +par_sh_parset newline2 baz +par_sh_parset ### parset into vars with comma +par_sh_parset foo bar baz +par_sh_parset ### parset into vars with space +par_sh_parset foo bar baz +par_sh_parset ### parset with newlines +par_sh_parset newline1 +par_sh_parset newline2 +par_sh_parset 1 +par_sh_parset newline1 +par_sh_parset newline2 +par_sh_parset 1 +par_sh_parset 2 +par_sh_parset newline1 +par_sh_parset newline2 +par_sh_parset 1 +par_sh_parset 2 +par_sh_parset 3 +par_sh_environment_too_big bug #50815: env_parallel should warn if the environment is too big +par_sh_environment_too_big OK_bigvar +par_sh_environment_too_big OK_bigvar_remote +par_sh_environment_too_big OK_bigvar_quote +par_sh_environment_too_big OK_bigvar_quote_remote +par_sh_environment_too_big Rest should fail +par_sh_environment_too_big sh: 1: which: Argument list too long +par_sh_environment_too_big env_parallel: Error: Your environment is too big. +par_sh_environment_too_big env_parallel: Error: Try running this in a clean environment once: +par_sh_environment_too_big env_parallel: Error: env_parallel --record-env +par_sh_environment_too_big env_parallel: Error: And the use '--env _' +par_sh_environment_too_big env_parallel: Error: For details see: man env_parallel +par_sh_environment_too_big sh: 1: which: Argument list too long +par_sh_environment_too_big env_parallel: Error: Your environment is too big. +par_sh_environment_too_big env_parallel: Error: Try running this in a clean environment once: +par_sh_environment_too_big env_parallel: Error: env_parallel --record-env +par_sh_environment_too_big env_parallel: Error: And the use '--env _' +par_sh_environment_too_big env_parallel: Error: For details see: man env_parallel +par_sh_environment_too_big sh: 1: which: Argument list too long +par_sh_environment_too_big env_parallel: Error: Your environment is too big. +par_sh_environment_too_big env_parallel: Error: Try running this in a clean environment once: +par_sh_environment_too_big env_parallel: Error: env_parallel --record-env +par_sh_environment_too_big env_parallel: Error: And the use '--env _' +par_sh_environment_too_big env_parallel: Error: For details see: man env_parallel +par_sh_environment_too_big sh: 1: which: Argument list too long +par_sh_environment_too_big env_parallel: Error: Your environment is too big. +par_sh_environment_too_big env_parallel: Error: Try running this in a clean environment once: +par_sh_environment_too_big env_parallel: Error: env_parallel --record-env +par_sh_environment_too_big env_parallel: Error: And the use '--env _' +par_sh_environment_too_big env_parallel: Error: For details see: man env_parallel +par_ksh_underscore ### ksh +par_ksh_underscore ### Testing of --env _ +par_ksh_underscore variables in aliases in and arrays in functions work +par_ksh_underscore variables in aliases in and arrays in functions work +par_ksh_underscore variables in aliases in and arrays in functions work +par_ksh_underscore variables in aliases in and arrays in functions work +par_ksh_underscore variables in aliases in and arrays in functions work +par_ksh_underscore variables in aliases in and arrays in functions work +par_ksh_underscore /usr/bin/ksh: line 5: not_copied_alias: not found +par_ksh_underscore /usr/bin/ksh: line 5: not_copied_func: not found +par_ksh_underscore error=OK +par_ksh_underscore error=OK +par_ksh_underscore aliases in and arrays in functions work +par_ksh_underscore aliases in and arrays in functions work +par_ksh_underscore aliases in functions work +par_ksh_underscore aliases in functions work +par_ksh_underscore /usr/bin/ksh: myecho: not found [No such file or directory] +par_ksh_underscore OK if no myecho ^^^^^^^^^^^^^^^^^ +par_ksh_underscore /usr/bin/ksh: myecho: not found [No such file or directory] +par_ksh_underscore OK if no myecho ^^^^^^^^^^^^^^^^^ +par_ksh_underscore /usr/bin/ksh: line 2: myfunc: not found +par_ksh_underscore OK if no myfunc ^^^^^^^^^^^^^^^^^ +par_ksh_underscore /usr/bin/ksh: line 2: myfunc: not found +par_ksh_underscore OK if no myfunc ^^^^^^^^^^^^^^^^^ +par_ksh_parset parset +par_ksh_parset ### parset into array +par_ksh_parset foo bar baz +par_ksh_parset ### parset into vars with comma +par_ksh_parset foo bar baz +par_ksh_parset ### parset into vars with space +par_ksh_parset foo bar baz +par_ksh_parset ### parset with newlines +par_ksh_parset 1 +par_ksh_parset 1 +par_ksh_parset 2 +par_ksh_parset 1 +par_ksh_parset 2 +par_ksh_parset 3 +par_ksh_parset ### parset into indexed array vars +par_ksh_parset foo bar baz +par_ksh_parset foo bar baz +par_ksh_parset ### env_parset +par_ksh_parset myecho myvar myarr 1 myfun foo myecho myvar myarr 1 myfun bar myecho myvar myarr 1 myfun baz +par_ksh_parset myecho myvar myarr 1 myfun foo myecho myvar myarr 1 myfun bar myecho myvar myarr 1 myfun baz +par_ksh_parset +par_ksh_parset newline1 +par_ksh_parset newline2 +par_ksh_parset 1 +par_ksh_parset newline1 +par_ksh_parset newline2 +par_ksh_parset 1 +par_ksh_parset 2 +par_ksh_parset newline1 +par_ksh_parset newline2 +par_ksh_parset 1 +par_ksh_parset 2 +par_ksh_parset 3 +par_ksh_parset myecho myvar myarr 1 myfun foo myecho myvar myarr 1 myfun bar myecho myvar myarr 1 myfun baz +par_ksh_parset myecho myvar myarr 1 myfun foo myecho myvar myarr 1 myfun bar myecho myvar myarr 1 myfun baz +par_ksh_man ### ksh +par_ksh_man ### From man env_parallel +par_ksh_man aliases work +par_ksh_man aliases work +par_ksh_man aliases work +par_ksh_man aliases work +par_ksh_man functions work +par_ksh_man functions work +par_ksh_man functions work +par_ksh_man functions work +par_ksh_man variables work +par_ksh_man variables work +par_ksh_man variables work +par_ksh_man variables work +par_ksh_man arrays +par_ksh_man work, +par_ksh_man too +par_ksh_man arrays +par_ksh_man work, +par_ksh_man too +par_ksh_man arrays +par_ksh_man work, +par_ksh_man too +par_ksh_man arrays +par_ksh_man work, +par_ksh_man too +par_ksh_man exit value 2 should be 2 +par_ksh_man Unknown option: no-such-option +par_ksh_man exit value 255 should be 255 +par_ksh_funky +par_ksh_funky \\\\\\\\ +par_ksh_funky  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~-funky +par_ksh_funky  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~-funky +par_ksh_funky space 6 +par_ksh_funky space 6 +par_ksh_funky 3 arg alias_works +par_ksh_funky 3 arg alias_works_over_ssh +par_ksh_funky Funky- +par_ksh_funky Funky- +par_ksh_funky \ \ \ \\\\\\\\\\\\\\ \!\"\#\$%\&\'\(\)\*+,-./0123456789:\;\<\=\>\?@ABCDEFGHIJKLMNOPQRSTUVWXYZ\[\\\]\^_\`abcdefghijklmnopqrstuvwxyz\{\|\}\~\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ +par_ksh_funky assoc_val_a +par_ksh_funky assoc_val_a +par_ksh_funky function_works +par_ksh_funky function_works_over_ssh +par_ksh_funky myvar works +par_ksh_funky myvar works +par_ksh_environment_too_big bug #50815: env_parallel should warn if the environment is too big +par_ksh_environment_too_big OK_bigvar +par_ksh_environment_too_big OK_bigvar_remote +par_ksh_environment_too_big OK_bigvar_quote +par_ksh_environment_too_big OK_bigvar_quote_remote +par_ksh_environment_too_big OK_bigfunc +par_ksh_environment_too_big OK_bigfunc_remote +par_ksh_environment_too_big OK_bigfunc_quote +par_ksh_environment_too_big OK_bigfunc_quote_remote +par_ksh_environment_too_big Rest should fail +par_ksh_environment_too_big ksh[163]: which: /usr/bin/which: cannot execute [Argument list too long] +par_ksh_environment_too_big env_parallel: Error: Your environment is too big. +par_ksh_environment_too_big env_parallel: Error: Try running this in a clean environment once: +par_ksh_environment_too_big env_parallel: Error: env_parallel --record-env +par_ksh_environment_too_big env_parallel: Error: And the use '--env _' +par_ksh_environment_too_big env_parallel: Error: For details see: man env_parallel +par_ksh_environment_too_big ksh[163]: which: /usr/bin/which: cannot execute [Argument list too long] +par_ksh_environment_too_big env_parallel: Error: Your environment is too big. +par_ksh_environment_too_big env_parallel: Error: Try running this in a clean environment once: +par_ksh_environment_too_big env_parallel: Error: env_parallel --record-env +par_ksh_environment_too_big env_parallel: Error: And the use '--env _' +par_ksh_environment_too_big env_parallel: Error: For details see: man env_parallel +par_ksh_environment_too_big ksh[163]: which: /usr/bin/which: cannot execute [Argument list too long] +par_ksh_environment_too_big env_parallel: Error: Your environment is too big. +par_ksh_environment_too_big env_parallel: Error: Try running this in a clean environment once: +par_ksh_environment_too_big env_parallel: Error: env_parallel --record-env +par_ksh_environment_too_big env_parallel: Error: And the use '--env _' +par_ksh_environment_too_big env_parallel: Error: For details see: man env_parallel +par_ksh_environment_too_big ksh[163]: which: /usr/bin/which: cannot execute [Argument list too long] +par_ksh_environment_too_big env_parallel: Error: Your environment is too big. +par_ksh_environment_too_big env_parallel: Error: Try running this in a clean environment once: +par_ksh_environment_too_big env_parallel: Error: env_parallel --record-env +par_ksh_environment_too_big env_parallel: Error: And the use '--env _' +par_ksh_environment_too_big env_parallel: Error: For details see: man env_parallel +par_ksh_environment_too_big ksh[163]: which: /usr/bin/which: cannot execute [Argument list too long] +par_ksh_environment_too_big env_parallel: Error: Your environment is too big. +par_ksh_environment_too_big env_parallel: Error: Try running this in a clean environment once: +par_ksh_environment_too_big env_parallel: Error: env_parallel --record-env +par_ksh_environment_too_big env_parallel: Error: And the use '--env _' +par_ksh_environment_too_big env_parallel: Error: For details see: man env_parallel +par_ksh_environment_too_big ksh[163]: which: /usr/bin/which: cannot execute [Argument list too long] +par_ksh_environment_too_big env_parallel: Error: Your environment is too big. +par_ksh_environment_too_big env_parallel: Error: Try running this in a clean environment once: +par_ksh_environment_too_big env_parallel: Error: env_parallel --record-env +par_ksh_environment_too_big env_parallel: Error: And the use '--env _' +par_ksh_environment_too_big env_parallel: Error: For details see: man env_parallel +par_ksh_environment_too_big ksh[163]: which: /usr/bin/which: cannot execute [Argument list too long] +par_ksh_environment_too_big env_parallel: Error: Your environment is too big. +par_ksh_environment_too_big env_parallel: Error: Try running this in a clean environment once: +par_ksh_environment_too_big env_parallel: Error: env_parallel --record-env +par_ksh_environment_too_big env_parallel: Error: And the use '--env _' +par_ksh_environment_too_big env_parallel: Error: For details see: man env_parallel +par_ksh_environment_too_big ksh[163]: which: /usr/bin/which: cannot execute [Argument list too long] +par_ksh_environment_too_big env_parallel: Error: Your environment is too big. +par_ksh_environment_too_big env_parallel: Error: Try running this in a clean environment once: +par_ksh_environment_too_big env_parallel: Error: env_parallel --record-env +par_ksh_environment_too_big env_parallel: Error: And the use '--env _' +par_ksh_environment_too_big env_parallel: Error: For details see: man env_parallel +par_ksh_env_parallel_fifo OK +par_ksh_env_parallel_fifo OK +par_ksh_env_parallel_fifo bug #50435: Remote fifo broke in 20150522 +par_ksh_env_parallel_fifo data from stdin +par_ksh_env_parallel_fifo data from stdin +par_fish_underscore ### fish +par_fish_underscore ### Testing of --env _ +par_fish_underscore variables in aliases and arrays in functions work +par_fish_underscore variables in aliases and arrays in functions work +par_fish_underscore variables in aliases and arrays in functions work +par_fish_underscore variables in aliases and arrays in functions work +par_fish_underscore variables in aliases and arrays in functions work +par_fish_underscore variables in aliases and arrays in functions work +par_fish_underscore ^ +par_fish_underscore ^ +par_fish_underscore error=OK +par_fish_underscore error=OK +par_fish_underscore aliases and arrays in functions work +par_fish_underscore aliases and arrays in functions work +par_fish_underscore aliases functions work +par_fish_underscore aliases functions work +par_fish_underscore ^ +par_fish_underscore in function “myfunc” +par_fish_underscore called on standard input +par_fish_underscore with parameter list “work” +par_fish_underscore +par_fish_underscore OK if ^^^^^^^^^^^^^^^^^ no myecho +par_fish_underscore ^ +par_fish_underscore in function “myfunc” +par_fish_underscore called on standard input +par_fish_underscore with parameter list “work” +par_fish_underscore +par_fish_underscore OK if ^^^^^^^^^^^^^^^^^ no myecho +par_fish_underscore ^ +par_fish_underscore OK if ^^^^^^^^^^^^^^^^^ no myfunc +par_fish_underscore ^ +par_fish_underscore OK if ^^^^^^^^^^^^^^^^^ no myfunc +par_fish_parset Not implemented +par_fish_man ### fish +par_fish_man ### From man env_parallel +par_fish_man aliases work +par_fish_man aliases work +par_fish_man aliases work +par_fish_man aliases work +par_fish_man functions work +par_fish_man functions work +par_fish_man functions work +par_fish_man functions work +par_fish_man variables work +par_fish_man variables work +par_fish_man variables work +par_fish_man variables work +par_fish_man arrays +par_fish_man work, +par_fish_man too +par_fish_man arrays +par_fish_man work, +par_fish_man too +par_fish_man arrays +par_fish_man work, +par_fish_man too +par_fish_man arrays +par_fish_man work, +par_fish_man too +par_fish_man exit value 2 should be 2 +par_fish_man Unknown option: no-such-option +par_fish_man exit value 255 should be 255 +par_fish_funky env_parallel: Warning: ASCII value 1 in variables is not supported +par_fish_funky 3 arg alias_works +par_fish_funky env_parallel: Warning: ASCII value 1 in variables is not supported +par_fish_funky function_works +par_fish_funky myvar works +par_fish_funky myenvvar works +par_fish_funky space 6 +par_fish_funky +par_fish_funky +par_fish_funky +par_fish_funky Funky-   !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~-funky +par_fish_funky Funkyenv-   !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~-funkyenv +par_fish_funky +par_fish_funky +par_fish_funky +par_fish_funky env_parallel: Warning: ASCII value 1 in variables is not supported +par_fish_funky 3 arg alias_works_over_ssh +par_fish_funky env_parallel: Warning: ASCII value 1 in variables is not supported +par_fish_funky function_works_over_ssh +par_fish_funky myvar works +par_fish_funky myenvvar works +par_fish_funky space 6 +par_fish_funky +par_fish_funky +par_fish_funky +par_fish_funky Funky-   !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~-funky +par_fish_funky Funkyenv-   !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~-funkyenv +par_fish_funky +par_fish_funky +par_fish_funky +par_fish_funky +par_fish_funky \\\\\\\\ \ \ \ \ \\\\\\\\\\\\\\ \ \!\"\#\$%\&\'\(\)\*+,-./0123456789:\;\<\=\>\?@ABCDEFGHIJKLMNOPQRSTUVWXYZ\[\\\]\^_\`abcdefghijklmnopqrstuvwxyz\{\|\}\~\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ +par_fish_environment_too_big Not implemented +par_fish_env_parallel_fifo bug #50435: Remote fifo broke in 20150522 +par_fish_env_parallel_fifo data from stdin +par_fish_env_parallel_fifo OK +par_fish_env_parallel_fifo data from stdin +par_fish_env_parallel_fifo OK +par_fish_env_parallel_fifo $? is not the exit status. In fish, please use $status. +par_fish_env_parallel_fifo fish: cat $PARALLEL_TMP; and echo $OK;perl -e '$bash=shift;$csh=shift;for(@ARGV){unlink;rmdir;}if($bash=~s/h//){exit$bash;}exit$csh;' "$?h" "$status" $PARALLEL_TMP +par_fish_env_parallel_fifo ^ +par_dash_parset parset +par_dash_parset ### parset into vars with comma +par_dash_parset foo bar baz +par_dash_parset ### parset into vars with space +par_dash_parset foo bar baz +par_dash_parset ### parset with newlines +par_dash_parset 1 +par_dash_parset 1 +par_dash_parset 2 +par_dash_parset 1 +par_dash_parset 2 +par_dash_parset 3 +par_dash_parset ### env_parset +par_dash_parset myecho myvar foo myecho myvar bar myecho myvar baz +par_dash_parset myecho myvar foo myecho myvar bar myecho myvar baz +par_dash_parset newline1 +par_dash_parset newline2 +par_dash_parset 1 +par_dash_parset newline1 +par_dash_parset newline2 +par_dash_parset 1 +par_dash_parset 2 +par_dash_parset newline1 +par_dash_parset newline2 +par_dash_parset 1 +par_dash_parset 2 +par_dash_parset 3 +par_dash_environment_too_big bug #50815: env_parallel should warn if the environment is too big +par_dash_environment_too_big OK_bigvar +par_dash_environment_too_big OK_bigvar_remote +par_dash_environment_too_big OK_bigvar_quote +par_dash_environment_too_big OK_bigvar_quote_remote +par_dash_environment_too_big Rest should fail +par_dash_environment_too_big dash: 1: which: Argument list too long +par_dash_environment_too_big env_parallel: Error: Your environment is too big. +par_dash_environment_too_big env_parallel: Error: Try running this in a clean environment once: +par_dash_environment_too_big env_parallel: Error: env_parallel --record-env +par_dash_environment_too_big env_parallel: Error: And the use '--env _' +par_dash_environment_too_big env_parallel: Error: For details see: man env_parallel +par_dash_environment_too_big dash: 1: which: Argument list too long +par_dash_environment_too_big env_parallel: Error: Your environment is too big. +par_dash_environment_too_big env_parallel: Error: Try running this in a clean environment once: +par_dash_environment_too_big env_parallel: Error: env_parallel --record-env +par_dash_environment_too_big env_parallel: Error: And the use '--env _' +par_dash_environment_too_big env_parallel: Error: For details see: man env_parallel +par_dash_environment_too_big dash: 1: which: Argument list too long +par_dash_environment_too_big env_parallel: Error: Your environment is too big. +par_dash_environment_too_big env_parallel: Error: Try running this in a clean environment once: +par_dash_environment_too_big env_parallel: Error: env_parallel --record-env +par_dash_environment_too_big env_parallel: Error: And the use '--env _' +par_dash_environment_too_big env_parallel: Error: For details see: man env_parallel +par_dash_environment_too_big dash: 1: which: Argument list too long +par_dash_environment_too_big env_parallel: Error: Your environment is too big. +par_dash_environment_too_big env_parallel: Error: Try running this in a clean environment once: +par_dash_environment_too_big env_parallel: Error: env_parallel --record-env +par_dash_environment_too_big env_parallel: Error: And the use '--env _' +par_dash_environment_too_big env_parallel: Error: For details see: man env_parallel +par_csh_underscore ### csh +par_csh_underscore ### Testing of --env _ +par_csh_underscore #: Command not found. +par_csh_underscore variables and arrays in aliases work +par_csh_underscore variables and arrays in aliases work +par_csh_underscore variables and arrays in aliases work +par_csh_underscore variables and arrays in aliases work +par_csh_underscore variables and arrays in aliases work +par_csh_underscore variables and arrays in aliases work +par_csh_underscore myvar: Undefined variable. +par_csh_underscore myvar: Undefined variable. +par_csh_underscore myarray: Undefined variable. +par_csh_underscore myarray: Undefined variable. +par_csh_underscore myecho: Command not found. +par_csh_underscore OK ^^^^^^^^^^^^^^^^^ if no myecho +par_csh_underscore myecho: Command not found. +par_csh_underscore OK ^^^^^^^^^^^^^^^^^ if no myecho +par_csh_underscore Connection to lo closed. +par_csh_parset Not implemented +par_csh_man ### csh +par_csh_man +par_csh_man +par_csh_man +par_csh_man +par_csh_man +par_csh_man +par_csh_man +par_csh_man +par_csh_man +par_csh_man {+/}/{/..}.{+..} = {...}.{+...} = {+/}/{/...}.{+...} +par_csh_man ;login: The USENIX Magazine, February 2011:42-47. +par_csh_man O. Tange (2011): GNU Parallel - The Command-Line Power Tool, +par_csh_man ### From man env_parallel +par_csh_man --colsep regexp Split input on regexp for positional replacements +par_csh_man --nonall Run the given command with no arguments on all sshlogins +par_csh_man --onall Run the given command with argument on all sshlogins +par_csh_man --pipe Split stdin (standard input) to multiple jobs. +par_csh_man --recend str Record end separator for --pipe. +par_csh_man --recstart str Record start separator for --pipe. +par_csh_man --slf .. Use ~/.parallel/sshloginfile as the list of sshlogins +par_csh_man --trc {}.bar Shorthand for --transfer --return {}.bar --cleanup +par_csh_man -S sshlogin Example: foo@server.example.com +par_csh_man -X Multiple arguments with context replace +par_csh_man -j n Run n jobs in parallel +par_csh_man -k Keep same order +par_csh_man Academic tradition requires you to cite works you base your article on. +par_csh_man If you pay 10000 EUR you should feel free to use GNU Parallel without citing. +par_csh_man If you use programs that use GNU Parallel to process data for an article in a +par_csh_man See 'man parallel' for details +par_csh_man This helps funding further development; AND IT WON'T COST YOU A CENT. +par_csh_man Unknown option: no-such-option +par_csh_man Usage: +par_csh_man With --plus: {} = {+/}/{/} = {.}.{+.} = {+/}/{/.}.{+.} = {..}.{+..} = +par_csh_man aliases work +par_csh_man aliases work +par_csh_man aliases work +par_csh_man aliases work +par_csh_man arrays +par_csh_man arrays +par_csh_man arrays +par_csh_man arrays +par_csh_man cat ... | parallel --pipe [options] [command [arguments]] +par_csh_man exit value -1 should be 255 +par_csh_man exit value 2 should be 2 +par_csh_man parallel [options] [command [arguments]] (::: arguments|:::: argfile(s))... +par_csh_man parallel [options] [command [arguments]] < list_of_arguments +par_csh_man scientific publication, please cite: +par_csh_man too +par_csh_man too +par_csh_man too +par_csh_man too +par_csh_man variables work +par_csh_man variables work +par_csh_man variables work +par_csh_man variables work +par_csh_man work, +par_csh_man work, +par_csh_man work, +par_csh_man work, +par_csh_man {3} {3.} {3/} {3/.} {=3 perl code =} Positional replacement strings +par_csh_man {} {.} {/} {/.} {#} {%} {= perl code =} Replacement strings +par_csh_funky 3 arg alias_works +par_csh_funky myvar works +par_csh_funky space special chars problem +par_csh_funky Funky-  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~-funky alias_var_works +par_csh_funky func_echo: Command not found. +par_csh_funky 3 arg alias_works_over_ssh +par_csh_funky myvar works +par_csh_funky space special chars problem +par_csh_funky Funky-  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~-funky alias_var_works_over_ssh +par_csh_funky func_echo: Command not found. +par_csh_funky \\\\\\\\ \ \ \ \ \\\\\\\\\\\\\\ \!\"\#\$%\&\'\(\)\*+,-./0123456789:\;\<\=\>\?@ABCDEFGHIJKLMNOPQRSTUVWXYZ\[\\\]\^_\`abcdefghijklmnopqrstuvwxyz\{\|\}\~\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ +par_csh_environment_too_big Not implemented +par_csh_env_parallel_fifo bug #50435: Remote fifo broke in 20150522 +par_csh_env_parallel_fifo data from stdin +par_csh_env_parallel_fifo OK +par_csh_env_parallel_fifo data from stdin +par_csh_env_parallel_fifo OK +par_bash_underscore ### bash +par_bash_underscore ### Testing of --env _ +par_bash_underscore variables in aliases in and arrays in functions work +par_bash_underscore variables in aliases in and arrays in functions work +par_bash_underscore variables in aliases in and arrays in functions work +par_bash_underscore variables in aliases in and arrays in functions work +par_bash_underscore variables in aliases in and arrays in functions work +par_bash_underscore variables in aliases in and arrays in functions work +par_bash_underscore /bin/bash: line 56: not_copied_alias: command not found +par_bash_underscore /bin/bash: line 56: not_copied_func: command not found +par_bash_underscore error=OK +par_bash_underscore error=OK +par_bash_underscore aliases in and arrays in functions work +par_bash_underscore aliases in and arrays in functions work +par_bash_underscore aliases in functions work +par_bash_underscore aliases in functions work +par_bash_underscore /bin/bash: line 49: myecho: command not found +par_bash_underscore OK if no myecho ^^^^^^^^^^^^^^^^^^^^^^^^^ +par_bash_underscore /bin/bash: line 49: myecho: command not found +par_bash_underscore OK if no myecho ^^^^^^^^^^^^^^^^^^^^^^^^^ +par_bash_underscore /bin/bash: line 49: myfunc: command not found +par_bash_underscore OK if no myfunc ^^^^^^^^^^^^^^^^^^^^^^^^^ +par_bash_underscore /bin/bash: line 49: myfunc: command not found +par_bash_underscore OK if no myfunc ^^^^^^^^^^^^^^^^^^^^^^^^^ +par_bash_parset parset +par_bash_parset ### parset into array +par_bash_parset foo bar baz +par_bash_parset ### parset into vars with comma +par_bash_parset foo bar baz +par_bash_parset ### parset into vars with space +par_bash_parset foo bar baz +par_bash_parset ### parset with newlines +par_bash_parset 1 +par_bash_parset 1 +par_bash_parset 2 +par_bash_parset 1 +par_bash_parset 2 +par_bash_parset 3 +par_bash_parset ### parset into indexed array vars +par_bash_parset foo bar baz +par_bash_parset foo bar baz +par_bash_parset ### env_parset +par_bash_parset myecho myvar myarr 1 myfun foo myecho myvar myarr 1 myfun bar myecho myvar myarr 1 myfun baz +par_bash_parset myecho myvar myarr 1 myfun foo myecho myvar myarr 1 myfun bar myecho myvar myarr 1 myfun baz +par_bash_parset +par_bash_parset newline1 +par_bash_parset newline2 +par_bash_parset 1 +par_bash_parset newline1 +par_bash_parset newline2 +par_bash_parset 1 +par_bash_parset 2 +par_bash_parset newline1 +par_bash_parset newline2 +par_bash_parset 1 +par_bash_parset 2 +par_bash_parset 3 +par_bash_parset myecho myvar myarr 1 myfun foo myecho myvar myarr 1 myfun bar myecho myvar myarr 1 myfun baz +par_bash_parset myecho myvar myarr 1 myfun foo myecho myvar myarr 1 myfun bar myecho myvar myarr 1 myfun baz +par_bash_man ### bash +par_bash_man ### From man env_parallel +par_bash_man aliases work +par_bash_man aliases work +par_bash_man aliases work +par_bash_man aliases work +par_bash_man functions work +par_bash_man functions work +par_bash_man functions work +par_bash_man functions work +par_bash_man variables work +par_bash_man variables work +par_bash_man variables work +par_bash_man variables work +par_bash_man arrays +par_bash_man work, +par_bash_man too +par_bash_man arrays +par_bash_man work, +par_bash_man too +par_bash_man arrays +par_bash_man work, +par_bash_man too +par_bash_man arrays +par_bash_man work, +par_bash_man too +par_bash_man exit value 2 should be 2 +par_bash_man Unknown option: no-such-option +par_bash_man exit value 255 should be 255 +par_bash_funky +par_bash_funky +par_bash_funky +par_bash_funky \\\\\\\\ +par_bash_funky  +par_bash_funky  +par_bash_funky +par_bash_funky +par_bash_funky space 6 +par_bash_funky space 6 +par_bash_funky 3 arg alias_works +par_bash_funky 3 arg alias_works_over_ssh +par_bash_funky Funkyline-  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~-funkyline +par_bash_funky Funkyline-  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~-funkyline +par_bash_funky Funkymultiline- +par_bash_funky Funkymultiline- +par_bash_funky \ \  +par_bash_funky \ \\\\\\\\\\\\\\ \!\"\#\$%\&\'\(\)\*+,-./0123456789:\;\<\=\>\?@ABCDEFGHIJKLMNOPQRSTUVWXYZ\[\\\]\^_\`abcdefghijklmnopqrstuvwxyz\{\|\}\~\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ +par_bash_funky assoc_val_a +par_bash_funky assoc_val_a +par_bash_funky function_works +par_bash_funky function_works_over_ssh +par_bash_funky myvar works +par_bash_funky myvar works +par_bash_funky -funkymultiline +par_bash_funky -funkymultiline +par_bash_environment_too_big bug #50815: env_parallel should warn if the environment is too big +par_bash_environment_too_big OK_bigvar +par_bash_environment_too_big OK_bigvar_remote +par_bash_environment_too_big OK_bigvar_quote +par_bash_environment_too_big OK_bigvar_quote_remote +par_bash_environment_too_big OK_bigfunc +par_bash_environment_too_big OK_bigfunc_remote +par_bash_environment_too_big OK_bigfunc_quote +par_bash_environment_too_big OK_bigfunc_quote_remote +par_bash_environment_too_big Rest should fail +par_bash_environment_too_big /usr/local/bin/env_parallel.bash: line 170: /usr/bin/which: Argument list too long +par_bash_environment_too_big env_parallel: Error: Your environment is too big. +par_bash_environment_too_big env_parallel: Error: Try running this in a clean environment once: +par_bash_environment_too_big env_parallel: Error: env_parallel --record-env +par_bash_environment_too_big env_parallel: Error: And the use '--env _' +par_bash_environment_too_big env_parallel: Error: For details see: man env_parallel +par_bash_environment_too_big /usr/local/bin/env_parallel.bash: line 170: /usr/bin/which: Argument list too long +par_bash_environment_too_big env_parallel: Error: Your environment is too big. +par_bash_environment_too_big env_parallel: Error: Try running this in a clean environment once: +par_bash_environment_too_big env_parallel: Error: env_parallel --record-env +par_bash_environment_too_big env_parallel: Error: And the use '--env _' +par_bash_environment_too_big env_parallel: Error: For details see: man env_parallel +par_bash_environment_too_big /usr/local/bin/env_parallel.bash: line 170: /usr/bin/which: Argument list too long +par_bash_environment_too_big env_parallel: Error: Your environment is too big. +par_bash_environment_too_big env_parallel: Error: Try running this in a clean environment once: +par_bash_environment_too_big env_parallel: Error: env_parallel --record-env +par_bash_environment_too_big env_parallel: Error: And the use '--env _' +par_bash_environment_too_big env_parallel: Error: For details see: man env_parallel +par_bash_environment_too_big /usr/local/bin/env_parallel.bash: line 170: /usr/bin/which: Argument list too long +par_bash_environment_too_big env_parallel: Error: Your environment is too big. +par_bash_environment_too_big env_parallel: Error: Try running this in a clean environment once: +par_bash_environment_too_big env_parallel: Error: env_parallel --record-env +par_bash_environment_too_big env_parallel: Error: And the use '--env _' +par_bash_environment_too_big env_parallel: Error: For details see: man env_parallel +par_bash_environment_too_big /usr/local/bin/env_parallel.bash: line 170: /usr/bin/which: Argument list too long +par_bash_environment_too_big env_parallel: Error: Your environment is too big. +par_bash_environment_too_big env_parallel: Error: Try running this in a clean environment once: +par_bash_environment_too_big env_parallel: Error: env_parallel --record-env +par_bash_environment_too_big env_parallel: Error: And the use '--env _' +par_bash_environment_too_big env_parallel: Error: For details see: man env_parallel +par_bash_environment_too_big /usr/local/bin/env_parallel.bash: line 170: /usr/bin/which: Argument list too long +par_bash_environment_too_big env_parallel: Error: Your environment is too big. +par_bash_environment_too_big env_parallel: Error: Try running this in a clean environment once: +par_bash_environment_too_big env_parallel: Error: env_parallel --record-env +par_bash_environment_too_big env_parallel: Error: And the use '--env _' +par_bash_environment_too_big env_parallel: Error: For details see: man env_parallel +par_bash_environment_too_big /usr/local/bin/env_parallel.bash: line 170: /usr/bin/which: Argument list too long +par_bash_environment_too_big env_parallel: Error: Your environment is too big. +par_bash_environment_too_big env_parallel: Error: Try running this in a clean environment once: +par_bash_environment_too_big env_parallel: Error: env_parallel --record-env +par_bash_environment_too_big env_parallel: Error: And the use '--env _' +par_bash_environment_too_big env_parallel: Error: For details see: man env_parallel +par_bash_environment_too_big /usr/local/bin/env_parallel.bash: line 170: /usr/bin/which: Argument list too long +par_bash_environment_too_big env_parallel: Error: Your environment is too big. +par_bash_environment_too_big env_parallel: Error: Try running this in a clean environment once: +par_bash_environment_too_big env_parallel: Error: env_parallel --record-env +par_bash_environment_too_big env_parallel: Error: And the use '--env _' +par_bash_environment_too_big env_parallel: Error: For details see: man env_parallel +par_bash_env_parallel_fifo OK +par_bash_env_parallel_fifo OK +par_bash_env_parallel_fifo bug #50435: Remote fifo broke in 20150522 +par_bash_env_parallel_fifo data from stdin +par_bash_env_parallel_fifo data from stdin +par_ash_parset parset +par_ash_parset ### parset into vars with comma +par_ash_parset foo bar baz +par_ash_parset ### parset into vars with space +par_ash_parset foo bar baz +par_ash_parset ### parset with newlines +par_ash_parset 1 +par_ash_parset 1 +par_ash_parset 2 +par_ash_parset 1 +par_ash_parset 2 +par_ash_parset 3 +par_ash_parset ### env_parset +par_ash_parset myecho myvar foo myecho myvar bar myecho myvar baz +par_ash_parset myecho myvar foo myecho myvar bar myecho myvar baz +par_ash_parset newline1 +par_ash_parset newline2 +par_ash_parset 1 +par_ash_parset newline1 +par_ash_parset newline2 +par_ash_parset 1 +par_ash_parset 2 +par_ash_parset newline1 +par_ash_parset newline2 +par_ash_parset 1 +par_ash_parset 2 +par_ash_parset 3 +par_ash_environment_too_big bug #50815: env_parallel should warn if the environment is too big +par_ash_environment_too_big OK_bigvar +par_ash_environment_too_big OK_bigvar_remote +par_ash_environment_too_big OK_bigvar_quote +par_ash_environment_too_big OK_bigvar_quote_remote +par_ash_environment_too_big Rest should fail +par_ash_environment_too_big ash: 1: which: Argument list too long +par_ash_environment_too_big env_parallel: Error: Your environment is too big. +par_ash_environment_too_big env_parallel: Error: Try running this in a clean environment once: +par_ash_environment_too_big env_parallel: Error: env_parallel --record-env +par_ash_environment_too_big env_parallel: Error: And the use '--env _' +par_ash_environment_too_big env_parallel: Error: For details see: man env_parallel +par_ash_environment_too_big ash: 1: which: Argument list too long +par_ash_environment_too_big env_parallel: Error: Your environment is too big. +par_ash_environment_too_big env_parallel: Error: Try running this in a clean environment once: +par_ash_environment_too_big env_parallel: Error: env_parallel --record-env +par_ash_environment_too_big env_parallel: Error: And the use '--env _' +par_ash_environment_too_big env_parallel: Error: For details see: man env_parallel +par_ash_environment_too_big ash: 1: which: Argument list too long +par_ash_environment_too_big env_parallel: Error: Your environment is too big. +par_ash_environment_too_big env_parallel: Error: Try running this in a clean environment once: +par_ash_environment_too_big env_parallel: Error: env_parallel --record-env +par_ash_environment_too_big env_parallel: Error: And the use '--env _' +par_ash_environment_too_big env_parallel: Error: For details see: man env_parallel +par_ash_environment_too_big ash: 1: which: Argument list too long +par_ash_environment_too_big env_parallel: Error: Your environment is too big. +par_ash_environment_too_big env_parallel: Error: Try running this in a clean environment once: +par_ash_environment_too_big env_parallel: Error: env_parallel --record-env +par_ash_environment_too_big env_parallel: Error: And the use '--env _' +par_ash_environment_too_big env_parallel: Error: For details see: man env_parallel