From b06698bee15bf5282841f9903585463b25a6bcaf Mon Sep 17 00:00:00 2001 From: Ole Tange Date: Sun, 19 Feb 2023 14:49:30 +0100 Subject: [PATCH] parallel: Restrict TMPDIR and other env dirs to safe charset. --- doc/release_new_version | 2 + src/parallel | 30 +- src/parallel_alternatives.pod | 59 + testsuite/Start.sh | 43 +- testsuite/tests-to-run/parallel-freebsd.sh | 1 + testsuite/tests-to-run/parallel-local-0.3s.sh | 11 +- testsuite/tests-to-run/parallel-local-10s.sh | 158 +- testsuite/tests-to-run/parallel-local-1s.sh | 23 +- testsuite/tests-to-run/parallel-local-30s.sh | 47 +- .../tests-to-run/parallel-local-race01.sh | 8 +- testsuite/tests-to-run/parallel-local-ssh1.sh | 6 +- testsuite/tests-to-run/parallel-local-ssh2.sh | 4 +- testsuite/tests-to-run/parallel-local-ssh4.sh | 83 +- testsuite/tests-to-run/parallel-local-ssh5.sh | 30 +- testsuite/tests-to-run/parallel-local-ssh6.sh | 2 +- testsuite/tests-to-run/parallel-local-ssh7.sh | 142 +- testsuite/tests-to-run/parallel-local-ssh8.sh | 8 +- testsuite/tests-to-run/parallel-local-ssh9.sh | 2 +- testsuite/tests-to-run/parallel-local10.sh | 8 + testsuite/tests-to-run/parallel-local150.sh | 4 - testsuite/tests-to-run/parallel-local21.sh | 2 + testsuite/tests-to-run/parallel-local22.sh | 4 +- testsuite/tests-to-run/parallel-local7.sh | 3 +- testsuite/tests-to-run/parallel-macos.sh | 5 + testsuite/tests-to-run/parallel-remote1.sh | 4 + testsuite/tests-to-run/parallel-tutorial.sh | 181 +- testsuite/tests-to-run/sql01.sh | 5 +- testsuite/tests-to-run/test41.sh | 9 + testsuite/wanted-results/parallel-local-0.3s | 67 +- testsuite/wanted-results/parallel-local-10s | 282 +- testsuite/wanted-results/parallel-local-1s | 31 +- testsuite/wanted-results/parallel-local-30s | 21 +- .../wanted-results/parallel-local-race01 | 21 +- testsuite/wanted-results/parallel-local-ssh1 | 114 +- testsuite/wanted-results/parallel-local-ssh2 | 8 +- testsuite/wanted-results/parallel-local-ssh4 | 556 +- testsuite/wanted-results/parallel-local-ssh5 | 1190 ++--- testsuite/wanted-results/parallel-local-ssh6 | 24 +- testsuite/wanted-results/parallel-local-ssh7 | 4678 ++++++++--------- testsuite/wanted-results/parallel-local-ssh8 | 28 +- testsuite/wanted-results/parallel-local104 | Bin 370 -> 370 bytes testsuite/wanted-results/parallel-local22 | 46 +- testsuite/wanted-results/parallel-local5 | 6 +- testsuite/wanted-results/parallel-local7 | 18 +- testsuite/wanted-results/parallel-macos | 77 +- testsuite/wanted-results/parallel-tutorial | 31 +- testsuite/wanted-results/sql01 | 4 +- 47 files changed, 4034 insertions(+), 4052 deletions(-) diff --git a/doc/release_new_version b/doc/release_new_version index 5b622c7d..919cb575 100644 --- a/doc/release_new_version +++ b/doc/release_new_version @@ -282,6 +282,8 @@ https://www.redhat.com/sysadmin/perl-scripts https://bioinformaticsworkbook.org/Appendix/GNUparallel/GNU_parallel_examples.html#gsc.tab=0 + + <<>> GNU Parallel - For people who live life in the parallel lane. diff --git a/src/parallel b/src/parallel index a4b4203e..753c91dc 100755 --- a/src/parallel +++ b/src/parallel @@ -2058,7 +2058,8 @@ sub options_completion_hash() { ("skip-first-line|skipfirstline". "[Do not use the first line of input]" => \$opt::skip_first_line), - "bug" => \$opt::bug, + "_bug" => \$opt::_bug, + "_unsafe" => \$opt::_unsafe, # --pipe ("pipe|spreadstdin". "[Spread input to jobs on stdin (standard input)]" => \$opt::pipe), @@ -2207,7 +2208,7 @@ sub parse_options(@) { if($opt::nokeeporder) { $opt::keeporder = undef; } if(@opt::v) { $Global::verbose = $#opt::v+1; } # Convert -v -v to v=2 - if($opt::bug) { ::die_bug("test-bug"); } + if($opt::_bug) { ::die_bug("test-bug"); } $Global::debug = $opt::D; # ## Shell @@ -2719,16 +2720,34 @@ sub check_invalid_option_combinations() { ::wait_and_exit(255); } } + sub unsafe_warn { + # use --_unsafe to only generate a warning + if($opt::_unsafe) { ::warning(@_); } else { ::error(@_); exit(255); } + } + sub test_safe_chars { + my $var = shift; + if($ENV{$var} =~ m{^[-a-z0-9_+,.%:/= ]*$}i) { + # OK + } else { + unsafe_warn("\$$var can only contain [-a-z0-9_+,.%:/= ]."); + } + } if($ENV{'TMPDIR'} =~ /\n/) { if(defined $opt::files) { - ::warning("--files do not work if \$TMPDIR contains newline."); + ::warning("Use --files0 when \$TMPDIR contains newline."); } elsif($Global::cshell and (defined $opt::cat or defined $opt::fifo)) { ::warning("--cat/--fifo fails under csh ". "if \$TMPDIR contains newline."); } + } elsif($ENV{'TMPDIR'} =~ /\257/) { + unsafe_warn("\$TMPDIR with \\257 (\257) is not supported."); + } else{ + test_safe_chars('TMPDIR'); } + map { test_safe_chars($_); } qw(PARALLEL_HOME XDG_CONFIG_DIRS + PARALLEL_REMOTE_TMPDIR XDG_CACHE_HOME); } sub init_globals() { @@ -2852,6 +2871,7 @@ sub init_globals() { $Global::job_already_run = ''; $ENV{'TMPDIR'} ||= "/tmp"; $ENV{'PARALLEL_REMOTE_TMPDIR'} ||= "/tmp"; + # bug #55398: set $OLDPWD when using --wd $ENV{'OLDPWD'} = $ENV{'PWD'}; if(not $ENV{HOME}) { # $ENV{HOME} is sometimes not set if called from PHP @@ -7800,7 +7820,7 @@ sub loadavg($) { # As the command can take long to run if run remote # save it to a tmp file before moving it to the correct file ::debug("load", "Update load\n"); - my $file = $self->{'loadavg_file'}; + my $file = ::Q($self->{'loadavg_file'}); # tmpfile on same filesystem as $file my $tmpfile = $file.$$; $ENV{'SSHPASS'} = $self->{'password'}; @@ -10714,7 +10734,7 @@ sub start($) { ::shell_quote_scalar_default( "testfun() { rm $name; }; export -f testfun; ". "perl -MIPC::Open3 -e ". - ::shell_quote_scalar_default($script) + ::Q(::Q($script)) ); my $redefine_eval; # Redirect STDERR temporarily, diff --git a/src/parallel_alternatives.pod b/src/parallel_alternatives.pod index 019be53a..8bcaa429 100644 --- a/src/parallel_alternatives.pod +++ b/src/parallel_alternatives.pod @@ -3856,6 +3856,65 @@ https://github.com/beomagi/parallelium (Last checked: 2023-01) +=head2 DIFFERENCES BETWEEN forkrun AND GNU Parallel + +Summary (see legend above): + +=over + +=item I1 - - - - - I7 + +=item - - - - - - + +=item - O2 O3 - O5 - - - - O10 + +=item E1 - - E4 - - - + +=item - - - - - - - - - + +=item - - + +=back + + +B blocks if it receives fewer jobs than slots: + + echo | forkrun -p 2 echo + +or when it gets some specific commands e.g.: + + f() { seq "$@" | pv -qL 3; } + seq 10 | forkrun f + +It is not clear why. + +It is faster than GNU B (overhead: 1.2 ms/job vs 3 ms/job), +but way slower than B (0.059 ms/job). + +Running jobs cannot be stopped by pressing CTRL-C. + +B<-k> is supposed to keep the order but fails on the MIX testing +example below. If used with B<-k> it caches output in RAM. + +If B is killed, it leaves temporary files in +B that has to be cleaned up manually. + +=head3 EXAMPLES + + 1$ time find ./ -type f | + forkrun -l512 -- sha256sum 2>/dev/null | wc -l + 1$ time find ./ -type f | + parallel -j28 -m -- sha256sum 2>/dev/null | wc -l + + 2$ time find ./ -type f | + forkrun -l512 -k -- sha256sum 2>/dev/null | wc -l + 2$ time find ./ -type f | + parallel -j28 -k -m -- sha256sum 2>/dev/null | wc -l + +https://github.com/jkool702/forkrun +(Last checked: 2023-02) + + =head2 Todo http://code.google.com/p/push/ (cannot compile) diff --git a/testsuite/Start.sh b/testsuite/Start.sh index 8509a5a1..54f9ca6f 100755 --- a/testsuite/Start.sh +++ b/testsuite/Start.sh @@ -14,9 +14,22 @@ MAX_SEC_PER_TEST=900 export TIMEOUT=$MAX_SEC_PER_TEST run_once() { + replace_tmpdir() { + # Replace $TMPDIR with TMP + perl -0 -pe 'BEGIN{ ($a,$b,$c) = (shift,shift,shift); + $a =~ s/'"'"'$//s; $b =~ s/'"'"'$//s; $c =~ s/'"'"'$//s; } + s:""+:":g; + s:('"'"'?)(\Q$a\E|\Q$b\E|\Q$c\E)('"'"'?)([/a-z0-9]*)('"'"'?):/TMP$4:gi; + s/\0/\n/g' "$TMPDIR" "$qTMPDIR" "$qqTMPDIR" | + perl -ne '/Use --files0 when $TMPDIR contains newline./ or print' + } + export qqTMPDIR=$(< /dev/null parallel -0 --shellquote --shellquote ::: "$TMPDIR") + export qTMPDIR=$(< /dev/null parallel -0 --shellquote ::: "$TMPDIR") + export -f replace_tmpdir script=$1 base=`basename "$script" .sh` if diff -Naur wanted-results/"$base" actual-results/"$base" >/dev/null; then + # There is no diff: Last time worked - no need to try again true skip else ( @@ -24,7 +37,8 @@ run_once() { export testsuitedir cd "$TMPDIR" bash "$testsuitedir/$script" | - perl -pe 's:'$HOME':~:g' > "$testsuitedir"/actual-results/"$base" + perl -pe 's:'$HOME':~:g' | + replace_tmpdir > "$testsuitedir"/actual-results/"$base" ) fi } @@ -34,13 +48,35 @@ run_test() { script="$1" base=`basename "$script" .sh` # Force spaces and < into TMPDIR - this will expose bugs - export TMPDIR=/tmp/"$base-tmp"/' - `touch /tmp/tripwire` <"'"'"/tmp + # ASCII [^-,+=a-zA-Z0-9] = all special chars (175 is not supported) + fancychars="$(perl -e 'print "\n\`touch /tmp/tripwire\`>/tmp/tripwire;\n". + (pack "c*",2..42,127..174,47,176..255)."\@/tmp/tripwire;\n". + (pack "c*",2..42,127..174,47,176..255)."\@/tmp/tripwire;\n". + (pack "c*",127..174,47,176..255)."\@/tmp/tripwire;\n". + (pack "c*",34,39,176..255)."\@/tmp/tripwire;\n". + "\@/tmp/tripwire;\n". + (pack "c*",2..10,34,39)."\@/tmp/tripwire;\n". +# (pack "c*",34,39)."\@/tmp/tripwire;\n". +# ""')" + export TMPDIR=/tmp/"$base-tmp"/"$fancychars"/tmp rm -rf "$TMPDIR" mkdir -p "$TMPDIR" # Clean before. May be owned by other users sudo rm -f /tmp/*.{tmx,pac,arg,all,log,swp,loa,ssh,df,pip,tmb,chr,tms,par} || printf "%s\0" /tmp/*.par | sudo parallel -0 -X rm + rm -f /tmp/tripwire # Force running once echo >> actual-results/"$base" if [ "$TRIES" = "3" ] ; then @@ -52,6 +88,7 @@ run_test() { if [ -e /tmp/tripwire ] ; then echo '!!!' echo '!!! /tmp/tripwire TRIPPED !!!' + echo '!!! Quoting of TMPDIR failed !!!' echo '!!!' exit 1 fi diff --git a/testsuite/tests-to-run/parallel-freebsd.sh b/testsuite/tests-to-run/parallel-freebsd.sh index cc5f1a94..85303871 100644 --- a/testsuite/tests-to-run/parallel-freebsd.sh +++ b/testsuite/tests-to-run/parallel-freebsd.sh @@ -95,6 +95,7 @@ par_env_parallel() { # (a)sh does not support 'export -f' so any function exported # must be unset +unset replace_tmpdir unset run_once unset run_test unset TMPDIR diff --git a/testsuite/tests-to-run/parallel-local-0.3s.sh b/testsuite/tests-to-run/parallel-local-0.3s.sh index 1651b231..3db31f1b 100644 --- a/testsuite/tests-to-run/parallel-local-0.3s.sh +++ b/testsuite/tests-to-run/parallel-local-0.3s.sh @@ -145,6 +145,7 @@ EOF 'sleep 0.{#}; cat t1.{#} t2.{%}' ::: 1 2 ::: a b echo should give no files ls t[12].* + rm "$tmp1" "$tmp2" } par_resume_k() { @@ -732,6 +733,7 @@ par_wd_3dot_local() { parallel --wd ... 'pwd; echo "$OLDPWD"; echo' ::: OK parallel --wd . 'pwd; echo "$OLDPWD"; echo' ::: OK ) | + replace_tmpdir | perl -pe 's:/mnt/4tb::; s:/home/tange:~:;' | perl -pe 's:parallel./:parallel/:;' | perl -pe 's/'`hostname`'/hostname/g; s/\d+/0/g' @@ -773,7 +775,8 @@ par_parcat_rm() { par_linebuffer_files() { echo '### bug #48658: --linebuffer --files' - stdout parallel --files --linebuffer 'sleep .1;seq {};sleep .1' ::: {1..10} | wc -l + stdout parallel --files --linebuffer 'sleep .1;seq {};sleep .1' ::: {1..10} | + replace_tmpdir | perl -pe 's:/par......par:/parXXXXX.par:' } par_halt_one_job() { @@ -812,7 +815,8 @@ par_pipe_tag_v() { seq 3 | parallel -v --pipe --tagstring foo cat # This should only give the filename seq 3 | parallel -v --pipe --tagstring foo --files cat | - perl -pe 's:/tmp/par.*.par:/tmp/tmpfile.par:' + replace_tmpdir | + perl -pe 's:/par.*.par:/tmpfile.par:' } par_dryrun_append_joblog() { @@ -896,9 +900,10 @@ par_testquote() { export -f testquote # "sash script" does not work # "sash -f script" does, but is currently not supported by GNU Parallel + parallel --tag -k testquote ::: ash bash csh dash fdsh fish fizsh ksh ksh93 mksh posh rbash rc rzsh "sash -f" sh static-sh tcsh yash zsh # "fdsh" is currently not supported by GNU Parallel: # It gives ioctl(): Interrupted system call - parallel --tag -k testquote ::: ash bash csh dash fdsh fish fizsh ksh ksh93 mksh posh rbash rc rzsh "sash -f" sh static-sh tcsh yash zsh + parallel --tag -k testquote ::: fdsh } par_locale_quoting() { diff --git a/testsuite/tests-to-run/parallel-local-10s.sh b/testsuite/tests-to-run/parallel-local-10s.sh index 333d17d6..fbf2e3c6 100644 --- a/testsuite/tests-to-run/parallel-local-10s.sh +++ b/testsuite/tests-to-run/parallel-local-10s.sh @@ -295,10 +295,11 @@ par_failing_compressor() { parallel -k {tag} {lb} {files} --compress --compress-program {comp} --decompress-program {decomp} doit ::: C={comp},D={decomp} \ ,,, tag --tag -k \ ,,, lb --line-buffer -k \ - ,,, files --files -k \ + ,,, files --files0 -k \ ,,, comp 'cat;true' 'cat;false' \ ,,, decomp 'cat;true' 'cat;false' | - perl -pe 's:/.*par......par:/tmpfile:' + replace_tmpdir | + perl -pe 's:/par......par:/tmpfile:' } par_fifo_under_csh() { @@ -315,92 +316,97 @@ par_fifo_under_csh() { par_parset() { echo '### test parset' - . `which env_parallel.bash` + ( + . `which env_parallel.bash` - echo 'Put output into $myarray' - parset myarray -k seq 10 ::: 14 15 16 - echo "${myarray[1]}" + echo 'Put output into $myarray' + parset myarray -k seq 10 ::: 14 15 16 + echo "${myarray[1]}" - echo 'Put output into vars "$seq, $pwd, $ls"' - parset "seq pwd ls" -k ::: "seq 10" pwd ls - echo "$seq" + echo 'Put output into vars "$seq, $pwd, $ls"' + parset "seq pwd ls" -k ::: "seq 10" pwd ls + echo "$seq" - echo 'Put output into vars ($seq, $pwd, $ls)': - into_vars=(seq pwd ls) - parset "${into_vars[*]}" -k ::: "seq 5" pwd ls - echo "$seq" + echo 'Put output into vars ($seq, $pwd, $ls)': + into_vars=(seq pwd ls) + parset "${into_vars[*]}" -k ::: "seq 5" pwd ls + echo "$seq" - echo 'The commands to run can be an array' - cmd=("echo '<>'" "pwd") - parset data -k ::: "${cmd[@]}" - echo "${data[0]}" - echo "${data[1]}" + echo 'The commands to run can be an array' + cmd=("echo '<>'" "pwd") + parset data -k ::: "${cmd[@]}" + echo "${data[0]}" + echo "${data[1]}" - echo 'You cannot pipe into parset, but must use a tempfile' - seq 10 > /tmp/parset_input_$$ - parset res -k echo :::: /tmp/parset_input_$$ - echo "${res[0]}" - echo "${res[9]}" - rm /tmp/parset_input_$$ + echo 'You cannot pipe into parset, but must use a tempfile' + seq 10 > /tmp/parset_input_$$ + parset res -k echo :::: /tmp/parset_input_$$ + echo "${res[0]}" + echo "${res[9]}" + rm /tmp/parset_input_$$ - echo 'or process substitution' - parset res -k echo :::: <(seq 0 10) - echo "${res[0]}" - echo "${res[9]}" + echo 'or process substitution' + parset res -k echo :::: <(seq 0 10) + echo "${res[0]}" + echo "${res[9]}" - echo 'Commands with newline require -0' - parset var -k -0 ::: 'echo "line1 + echo 'Commands with newline require -0' + parset var -k -0 ::: 'echo "line1 line2"' 'echo "command2"' - echo "${var[0]}" + echo "${var[0]}" + ) | replace_tmpdir } par_parset2() { - . `which env_parallel.bash` echo '### parset into array' - parset arr1 echo ::: foo bar baz - echo ${arr1[0]} ${arr1[1]} ${arr1[2]} + ( + . `which env_parallel.bash` - echo '### parset into vars with comma' - parset comma3,comma2,comma1 echo ::: baz bar foo - echo $comma1 $comma2 $comma3 + parset arr1 echo ::: foo bar baz + echo ${arr1[0]} ${arr1[1]} ${arr1[2]} - echo '### parset into vars with space' - parset 'space3 space2 space1' echo ::: baz bar foo - echo $space1 $space2 $space3 + echo '### parset into vars with comma' + parset comma3,comma2,comma1 echo ::: baz bar foo + echo $comma1 $comma2 $comma3 - echo '### parset with newlines' - parset 'newline3 newline2 newline1' seq ::: 3 2 1 - echo "$newline1" - echo "$newline2" - echo "$newline3" + echo '### parset into vars with space' + parset 'space3 space2 space1' echo ::: baz bar foo + echo $space1 $space2 $space3 - 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[5]} + echo '### parset with newlines' + parset 'newline3 newline2 newline1' seq ::: 3 2 1 + echo "$newline1" + echo "$newline2" + echo "$newline3" - 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]}" + 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[5]} - echo 'bug #52507: parset arr1 -v echo ::: fails' - parset arr1 -v seq ::: 1 2 3 - echo "${arr1[2]}" + 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]}" + + echo 'bug #52507: parset arr1 -v echo ::: fails' + parset arr1 -v seq ::: 1 2 3 + echo "${arr1[2]}" + ) | replace_tmpdir } par_perlexpr_repl() { @@ -664,12 +670,13 @@ par_results_csv() { doit() { parallel -k $@ --results -.csv echo ::: H2 22 23 ::: H1 11 12 \ - 2> >(grep -v TMPDIR) + 2> >(grep -v TMPDIR) | + replace_tmpdir } export -f doit parallel -k --tag doit ::: '--header :' '' \ - ::: --tag '' ::: --files '' ::: --compress '' | - perl -pe 's:/.*par......par:/tmpfile:g;s/\d+\.\d+/999.999/g' + ::: --tag '' ::: --files0 '' ::: --compress '' | + perl -pe 's:/par......par:/tmpfile:g;s/\d+\.\d+/999.999/g' } par_kill_children_timeout() { @@ -692,7 +699,9 @@ par_kill_children_timeout() { par_tmux_fg() { echo 'bug #50107: --tmux --fg should also write how to access it' - stdout parallel --tmux --fg sleep ::: 3 | perl -pe 's:/tmp.*tms.....:tmpfile:' + stdout parallel --tmux --fg sleep ::: 3 | + replace_tmpdir | + perl -pe 's:/tms.....:tmpfile:' } @@ -768,5 +777,4 @@ compgen -A function | grep par_ | LC_ALL=C sort | perl -pe 's/,31,0/,15,0/' | # Replace $PWD with . even if given as ~/... perl -pe 's:~:'"$HOME"':g' | - perl -pe 's:'"$PWD"':.:g' | perl -pe 's:'"$HOME"':~:g' diff --git a/testsuite/tests-to-run/parallel-local-1s.sh b/testsuite/tests-to-run/parallel-local-1s.sh index 81725540..ef1f0842 100644 --- a/testsuite/tests-to-run/parallel-local-1s.sh +++ b/testsuite/tests-to-run/parallel-local-1s.sh @@ -39,32 +39,38 @@ par_plus() { par_file_rpl() { echo '### file as replacement string' + TMPDIR=/tmp/parallel-local-1s/" "/bar + mkdir -p "$TMPDIR" tmp="$(mktemp)" ( - echo contest1 - echo contest2 + echo content1 + echo content2 echo File name "$tmp" ) > "$tmp" ( - # {filename} + echo '# {filename}' parallel -k --header 0 echo {"$tmp"} :::: "$tmp" - # Conflict: both {filename} and {/regexp/rpl} + + echo '# Conflict: both {filename} and {/regexp/rpl}' parallel -k --plus echo {"$tmp"} :::: "$tmp" + echo '# --header 0 --plus' parallel -k --header 0 --plus echo {"$tmp"} :::: "$tmp" tmpd="$(mktemp -d)" cd "$tmpd" - # Conflict: both {filename} and {n} + + echo '# Conflict: both {filename} and {n}' seq 1 > 1 seq 2 > 2 seq 3 > 3 parallel -k echo {1} :::: 3 2 1 parallel -k --header 0 echo {1} :::: 3 2 1 - # Conflict: both {filename} and {=expr=} + + echo '# Conflict: both {filename} and {=expr=}' seq 3 > =chop= parallel -k echo {=chop=} ::: =chop= parallel -k --header 0 echo {=chop=} ::: =chop= rm -rf "$tmpd" - ) | perl -pe 's/tmp\.\w+/tmp.XXXXXX/g' + ) | replace_tmpdir | perl -pe 's/tmp\.\w+/tmp.XXXXXX/g' rm "$tmp" } @@ -403,8 +409,9 @@ par_profiles_with_space() { echo '### bug #42902: profiles containing arguments with space' echo "--rpl 'FULLPATH chomp(\$_=\"/bin/bash=\".\`readlink -f \$_\`);' " > ~/.parallel/FULLPATH; parallel -JFULLPATH echo FULLPATH ::: $0 - PARALLEL="--rpl 'FULLPATH chomp(\$_=\"/bin/bash=\".\`readlink -f \$_\`);' -v" parallel echo FULLPATH ::: $0 + PARALLEL="--rpl 'FULLPATH chomp(\$_=\"/bin/bash=\".\`readlink -f \$_\`);' -v" parallel echo FULLPATH ::: "$0" PARALLEL="--rpl 'FULLPATH chomp(\$_=\"/bin/bash=\".\`readlink -f \$_\`);' perl -e \'print \\\"@ARGV\\\n\\\"\' " parallel With script in \\\$PARALLEL FULLPATH ::: . | + replace_tmpdir | perl -pe 's:parallel./:parallel/:' } diff --git a/testsuite/tests-to-run/parallel-local-30s.sh b/testsuite/tests-to-run/parallel-local-30s.sh index a62dc8a0..b4df0e42 100755 --- a/testsuite/tests-to-run/parallel-local-30s.sh +++ b/testsuite/tests-to-run/parallel-local-30s.sh @@ -123,29 +123,36 @@ par_exit_code() { export -f in_shell_run_command runit() { + doit() { + s=100 + rm -f /tmp/mysleep + cp /bin/sleep /tmp/mysleep + + parallel -kj500% --argsep ,, --tag in_shell_run_command {1} {2} \ + ,, "$@" ,, \ + "/tmp/mysleep "$s \ + "parallel --halt-on-error now,fail=1 /tmp/mysleep ::: "$s \ + "parallel --halt-on-error now,done=1 /tmp/mysleep ::: "$s \ + "parallel --halt-on-error now,done=1 /bin/true ::: "$s \ + "parallel --halt-on-error now,done=1 exit ::: "$s \ + "true;/tmp/mysleep "$s \ + "parallel --halt-on-error now,fail=1 'true;/tmp/mysleep' ::: "$s \ + "parallel --halt-on-error now,done=1 'true;/tmp/mysleep' ::: "$s \ + "parallel --halt-on-error now,done=1 'true;/bin/true' ::: "$s \ + "parallel --halt-on-error now,done=1 'true;exit' ::: "$s + } + echo '# Ideally the command should return the same' + echo '# with or without parallel' # These give the same exit code prepended with 'true;' or not OK="ash csh dash fish fizsh ksh2020 posh rc sash sh tcsh" # These do not give the same exit code prepended with 'true;' or not - BAD="bash fdsh ksh93 mksh static-sh yash zsh" - s=100 - rm -f /tmp/mysleep - cp /bin/sleep /tmp/mysleep - - echo '# Ideally the command should return the same' - echo '# with or without parallel' - echo '# but fish 2.4.0 returns 1 while X.X.X returns 0' - parallel -kj500% --argsep ,, --tag in_shell_run_command {1} {2} \ - ,, $OK $BAD ,, \ - "/tmp/mysleep "$s \ - "parallel --halt-on-error now,fail=1 /tmp/mysleep ::: "$s \ - "parallel --halt-on-error now,done=1 /tmp/mysleep ::: "$s \ - "parallel --halt-on-error now,done=1 /bin/true ::: "$s \ - "parallel --halt-on-error now,done=1 exit ::: "$s \ - "true;/tmp/mysleep "$s \ - "parallel --halt-on-error now,fail=1 'true;/tmp/mysleep' ::: "$s \ - "parallel --halt-on-error now,done=1 'true;/tmp/mysleep' ::: "$s \ - "parallel --halt-on-error now,done=1 'true;/bin/true' ::: "$s \ - "parallel --halt-on-error now,done=1 'true;exit' ::: "$s + BAD="bash ksh93 mksh static-sh yash zsh" + doit $OK $BAD + # fdsh does not like weird TMPDIR with \n + BROKEN="fdsh" + TMPDIR=/tmp + cd /tmp + doit $BROKEN } export -f runit diff --git a/testsuite/tests-to-run/parallel-local-race01.sh b/testsuite/tests-to-run/parallel-local-race01.sh index 3184dfa0..ab971cd9 100755 --- a/testsuite/tests-to-run/parallel-local-race01.sh +++ b/testsuite/tests-to-run/parallel-local-race01.sh @@ -42,10 +42,12 @@ par_parcat_mixing() { par_tmux_termination() { echo '### --tmux test - check termination' + TMPDIR=/tmp doit() { perl -e 'map {printf "$_%o%c\n",$_,$_}1..255' | stdout parallel --tmux 'sleep 0.2;echo {}' :::: - ::: a b | - perl -pe 's:(/tmp\S*/tms).....:$1XXXXX:;' + replace_tmpdir | + perl -pe 's:(/tms).....:$1XXXXX:;' } export -f doit stdout parallel --timeout 120 doit ::: 1 @@ -117,9 +119,9 @@ par_delay_Xauto() { doit() { perl -e '$a=shift; $m = -M $a < 0.0000001; - `touch $a`; + system "touch", $a; print "$m\n"; - exit $m;' $1; + exit $m;' "$1"; } export -f doit before=`date +%s` diff --git a/testsuite/tests-to-run/parallel-local-ssh1.sh b/testsuite/tests-to-run/parallel-local-ssh1.sh index 49bc9979..00eb9532 100644 --- a/testsuite/tests-to-run/parallel-local-ssh1.sh +++ b/testsuite/tests-to-run/parallel-local-ssh1.sh @@ -34,7 +34,7 @@ par_sshpass_with_password() { echo OK | parallel -S withpassword:@lo:22 echo } -par_ssh_ssh() { +par_--ssh_ssh_in_ssh() { echo '### bug #61894: Pack ssh code in eval protection' echo Unquoted ssh should work parallel --ssh 'ssh lo ssh' -S lo 'hostname;echo' ::: OK @@ -190,7 +190,7 @@ par_trc_dashdashdashspace() { parallel --nonall -k -S csh@lo,sh@lo 'ls ./?--- ./---? || echo OK' | LC_ALL=C sort } -par_onall_transfer() { +par_--onall_--transfer() { echo '### bug #46519: --onall ignores --transfer' touch bug46519.{a,b,c}; rm -f bug46519.?? bug46519.??? parallel --onall --tf bug46519.{} --trc bug46519.{}{} --trc bug46519.{}{}{} -S csh@lo,sh@lo 'ls bug46519.{}; touch bug46519.{}{} bug46519.{}{}{}' ::: a b c @@ -205,7 +205,7 @@ par_--onall_--plus() { parallel -S bash@lo --nonall --plus echo {host} } -par_remote_load() { +par__remote_load() { echo '### Test --load remote' ssh parallel@lo 'seq 10 | parallel --nice 19 --timeout 15 -j0 -qN0 perl -e while\(1\)\{\ \}' & sleep 1 diff --git a/testsuite/tests-to-run/parallel-local-ssh2.sh b/testsuite/tests-to-run/parallel-local-ssh2.sh index 39503876..1bf46d31 100644 --- a/testsuite/tests-to-run/parallel-local-ssh2.sh +++ b/testsuite/tests-to-run/parallel-local-ssh2.sh @@ -7,7 +7,7 @@ # /tmp/parallel-local-ssh2 will by default be owned by me and should be writable by *@localhost chmod 777 "$TMPDIR" 2>/dev/null -par_obey_servers_capacity_slf_reload() { +par__obey_servers_capacity_slf_reload() { echo "### bug #43518: GNU Parallel doesn't obey servers' jobs capacity when an ssh login file is reloaded" # Pre-20141106 Would reset the number of jobs run on all sshlogin if --slf changed # Thus must take at least 25 sec to run @@ -19,7 +19,7 @@ par_obey_servers_capacity_slf_reload() { rm /tmp/parallel.bug43518 } -par_filter_hosts_slf() { +par_z_filter_hosts_slf() { echo '### --filter-hosts --slf <()' parallel --nonall --filter-hosts --slf <(echo localhost) echo OK } diff --git a/testsuite/tests-to-run/parallel-local-ssh4.sh b/testsuite/tests-to-run/parallel-local-ssh4.sh index a1240408..6bc58d6a 100644 --- a/testsuite/tests-to-run/parallel-local-ssh4.sh +++ b/testsuite/tests-to-run/parallel-local-ssh4.sh @@ -9,7 +9,7 @@ unset run_once # SSH only allowed to localhost/lo -par_sshloginfile() { +par_z_sshloginfile() { echo '### --slf with mIxEd cAsE' tmp=$(mktemp) ( @@ -21,7 +21,7 @@ par_sshloginfile() { rm -f "$tmp" } -par_nonall_results() { +par_--nonall_results() { echo '### --results --onall' tmp="$TMPDIR"/onall mkdir -p "$tmp" @@ -31,7 +31,7 @@ par_nonall_results() { parallel --results "$tmp"/rplnoslash/{} --onall -Scsh@lo,sh@lo ::: id pwd parallel --results "$tmp"/rpl1slash/{1}/ --onall -Scsh@lo,sh@lo ::: id pwd parallel --results "$tmp"/rpl1noslash/{1} --onall -Scsh@lo,sh@lo ::: id pwd - find "$tmp" + find "$tmp" -print0 | replace_tmpdir rm -r "$tmp" echo '### --results --nonall' tmp="$TMPDIR"/nonall @@ -42,7 +42,7 @@ par_nonall_results() { parallel --results "$tmp"/rplnoslash/{} --nonall -Scsh@lo,sh@lo pwd parallel --results "$tmp"/rpl1slash/{1}/ --nonall -Scsh@lo,sh@lo pwd parallel --results "$tmp"/rpl1noslash/{1} --nonall -Scsh@lo,sh@lo pwd - find "$tmp" + find "$tmp" -print0 | replace_tmpdir rm -r "$tmp" } @@ -131,38 +131,57 @@ par_bigvar_rc() { parallel --env A,B,C -k echo '"'"'${}|wc'"'"' ::: A B C' } -par_tmux_different_shells() { +par_--tmux_different_shells() { echo '### Test tmux works on different shells' - (stdout parallel -Scsh@lo,tcsh@lo,parallel@lo,zsh@lo --tmux echo ::: 1 2 3 4; echo $?) | - grep -v 'attach'; - (stdout parallel -Scsh@lo,tcsh@lo,parallel@lo,zsh@lo --tmux false ::: 1 2 3 4; echo $?) | - grep -v 'attach'; + short_TMPDIR() { + # TMPDIR must be short for -M + export TMPDIR=/tmp/ssh/' +`touch /tmp/tripwire` +' + TMPDIR=/tmp + mkdir -p "$TMPDIR" + } + short_TMPDIR + ( + stdout parallel -Scsh@lo,tcsh@lo,parallel@lo,zsh@lo --tmux echo ::: 1 2 3 4; echo $? + stdout parallel -Scsh@lo,tcsh@lo,parallel@lo,zsh@lo --tmux false ::: 1 2 3 4; echo $? - export PARTMUX='parallel -Scsh@lo,tcsh@lo,parallel@lo,zsh@lo --tmux '; - stdout ssh zsh@lo "$PARTMUX" 'true ::: 1 2 3 4; echo $status' | grep -v 'See output'; - stdout ssh zsh@lo "$PARTMUX" 'false ::: 1 2 3 4; echo $status' | grep -v 'See output'; - stdout ssh parallel@lo "$PARTMUX" 'true ::: 1 2 3 4; echo $?' | grep -v 'See output'; - stdout ssh parallel@lo "$PARTMUX" 'false ::: 1 2 3 4; echo $?' | grep -v 'See output'; - stdout ssh tcsh@lo "$PARTMUX" 'true ::: 1 2 3 4; echo $status' | grep -v 'See output'; - stdout ssh tcsh@lo "$PARTMUX" 'false ::: 1 2 3 4; echo $status' | grep -v 'See output'; - echo "# command is currently too long for csh. Maybe it can be fixed?"; - stdout ssh csh@lo "$PARTMUX" 'true ::: 1 2 3 4; echo $status' | grep -v 'See output'; - stdout ssh csh@lo "$PARTMUX" 'false ::: 1 2 3 4; echo $status' | grep -v 'See output' + export PARTMUX='parallel -Scsh@lo,tcsh@lo,parallel@lo,zsh@lo --tmux '; + stdout ssh zsh@lo "$PARTMUX" 'true ::: 1 2 3 4; echo $status' + stdout ssh zsh@lo "$PARTMUX" 'false ::: 1 2 3 4; echo $status' + stdout ssh parallel@lo "$PARTMUX" 'true ::: 1 2 3 4; echo $?' + stdout ssh parallel@lo "$PARTMUX" 'false ::: 1 2 3 4; echo $?' + stdout ssh tcsh@lo "$PARTMUX" 'true ::: 1 2 3 4; echo $status' + stdout ssh tcsh@lo "$PARTMUX" 'false ::: 1 2 3 4; echo $status' + echo "# command is currently too long for csh. Maybe it can be fixed?"; + stdout ssh csh@lo "$PARTMUX" 'true ::: 1 2 3 4; echo $status' + stdout ssh csh@lo "$PARTMUX" 'false ::: 1 2 3 4; echo $status' + ) | replace_tmpdir | perl -pe 's/tms...../tmsXXXXX/g' } -par_tmux_length() { +par_--tmux_length() { echo '### works' - stdout parallel -Sparallel@lo --tmux echo ::: \\\\\\\"\\\\\\\"\\\;\@ | - perl -pe 's:/tmp/.*tms.....::' - stdout parallel -Sparallel@lo --tmux echo ::: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx | - perl -pe 's:/tmp/.*tms.....::' + short_TMPDIR() { + # TMPDIR must be short for -M + export TMPDIR=/tmp/ssh/' +`touch /tmp/tripwire` +' + TMPDIR=/tmp + mkdir -p "$TMPDIR" + } + short_TMPDIR + ( + stdout parallel -Sparallel@lo --tmux echo ::: \\\\\\\"\\\\\\\"\\\;\@ + stdout parallel -Sparallel@lo --tmux echo ::: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx - echo '### These blocked due to length' - stdout parallel -Slo --tmux echo ::: \\\\\\\"\\\\\\\"\\\;\@ | grep -v 'attach' - stdout parallel -Scsh@lo --tmux echo ::: \\\\\\\"\\\\\\\"\\\;\@ | grep -v 'attach' - stdout parallel -Stcsh@lo --tmux echo ::: \\\\\\\"\\\\\\\"\\\;\@ | grep -v 'attach' - stdout parallel -Szsh@lo --tmux echo ::: \\\\\\\"\\\\\\\"\\\;\@ | grep -v 'attach' - stdout parallel -Scsh@lo --tmux echo ::: 111111111111111111111111111111111111111111111111111111111 | grep -v 'attach' + echo '### These blocked due to length' + stdout parallel -Slo --tmux echo ::: \\\\\\\"\\\\\\\"\\\;\@ + stdout parallel -Scsh@lo --tmux echo ::: \\\\\\\"\\\\\\\"\\\;\@ + stdout parallel -Stcsh@lo --tmux echo ::: \\\\\\\"\\\\\\\"\\\;\@ + stdout parallel -Szsh@lo --tmux echo ::: \\\\\\\"\\\\\\\"\\\;\@ + stdout parallel -Scsh@lo --tmux echo ::: 111111111111111111111111111111111111111111111111111111111 + ) | replace_tmpdir | + perl -pe 's:tms.....:tmsXXXXX:' } par_transfer_return_multiple_inputs() { @@ -176,12 +195,12 @@ par_transfer_return_multiple_inputs() { rm /tmp/file1 /tmp/file2 /tmp/file1.a /tmp/file2.b } -par_csh_nice() { +par_z_csh_nice() { echo '### bug #44143: csh and nice' parallel --nice 1 -S csh@lo setenv B {}\; echo '$B' ::: OK } -par_multiple_hosts_repeat_arg() { +par_z_multiple_hosts_repeat_arg() { echo '### bug #45575: -m and multiple hosts repeats first args' seq 1 3 | parallel -X -S 2/lo,2/: -k echo } diff --git a/testsuite/tests-to-run/parallel-local-ssh5.sh b/testsuite/tests-to-run/parallel-local-ssh5.sh index 30d50d6e..d1ca9679 100644 --- a/testsuite/tests-to-run/parallel-local-ssh5.sh +++ b/testsuite/tests-to-run/parallel-local-ssh5.sh @@ -7,6 +7,7 @@ # SSH only allowed to localhost/lo + par_ssh_cmd_with_newline() { echo '### Check --ssh with \n works' ssh=$(mktemp) @@ -17,15 +18,25 @@ par_ssh_cmd_with_newline() { par_controlmaster() { echo '### Check -M works if TMPDIR contains space' + short_TMPDIR() { + # TMPDIR must be short for -M + export TMPDIR=/tmp/ssh/' +`touch /tmp/tripwire` +' + TMPDIR=/tmp + mkdir -p "$TMPDIR" + } + short_TMPDIR + ( seq 1 3 | parallel -j10 --retries 3 -k -M -S sh@lo echo seq 1 3 | parallel -j10 --retries 3 -k -M -S sh@lo echo ) echo Part2 - parallel -j1 -k -M -S sh@lo echo ::: OK + stdout parallel -j1 -k -M -S sh@lo echo ::: OK | replace_tmpdir } -par_autossh() { +par_--ssh_autossh() { echo '### --ssh autossh' ( export PARALLEL_SSH=autossh; export AUTOSSH_PORT=0 @@ -54,12 +65,21 @@ par_input_loss_pipe() { seq 10000 | xargs | parallel --pipe -S 8/localhost cat 2>/dev/null | wc } -par_controlmaster_eats() { +par_--controlmaster_eats() { echo 'bug #36707: --controlmaster eats jobs' + short_TMPDIR() { + # TMPDIR must be short for -M + export TMPDIR=/tmp/ssh/' +`touch /tmp/tripwire` +' + TMPDIR=/tmp + mkdir -p "$TMPDIR" + } + short_TMPDIR seq 2 | parallel -k --controlmaster --sshlogin lo echo OK{} } -par_lsh() { +par_--ssh_lsh() { echo '### --ssh lsh' parallel --ssh 'lsh -c aes256-ctr' -S lo echo ::: OK echo OK | parallel --ssh 'lsh -c aes256-ctr' --pipe -S csh@lo cat @@ -85,7 +105,7 @@ par_env_parallel_onall() { env_parallel -Slo --nonall doit works } -par_command_len_shellquote() { +par_--shellquote_command_len() { echo '### test quoting will not cause a crash if too long' # echo "'''" | parallel --shellquote --shellquote --shellquote --shellquote diff --git a/testsuite/tests-to-run/parallel-local-ssh6.sh b/testsuite/tests-to-run/parallel-local-ssh6.sh index afb44d08..4525f9b8 100644 --- a/testsuite/tests-to-run/parallel-local-ssh6.sh +++ b/testsuite/tests-to-run/parallel-local-ssh6.sh @@ -184,7 +184,7 @@ par_sshlogin_replacement() { parallel -S '5//usr/bin/ssh '$SSHLOGIN1 --plus echo {sshlogin} {} {host} ::: and } -par_timeout_onall() { +par_onall_timeout() { echo '### --timeout --onall on remote machines: 2*slept 1, 2 jobs failed' parallel -j0 --timeout 6 --onall -S localhost,$SSHLOGIN1 'sleep {}; echo slept {}' ::: 1 8 9 echo jobs failed: $? diff --git a/testsuite/tests-to-run/parallel-local-ssh7.sh b/testsuite/tests-to-run/parallel-local-ssh7.sh index 4bacf3f3..a4adc4c0 100755 --- a/testsuite/tests-to-run/parallel-local-ssh7.sh +++ b/testsuite/tests-to-run/parallel-local-ssh7.sh @@ -10,7 +10,7 @@ echo '### test --env _, env_parallel for different shells' ## par_*_man = tests from the man page # -par_ash_man() { +par__man_ash() { echo '### ash' myscript=$(cat <<'_EOF' @@ -67,7 +67,7 @@ _EOF ssh ash@lo "$myscript" } -par_bash_man() { +par__man_bash() { echo '### bash' myscript=$(cat <<'_EOF' @@ -139,7 +139,7 @@ _EOF ssh bash@lo "$myscript" } -par_csh_man() { +par__man_csh() { echo '### csh' myscript=$(cat <<'_EOF' echo "### From man env_parallel" @@ -183,7 +183,7 @@ _EOF stdout ssh csh@lo "$myscript" | LC_ALL=C sort } -par_dash_man() { +par__man_dash() { echo '### dash' myscript=$(cat <<'_EOF' @@ -240,7 +240,7 @@ _EOF ssh dash@lo "$myscript" } -par_fish_man() { +par__man_fish() { echo '### fish' myscript=$(cat <<'_EOF' echo "### From man env_parallel" @@ -298,7 +298,7 @@ _EOF ssh fish@lo "$myscript" | LC_ALL=C sort } -par_ksh_man() { +par__man_ksh() { echo '### ksh' myscript=$(cat <<'_EOF' echo "### From man env_parallel" @@ -365,7 +365,7 @@ _EOF ssh ksh@lo "$myscript" } -par_mksh_man() { +par__man_mksh() { echo '### mksh' myscript=$(cat <<'_EOF' echo "### From man env_parallel" @@ -430,7 +430,7 @@ _EOF ssh mksh@lo "$myscript" } -par_sh_man() { +par__man_sh() { echo '### sh' myscript=$(cat <<'_EOF' @@ -487,7 +487,7 @@ _EOF ssh sh@lo "$myscript" } -par_tcsh_man() { +par__man_tcsh() { echo '### tcsh' myscript=$(cat <<'_EOF' echo "### From man env_parallel" @@ -531,7 +531,7 @@ _EOF ssh -tt tcsh@lo "$myscript" } -par_zsh_man() { +par__man_zsh() { echo '### zsh' # eval is needed make aliases work myscript=$(cat <<'_EOF' @@ -605,7 +605,7 @@ _EOF } -par_ash_underscore() { +par_--env_underscore_ash() { echo '### ash' myscript=$(cat <<'_EOF' echo "### Testing of --env _" @@ -653,7 +653,7 @@ _EOF ssh ash@lo "$myscript" } -par_bash_underscore() { +par_--env_underscore_bash() { echo '### bash' myscript=$(cat <<'_EOF' echo "### Testing of --env _" @@ -702,7 +702,7 @@ _EOF stdout ssh bash@lo "$myscript" } -par_csh_underscore() { +par_--env_underscore_csh() { echo '### csh' myscript=$(cat <<'_EOF' echo "### Testing of --env _" @@ -737,7 +737,7 @@ _EOF ssh -tt csh@lo "$myscript" } -par_dash_underscore() { +par_--env_underscore_dash() { echo '### dash' myscript=$(cat <<'_EOF' echo "### Testing of --env _" @@ -785,7 +785,7 @@ _EOF ssh dash@lo "$myscript" } -par_fish_underscore() { +par_--env_underscore_fish() { echo '### fish' myscript=$(cat <<'_EOF' echo "Fish is broken" @@ -849,7 +849,7 @@ _EOF perl -ne '/fish:|fish\(/ and next; print' } -par_ksh_underscore() { +par_--env_underscore_ksh() { echo '### ksh' myscript=$(cat <<'_EOF' echo "### Testing of --env _" @@ -897,7 +897,7 @@ _EOF ssh ksh@lo "$myscript" } -par_mksh_underscore() { +par_--env_underscore_mksh() { echo '### mksh' myscript=$(cat <<'_EOF' echo "### Testing of --env _" @@ -945,7 +945,7 @@ _EOF ssh mksh@lo "$myscript" } -par_sh_underscore() { +par_--env_underscore_sh() { echo '### sh' myscript=$(cat <<'_EOF' echo "### Testing of --env _" @@ -993,7 +993,7 @@ _EOF ssh sh@lo "$myscript" } -par_tcsh_underscore() { +par_--env_underscore_tcsh() { echo '### tcsh' myscript=$(cat <<'_EOF' echo "### Testing of --env _" @@ -1028,7 +1028,7 @@ _EOF ssh -tt tcsh@lo "$myscript" } -par_zsh_underscore() { +par_--env_underscore_zsh() { echo '### zsh' myscript=$(cat <<'_EOF' echo "### Testing of --env _" @@ -1086,7 +1086,7 @@ _EOF # + remote, locally # + variables, variables with funky content, arrays, assoc array, functions, aliases -par_ash_funky() { +par_funky_ash() { myscript=$(cat <<'_EOF' . `which env_parallel.ash`; @@ -1119,7 +1119,7 @@ _EOF ssh ash@lo "$myscript" 2>&1 | LC_ALL=C sort } -par_bash_funky() { +par_funky_bash() { myscript=$(cat <<'_EOF' . `which env_parallel.bash`; @@ -1152,7 +1152,7 @@ _EOF ssh bash@lo "$myscript" 2>&1 | LC_ALL=C sort } -par_csh_funky() { +par_funky_csh() { myscript=$(cat <<'_EOF' set myvar = "myvar works" set funky = "`perl -e 'print pack q(c*), 2..255'`" @@ -1185,7 +1185,7 @@ _EOF stdout ssh csh@lo "$myscript" | LC_ALL=C sort } -par_dash_funky() { +par_funky_dash() { myscript=$(cat <<'_EOF' . `which env_parallel.dash`; @@ -1218,7 +1218,7 @@ _EOF ssh dash@lo "$myscript" 2>&1 | LC_ALL=C sort } -par_fish_funky() { +par_funky_fish() { myscript=$(cat <<'_EOF' env_parallel --session set myvar "myvar works" @@ -1264,7 +1264,7 @@ _EOF ssh fish@lo "$myscript" } -par_ksh_funky() { +par_funky_ksh() { myscript=$(cat <<'_EOF' . `which env_parallel.ksh`; @@ -1296,7 +1296,7 @@ _EOF ssh ksh@lo "$myscript" 2>&1 | LC_ALL=C sort } -par_mksh_funky() { +par_funky_mksh() { myscript=$(cat <<'_EOF' . `which env_parallel.mksh`; @@ -1329,7 +1329,7 @@ _EOF ssh mksh@lo "$myscript" 2>&1 | LC_ALL=C sort } -par_sh_funky() { +par_funky_sh() { myscript=$(cat <<'_EOF' . `which env_parallel.sh`; @@ -1362,7 +1362,7 @@ _EOF ssh sh@lo "$myscript" 2>&1 | LC_ALL=C sort } -par_tcsh_funky() { +par_funky_tcsh() { myscript=$(cat <<'_EOF' # funky breaks with different LC_ALL setenv LC_ALL C @@ -1397,7 +1397,7 @@ _EOF ssh tcsh@lo "$myscript" 2>&1 | LC_ALL=C sort } -par_zsh_funky() { +par_funky_zsh() { myscript=$(cat <<'_EOF' . `which env_parallel.zsh`; @@ -1429,7 +1429,7 @@ _EOF ssh zsh@lo "$myscript" 2>&1 | LC_ALL=C sort } -par_ash_env_parallel() { +par_env_parallel_ash() { myscript=$(cat <<'_EOF' . `which env_parallel.ash`; echo 'bug #50435: Remote fifo broke in 20150522' @@ -1454,7 +1454,7 @@ _EOF ssh ash@lo "$myscript" 2>&1 | LC_ALL=C sort } -par_bash_env_parallel() { +par_env_parallel_bash() { myscript=$(cat <<'_EOF' echo 'bug #50435: Remote fifo broke in 20150522' # Due to $PARALLEL_TMP being transferred @@ -1479,7 +1479,7 @@ _EOF ssh bash@lo "$myscript" 2>&1 | LC_ALL=C sort } -par_csh_env_parallel() { +par_env_parallel_csh() { myscript=$(cat <<'_EOF' echo 'bug #50435: Remote fifo broke in 20150522' # Due to $PARALLEL_TMP being transferred @@ -1491,7 +1491,7 @@ _EOF ssh csh@lo "$myscript" } -par_dash_env_parallel() { +par_env_parallel_dash() { myscript=$(cat <<'_EOF' . `which env_parallel.dash`; echo 'bug #50435: Remote fifo broke in 20150522' @@ -1516,7 +1516,7 @@ _EOF ssh dash@lo "$myscript" 2>&1 | LC_ALL=C sort } -par_fish_env_parallel() { +par_env_parallel_fish() { myscript=$(cat <<'_EOF' echo 'bug #50435: Remote fifo broke in 20150522' # Due to $PARALLEL_TMP being transferred @@ -1535,7 +1535,7 @@ _EOF ssh fish@lo "$myscript" } -par_ksh_env_parallel() { +par_env_parallel_ksh() { myscript=$(cat <<'_EOF' . `which env_parallel.ksh`; echo 'bug #50435: Remote fifo broke in 20150522' @@ -1560,7 +1560,7 @@ _EOF ssh ksh@lo "$myscript" 2>&1 | LC_ALL=C sort } -par_mksh_env_parallel() { +par_env_parallel_mksh() { myscript=$(cat <<'_EOF' . `which env_parallel.mksh`; echo 'bug #50435: Remote fifo broke in 20150522' @@ -1585,7 +1585,7 @@ _EOF ssh mksh@lo "$myscript" 2>&1 | LC_ALL=C sort } -par_sh_env_parallel() { +par_env_parallel_sh() { myscript=$(cat <<'_EOF' . `which env_parallel.sh`; echo 'bug #50435: Remote fifo broke in 20150522' @@ -1610,7 +1610,7 @@ _EOF ssh sh@lo "$myscript" 2>&1 | LC_ALL=C sort } -par_tcsh_env_parallel() { +par_env_parallel_tcsh() { myscript=$(cat <<'_EOF' echo 'bug #50435: Remote fifo broke in 20150522' # Due to $PARALLEL_TMP being transferred @@ -1623,7 +1623,7 @@ _EOF ssh tcsh@lo "$myscript" 2>&1 | LC_ALL=C sort } -par_zsh_env_parallel() { +par_env_parallel_zsh() { myscript=$(cat <<'_EOF' echo 'bug #50435: Remote fifo broke in 20150522' # Due to $PARALLEL_TMP being transferred @@ -1647,7 +1647,7 @@ _EOF ssh zsh@lo "$myscript" 2>&1 | LC_ALL=C sort } -par_ash_environment_too_big() { +par_environment_too_big_ash() { myscript=$(cat <<'_EOF' echo 'bug #50815: env_parallel should warn if the environment is too big' len_var=63 @@ -1717,7 +1717,7 @@ _EOF ssh ash@lo "$myscript" } -par_bash_environment_too_big() { +par_environment_too_big_bash() { myscript=$(cat <<'_EOF' echo 'bug #50815: env_parallel should warn if the environment is too big' len_overhead=-$( (shopt;alias;typeset -f;typeset -p) | wc -c)/1000 @@ -1788,11 +1788,11 @@ _EOF ssh bash@lo "$myscript" } -par_csh_environment_too_big() { +par_environment_too_big_csh() { echo Not implemented } -par_dash_environment_too_big() { +par_environment_too_big_dash() { myscript=$(cat <<'_EOF' echo 'bug #50815: env_parallel should warn if the environment is too big' len_var=63 @@ -1862,12 +1862,12 @@ _EOF ssh dash@lo "$myscript" } -par_fish_environment_too_big() { +par_environment_too_big_fish() { echo Not implemented } -par_ksh_environment_too_big() { +par_environment_too_big_ksh() { myscript=$(cat <<'_EOF' echo 'bug #50815: env_parallel should warn if the environment is too big' len_functions=-$(functions|wc -c)/1000 @@ -1939,7 +1939,7 @@ _EOF ssh ksh@lo "$myscript" } -par_mksh_environment_too_big() { +par_environment_too_big_mksh() { myscript=$(cat <<'_EOF' echo 'bug #50815: env_parallel should warn if the environment is too big' len_var=47 @@ -2010,7 +2010,7 @@ _EOF ssh mksh@lo "$myscript" } -par_sh_environment_too_big() { +par_environment_too_big_sh() { myscript=$(cat <<'_EOF' echo 'bug #50815: env_parallel should warn if the environment is too big' len_var=63 @@ -2080,11 +2080,11 @@ _EOF ssh sh@lo "$myscript" } -par_tcsh_environment_too_big() { +par_environment_too_big_tcsh() { echo Not implemented } -par_zsh_environment_too_big() { +par_environment_too_big_zsh() { myscript=$(cat <<'_EOF' echo 'bug #50815: env_parallel should warn if the environment is too big' . `which env_parallel.zsh`; @@ -2136,7 +2136,7 @@ _EOF ssh zsh@lo "$myscript" } -par_ash_parset() { +par_parset_ash() { myscript=$(cat <<'_EOF' echo 'parset' . `which env_parallel.ash` @@ -2199,7 +2199,7 @@ _EOF ssh ash@lo "$myscript" } -par_bash_parset() { +par_parset_bash() { myscript=$(cat <<'_EOF' echo 'parset' . `which env_parallel.bash` @@ -2257,11 +2257,11 @@ _EOF ssh bash@lo "$myscript" } -par_csh_parset() { +par_parset_csh() { echo Not implemented } -par_dash_parset() { +par_parset_dash() { myscript=$(cat <<'_EOF' echo 'parset' . `which env_parallel.dash` @@ -2324,11 +2324,11 @@ _EOF ssh dash@lo "$myscript" } -par_fish_parset() { +par_parset_fish() { echo Not implemented } -par_ksh_parset() { +par_parset_ksh() { myscript=$(cat <<'_EOF' echo 'parset' . `which env_parallel.ksh` @@ -2386,7 +2386,7 @@ _EOF ssh ksh@lo "$myscript" } -par_mksh_parset() { +par_parset_mksh() { myscript=$(cat <<'_EOF' echo 'parset' . `which env_parallel.mksh` @@ -2446,7 +2446,7 @@ _EOF ssh mksh@lo "$myscript" } -par_sh_parset() { +par_parset_sh() { myscript=$(cat <<'_EOF' echo 'parset' . `which env_parallel.sh` @@ -2532,11 +2532,11 @@ _EOF ssh sh@lo "$myscript" } -par_tcsh_parset() { +par_parset_tcsh() { echo Not implemented } -par_zsh_parset() { +par_parset_zsh() { myscript=$(cat <<'_EOF' echo 'parset' . `which env_parallel.zsh` @@ -2605,7 +2605,7 @@ _EOF ### env_parallel_session -par_ash_env_parallel_session() { +par_env_parallel_--session_ash() { myscript=$(cat <<'_EOF' . `which env_parallel.ash` echo '### Test env_parallel --session' @@ -2706,7 +2706,7 @@ _EOF ssh ash@lo "$myscript" } -par_bash_env_parallel_session() { +par_env_parallel_--session_bash() { myscript=$(cat <<'_EOF' echo '### Test env_parallel --session / --end-session' . `which env_parallel.bash` @@ -2798,11 +2798,11 @@ _EOF ssh bash@lo "$myscript" } -par_csh_env_parallel_session() { +par_env_parallel_--session_csh() { echo Not implemented } -par_dash_env_parallel_session() { +par_env_parallel_--session_dash() { myscript=$(cat <<'_EOF' . `which env_parallel.dash` echo '### Test env_parallel --session' @@ -2903,7 +2903,7 @@ _EOF ssh dash@lo "$myscript" } -par_fish_env_parallel_session() { +par_env_parallel_--session_fish() { myscript=$(cat <<'_EOF' . (which env_parallel.fish) @@ -2945,7 +2945,7 @@ _EOF ssh fish@lo "$myscript" 2>&1 } -par_ksh_env_parallel_session() { +par_env_parallel_--session_ksh() { myscript=$(cat <<'_EOF' . `which env_parallel.ksh` echo '### Test env_parallel --session' @@ -3035,7 +3035,7 @@ _EOF ssh ksh@lo "$myscript" } -par_mksh_env_parallel_session() { +par_env_parallel_--session_mksh() { myscript=$(cat <<'_EOF' . `which env_parallel.mksh` echo '### Test env_parallel --session' @@ -3125,7 +3125,7 @@ _EOF ssh mksh@lo "$myscript" } -par_sh_env_parallel_session() { +par_env_parallel_--session_sh() { myscript=$(cat <<'_EOF' . `which env_parallel.sh` echo '### Test env_parallel --session' @@ -3219,11 +3219,11 @@ _EOF ssh sh@lo "$myscript" } -par_tcsh_env_parallel_session() { +par_env_parallel_--session_tcsh() { echo Not implemented } -par_zsh_env_parallel_session() { +par_env_parallel_--session_zsh() { myscript=$(cat <<'_EOF' . `which env_parallel.zsh` eval "`cat <<"_EOS"; @@ -3321,7 +3321,7 @@ 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_ | LC_ALL=C sort -r | +compgen -A function | grep par_ | LC_ALL=C sort | # parallel --joblog /tmp/jl-`basename $0` --delay $D -j$P --tag -k '{} 2>&1' # 2019-07-14 200% too high for 16 GB/4 thread parallel --joblog /tmp/jl-`basename $0` -j75% --retries 2 --tag -k '{} 2>&1' | diff --git a/testsuite/tests-to-run/parallel-local-ssh8.sh b/testsuite/tests-to-run/parallel-local-ssh8.sh index 542309cf..fb6da2b1 100644 --- a/testsuite/tests-to-run/parallel-local-ssh8.sh +++ b/testsuite/tests-to-run/parallel-local-ssh8.sh @@ -70,13 +70,13 @@ _EOS uniq } -par_keep_order() { +par_z_keep_order() { echo '### Test --keep-order' seq 0 2 | parallel --keep-order -j100% -S 1/:,2/parallel@lo -q perl -e 'sleep 1;print "job{}\n";exit({})' } -par_keeporder() { +par_z_keeporder() { echo '### Test --keeporder' seq 0 2 | parallel --keeporder -j100% -S 1/:,2/parallel@lo -q perl -e 'sleep 1;print "job{}\n";exit({})' @@ -87,7 +87,7 @@ par_load_csh() { parallel --load 100% -S csh@lo echo ::: a } -par_bar_m() { +par_z_bar_m() { echo '### test --bar -m' stdout parallel --bar -P 2 -m sleep ::: 1 1 2 2 3 3 | perl -pe 's/\r/\n/g'| @@ -125,7 +125,7 @@ par_retries_4() { retries 4 48 49 } -par_csh_environment_variables_set() { +par_z_csh_environment_variables_set() { echo '### Check $PARALLEL_PID $PARALLEL_SEQ are set in csh' parallel -S csh@localhost 'echo $PARALLEL_PID $PARALLEL_SEQ {}| wc -w' ::: a } diff --git a/testsuite/tests-to-run/parallel-local-ssh9.sh b/testsuite/tests-to-run/parallel-local-ssh9.sh index 0beb630b..534585b2 100644 --- a/testsuite/tests-to-run/parallel-local-ssh9.sh +++ b/testsuite/tests-to-run/parallel-local-ssh9.sh @@ -152,7 +152,7 @@ par_propagate_env() { par_env_parallel_big_env() { echo '### bug #54128: command too long when exporting big env' . `which env_parallel.bash` - a=`rand | perl -pe 's/\0//g'| head -c 20000` + a=`rand | perl -pe 's/\0//g'| head -c 15000` env_parallel -Slo echo should not ::: fail 2>&1 a=`rand | perl -pe 's/\0//g'| head -c 25000` env_parallel -Slo echo should ::: fail 2>/dev/null || echo OK diff --git a/testsuite/tests-to-run/parallel-local10.sh b/testsuite/tests-to-run/parallel-local10.sh index af6314d7..dca6875d 100755 --- a/testsuite/tests-to-run/parallel-local10.sh +++ b/testsuite/tests-to-run/parallel-local10.sh @@ -25,3 +25,11 @@ echo perl | grep -v '\$' | grep -v '] read(6' | grep -v input-files/perllib + +par_make_deb_package() { + echo '### Test make .deb package'; + cd ~/privat/parallel/packager/debian; + stdout make | grep 'To install the GNU Parallel Debian package, run:' +} + +par_make_deb_package diff --git a/testsuite/tests-to-run/parallel-local150.sh b/testsuite/tests-to-run/parallel-local150.sh index 49a13b20..07e3a73b 100644 --- a/testsuite/tests-to-run/parallel-local150.sh +++ b/testsuite/tests-to-run/parallel-local150.sh @@ -67,10 +67,6 @@ echo "### bug #35268: shell_quote doesn't treats [] brackets correctly" stdout parallel echo ::: '/tmp/foo[123]'; rm /tmp/foo1 -echo '### Test make .deb package'; - cd ~/privat/parallel/packager/debian; - stdout make | grep 'To install the GNU Parallel Debian package, run:' - echo '### Test basic --arg-sep' parallel -k echo ::: a b diff --git a/testsuite/tests-to-run/parallel-local21.sh b/testsuite/tests-to-run/parallel-local21.sh index 71e8f1f6..a38d71d8 100644 --- a/testsuite/tests-to-run/parallel-local21.sh +++ b/testsuite/tests-to-run/parallel-local21.sh @@ -232,6 +232,8 @@ EOF } par_shebang_wrap_clisp() { + # clisp cannot handle dirs w/ shell wildcards + TMPDIR=/tmp script="$TMPDIR"/shebang_wrap_clisp cat <<'EOF' > "$script" #!/usr/local/bin/parallel --shebang-wrap -k /usr/bin/clisp diff --git a/testsuite/tests-to-run/parallel-local22.sh b/testsuite/tests-to-run/parallel-local22.sh index a565ca17..df561bca 100755 --- a/testsuite/tests-to-run/parallel-local22.sh +++ b/testsuite/tests-to-run/parallel-local22.sh @@ -52,8 +52,8 @@ echo '### bug #42041: Implement $PARALLEL_JOBSLOT' echo '### bug #42363: --pipepart and --fifo/--cat does not work' seq 100 > /tmp/bug42363; - parallel --pipepart --block 31 -a /tmp/bug42363 -k --fifo wc | perl -pe 's:(/tmp.*par).....:${1}XXXXX:'; - parallel --pipepart --block 31 -a /tmp/bug42363 -k --cat wc | perl -pe 's:(/tmp.*par).....:${1}XXXXX:'; + parallel --pipepart --block 31 -a /tmp/bug42363 -k --fifo 'cat {} | wc'; + parallel --pipepart --block 31 -a /tmp/bug42363 -k --cat 'cat {} | wc'; rm /tmp/bug42363 echo '### bug #42055: --pipepart -a bigfile should not require sequential reading of bigfile' diff --git a/testsuite/tests-to-run/parallel-local7.sh b/testsuite/tests-to-run/parallel-local7.sh index 422fe400..ce4078fd 100755 --- a/testsuite/tests-to-run/parallel-local7.sh +++ b/testsuite/tests-to-run/parallel-local7.sh @@ -6,7 +6,8 @@ par_tmux_filter() { # /tmp/parallel-local7/tmsOU2Ig - perl -pe 's:(/tmp.*/tms).....:$1XXXXX:;s/ p\d+/pID/;' + replace_tmpdir | + perl -pe 's:/tms.....:/tmsXXXXX:;s/ p\d+/pID/;' } export -f par_tmux_filter diff --git a/testsuite/tests-to-run/parallel-macos.sh b/testsuite/tests-to-run/parallel-macos.sh index 9a2c6c8f..fde129ea 100644 --- a/testsuite/tests-to-run/parallel-macos.sh +++ b/testsuite/tests-to-run/parallel-macos.sh @@ -62,6 +62,7 @@ EOF # Each should generate at least 2 commands par_many_args() { + export PARALLEL="--_unsafe" rm -f ~/.parallel/tmp/sshlogin/*/linelen pecho() { perl -e 'print "@ARGV\n"' "$@"; } export -f pecho @@ -84,6 +85,7 @@ par_many_var() { } par_many_var_func() { + export PARALLEL="--_unsafe" export LC_ALL=C rm -f ~/.parallel/tmp/sshlogin/*/linelen gen() { seq -f %f 1000000000000000 1000000000050000 | head -c $1; } @@ -97,6 +99,7 @@ par_many_var_func() { } par_many_func() { + export PARALLEL="--_unsafe" export LC_ALL=C rm -f ~/.parallel/tmp/sshlogin/*/linelen gen() { seq -f %f 1000000000000000 1000000000050000 | head -c $1; } @@ -109,6 +112,7 @@ par_many_func() { } par_big_func() { + export PARALLEL="--_unsafe" export LC_ALL=C rm -f ~/.parallel/tmp/sshlogin/*/linelen gen() { seq -f %f 1000000000000000 1000000000050000 | head -c $1; } @@ -164,6 +168,7 @@ par_big_var_func_name() { grep 18XXX } +export PARALLEL="--_unsafe" macsshlogin=$(parallel --halt now,success=1 ssh {} echo {} ::: ota@mac macosx.p) scp /usr/local/bin/parallel $macsshlogin:bin/ diff --git a/testsuite/tests-to-run/parallel-remote1.sh b/testsuite/tests-to-run/parallel-remote1.sh index dc5833ff..e47851d8 100644 --- a/testsuite/tests-to-run/parallel-remote1.sh +++ b/testsuite/tests-to-run/parallel-remote1.sh @@ -52,11 +52,15 @@ par_controlmaster_is_faster() { echo '### bug #41964: --controlmaster not seems to reuse OpenSSH connections to the same host' echo '-M should finish first - eventhough there are 2x jobs' export SSHLOGIN1=sh@lo + nl="$(printf "\n\n.")" + export TMPDIR="/tmp/ctrl_master/$nl'$nl" + mkdir -p "$TMPDIR" (parallel -S $SSHLOGIN1 true ::: {1..20}; echo No --controlmaster - finish last) & (parallel -M -S $SSHLOGIN1 true ::: {1..40}; echo With --controlmaster - finish first) & wait + rm -r "/tmp/ctrl_master" } par_workdir_in_HOME() { diff --git a/testsuite/tests-to-run/parallel-tutorial.sh b/testsuite/tests-to-run/parallel-tutorial.sh index 8bf545fe..dedffa19 100644 --- a/testsuite/tests-to-run/parallel-tutorial.sh +++ b/testsuite/tests-to-run/parallel-tutorial.sh @@ -12,104 +12,107 @@ cleanup touch ~/.parallel/will-cite echo '### test parallel_tutorial' +TMPDIR=/tmp/parllel-tutorial +mkdir -p "$TMPDIR" +cd "$TMPDIR" pwd=$(pwd) # If not run in dir parallel/testsuite: set testsuitedir to path of testsuite testsuitedir=${testsuitedir:-$pwd} srcdir=$(echo "$testsuitedir" | perl -pe 's=$ENV{HOME}==') - export SERVER1=parallel@lo export SERVER2=csh@lo export PARALLEL=-k perl -ne '$/="\n\n"; /^Output/../^[^O]\S/ and next; /^ / and print;' "$testsuitedir"/../src/parallel_tutorial.pod | - egrep -v 'curl|tty|parallel_tutorial|interactive|example.(com|net)|shellquote|works' | - perl -pe 's/username@//;s/user@//; - s/zenity/zenity --timeout=15/; - s:/usr/bin/time:/usr/bin/time -f %e:; - s:ignored_vars:ignored_vars|sort:; - # Remove \n to join all joblogs into the previous block - s:cat /tmp/log\n:cat /tmp/log;:; - # Remove import (python code) - s:import.*::; - # When parallelized: Sleep to make sure the abc-files are made - /%head1/ and $_.="sleep .3\n\n"x10; + egrep -v 'curl|tty|parallel_tutorial|interactive|example.(com|net)|shellquote|works' | + perl -pe 's/username@//;s/user@//; + s/zenity/zenity --timeout=15/; + s:/usr/bin/time:/usr/bin/time -f %e:; + s:ignored_vars:ignored_vars|sort:; + # Remove \n to join all joblogs into the previous block + s:cat /tmp/log\n:cat /tmp/log;:; + # Remove import (python code) + s:import.*::; + # When parallelized: Sleep to make sure the abc-files are made + /%head1/ and $_.="sleep .3\n\n"x10; ' | - stdout parallel --joblog /tmp/jl-`basename $0` -j6 -vd'\n\n' | - perl -pe '$|=1; - # --pipe --roundrobin wc - s: \d{6} \d{6} \d{7}: 999999 999999 9999999:; - # --tmux - s:(/tmp\S+)(tms).....:$1$2XXXXX:; - # --files - s:(/tmp\S+par).....(\....):$1XXXXX$2:; - # --eta --progress - s/ETA.*//g; s/local:.*//g; - # Sat Apr 4 11:55:40 CEST 2015 - s/... ... .. ..:..:.. \D+ ..../DATE OUTPUT/; - # Timestamp from --joblog - s/\d{10}.\d{3}\s+..\d+/TIMESTAMP\t9.999/g; - # Version - s/20[0-3]\d{5}/VERSION/g; - # [123] [abc] [ABC] - s/^[123] [abc] [ABC]$/123 abc ABC/g; - # Remote script - s/(PARALLEL_PID\D+)\d+/${1}000000/g; - # sql timing - s/,[a-z]*,\d+.\d+,\d+.\d+/,:,000000000.000,0.000/g; - # /usr/bin/time -f %e - s/^(\d+)\.\d+$/$1/; - # --workdir ... - s:parallel/tmp/aspire-\d+-1:TMPWORKDIR:g; - # .../privat/parallel2/ - s='$srcdir'==; - # + cat ... | (Bash outputs these in random order) - s/\+ cat.*\n//; - # + echo ... | (Bash outputs these in random order) - s/\+ echo.*\n//; - # + wc ... (Bash outputs these in random order) - s/\+ wc.*\n//; - # + command_X | (Bash outputs these in random order) - s/.*command_[ABC].*\n//; - # Due to multiple jobs "Second started" often ends up wrong - s/Second started\n//; - s/The second finished\n//; - # Due to multiple jobs "tried 2" often ends up wrong - s/tried 2\n//; - # Due to order is often mixed up - s/echo \d; exit \d\n/echo X; exit X\n/; - # Race condition causes outdir to sometime exist - s/(std(out|err)|seq): Permission denied/$1: No such file or directory/; - # Race condition - s/^4-(middle|end)\n//; - # Base 64 string with quotes - s:['"'"'"\\+/a-z.0-9=]{50,}(\s['"'"'"\\+/a-z.0-9=]*)*:BASE64:ig; - # Timings are often off - s/^(\d)$/9/; - s/^(\d\d)$/99/; - # Remove variable names - they vary - s/^[A-Z][A-Z0-9_]*\s$//; - # Fails often due to race - s/cat: input_file: No such file or directory\n//; - s{rsync: link_stat ".*/home/parallel/input_file.out" .*\n}{}; - s{rsync error: some files/attrs were not transferred .*\n}{}; - s{.* GtkDialog .*\n}{}; - s{tried 1}{}; - s/^\s*\n//; - s/^Second done\n//; - # Changed citation - s/Tange, O. .* GNU Parallel .*//; - s:https.//doi.org/10.5281/.*::; - s/.software.tange_.*//; - s/title.*= .*Parallel .*//; - s/month.*= .*//; - s/doi.*=.*//; - s/url.*= .*doi.org.*//; - s/.Feel free to use .nocite.*//; - # tmpdir and files - s:/tmp/parallel-tutorial-tmpdir/par-job-\S+:script:g; - s:/tmp/par-job-\S+:script:g; - s:par......par:tempfile:g; - s:^tempfile\n::g; - ' | uniq + stdout parallel --joblog /tmp/jl-`basename $0` -j6 -vd'\n\n' | + replace_tmpdir | + perl -pe '$|=1; + # --pipe --roundrobin wc + s: \d{6} \d{6} \d{7}: 999999 999999 9999999:; + # --tmux + s:(/TMP|/tmp)(/tms).....:$1$2XXXXX:; + # --files + s:(/TMP/par).....(\....):$1XXXXX$2:; + # --eta --progress + s/ETA.*//g; s/local:.*//g; + # Sat Apr 4 11:55:40 CEST 2015 + s/... ... .. ..:..:.. \D+ ..../DATE OUTPUT/; + # Timestamp from --joblog + s/\d{10}.\d{3}\s+..\d+/TIMESTAMP\t9.999/g; + # Version + s/20[0-3]\d{5}/VERSION/g; + # [123] [abc] [ABC] + s/^[123] [abc] [ABC]$/123 abc ABC/g; + # Remote script + s/(PARALLEL_PID\D+)\d+/${1}000000/g; + # sql timing + s/,[a-z]*,\d+.\d+,\d+.\d+/,:,000000000.000,0.000/g; + # /usr/bin/time -f %e + s/^(\d+)\.\d+$/$1/; + # --workdir ... + s:parallel/tmp/aspire-\d+-1:TMPWORKDIR:g; + # .../privat/parallel2/ + s='$srcdir'==; + # + cat ... | (Bash outputs these in random order) + s/\+ cat.*\n//; + # + echo ... | (Bash outputs these in random order) + s/\+ echo.*\n//; + # + wc ... (Bash outputs these in random order) + s/\+ wc.*\n//; + # + command_X | (Bash outputs these in random order) + s/.*command_[ABC].*\n//; + # Due to multiple jobs "Second started" often ends up wrong + s/Second started\n//; + s/The second finished\n//; + # Due to multiple jobs "tried 2" often ends up wrong + s/tried 2\n//; + # Due to order is often mixed up + s/echo \d; exit \d\n/echo X; exit X\n/; + # Race condition causes outdir to sometime exist + s/(std(out|err)|seq): Permission denied/$1: No such file or directory/; + # Race condition + s/^4-(middle|end)\n//; + # Base 64 string with quotes + s:['"'"'"\\+/a-z.0-9=]{50,}(\s['"'"'"\\+/a-z.0-9=]*)*:BASE64:ig; + # Timings are often off + s/^(\d)$/9/; + s/^(\d\d)$/99/; + # Remove variable names - they vary + s/^[A-Z][A-Z0-9_]*\s$//; + # Fails often due to race + s/cat: input_file: No such file or directory\n//; + s{rsync: link_stat ".*/home/parallel/input_file.out" .*\n}{}; + s{rsync error: some files/attrs were not transferred .*\n}{}; + s{.* GtkDialog .*\n}{}; + s{tried 1}{}; + s/^\s*\n//; + s/^Second done\n//; + # Changed citation + s/Tange, O. .* GNU Parallel .*//; + s:https.//doi.org/10.5281/.*::; + s/.software.tange_.*//; + s/title.*= .*Parallel .*//; + s/month.*= .*//; + s/doi.*=.*//; + s/url.*= .*doi.org.*//; + s/.Feel free to use .nocite.*//; + # tmpdir and files + s:/tmp/parallel-tutorial-tmpdir/par-job-\S+:script:g; + s:/tmp/par-job-\S+:script:g; + s:par......par:tempfile:g; + s:^tempfile\n::g; + ' | uniq echo "### 3+3 .par files (from --files), 1 .tms-file from tmux attach" find {"$TMPDIR",/var/tmp}/{fif,tms,par[^a]}* -mmin -10 -type f -print0 2>/dev/null | diff --git a/testsuite/tests-to-run/sql01.sh b/testsuite/tests-to-run/sql01.sh index c40b2571..c4c953d1 100755 --- a/testsuite/tests-to-run/sql01.sh +++ b/testsuite/tests-to-run/sql01.sh @@ -102,8 +102,9 @@ sql --tablesize :sqlunittest | wc -l sql --table-size :sqlunittest | wc -l echo "### Test --debug" -sql --debug :sqlunittest "SELECT 'Yes it does' as 'Test if --debug works';" | - perl -pe 's:/tmp/...........sql:tmpfile:g' +stdout sql --debug :sqlunittest "SELECT 'Yes it does' as 'Test if --debug works';" | + replace_tmpdir | + perl -pe 's:/...........sql:/tmpfile:g' echo "### Test --version -V" sql --version | wc diff --git a/testsuite/tests-to-run/test41.sh b/testsuite/tests-to-run/test41.sh index 4aaa6bb4..11a58742 100644 --- a/testsuite/tests-to-run/test41.sh +++ b/testsuite/tests-to-run/test41.sh @@ -11,7 +11,16 @@ SSHUSER2=vagrant SSHLOGIN1=$SSHUSER1@$SERVER1 SSHLOGIN2=$SSHUSER2@$SERVER2 +short_TMPDIR() { + # TMPDIR must be short for -M + export TMPDIR=/tmp/ssh/' +`touch /tmp/tripwire` +' + mkdir -p "$TMPDIR" +} + echo '### Test -M (--retries to avoid false errors)' +short_TMPDIR seq 1 30 | parallel -j5 --retries 3 -k -M -S $SSHLOGIN1,$SSHLOGIN2 echo 2>/dev/null seq 1 30 | parallel -j10 --retries 3 -k -M -S $SSHLOGIN1,$SSHLOGIN2 echo 2>/dev/null diff --git a/testsuite/wanted-results/parallel-local-0.3s b/testsuite/wanted-results/parallel-local-0.3s index 370c4196..5b8049b2 100644 --- a/testsuite/wanted-results/parallel-local-0.3s +++ b/testsuite/wanted-results/parallel-local-0.3s @@ -7,6 +7,7 @@ par_PARALLEL_ENV OK as file par_PARALLEL_ENV ### PARALLEL_ENV as fifo par_PARALLEL_ENV OK as fifo par_PARALLEL_HOME_not_exist ### bug #62311: --pipepart + ::: fail +par_PARALLEL_HOME_not_exist parallel: Warning: $PARALLEL_HOME can only contain [-a-z0-9_+,.%:/= ]. par_PARALLEL_HOME_not_exist OK par_PARALLEL_HOME_not_exist Should warn: par_PARALLEL_HOME_not_exist parallel: Warning: $PARALLEL_HOME (/does-not-exist) does not exist. @@ -14,6 +15,7 @@ par_PARALLEL_HOME_not_exist parallel: Warning: Using ~/.parallel par_PARALLEL_HOME_not_exist should par_PARALLEL_HOME_not_exist warn par_PARALLEL_HOME_with_+ bug #59453: PARALLEL_HOME with plus sign causes error: config not readable +par_PARALLEL_HOME_with_+ parallel: Warning: $PARALLEL_HOME can only contain [-a-z0-9_+,.%:/= ]. par_PARALLEL_HOME_with_+ Parallel_home_with+ par_X_eta_div_zero ### bug #34422: parallel -X --eta crashes with div by zero par_X_eta_div_zero Computers / CPU cores / Max jobs to run @@ -313,13 +315,23 @@ par_jobslot_jobnumber_pipe 1 par_jobslot_jobnumber_pipe 1 par_jobslot_jobnumber_pipe 1 par_jobslot_jobnumber_pipe 1 -par_json { "Seq": 0, "Host": ":", "Starttime": 0000000000.000, "JobRuntime": 0.000, "Send": 0, "Receive": 0, "Exitval": 0, "Signal": 0, "Command": "echo '\"\u0000\\\"' '\"'", "V": [ "\"\u0000\\\"","\"" ], "Stdout": "\"\u0000\\\" \"\u000a", "Stderr": "" } -par_json { "Seq": 0, "Host": ":", "Starttime": 0000000000.000, "JobRuntime": 0.000, "Send": 0, "Receive": 0, "Exitval": 0, "Signal": 0, "Command": "echo '\"\u0000\\\"' '\\\\'", "V": [ "\"\u0000\\\"","\\\\" ], "Stdout": "\"\u0000\\\" \\\\\u000a", "Stderr": "" } +par_json { "Seq": 0, "Host": ":", "Starttime": 0000000000.000, "JobRuntime": 0.000, "Send": 0, "Receive": 0, "Exitval": 0, "Signal": 0, "Command": "echo '\"\u0000\\\"' '\"'", "V": [ "\"\u0000\\\","\" ], "Stdout": "\"\u0000\\\" \"\u000a", "Stderr": " } +par_json { "Seq": 0, "Host": ":", "Starttime": 0000000000.000, "JobRuntime": 0.000, "Send": 0, "Receive": 0, "Exitval": 0, "Signal": 0, "Command": "echo '\"\u0000\\\"' '\\\\'", "V": [ "\"\u0000\\\","\\\\" ], "Stdout": "\"\u0000\\\" \\\\\u000a", "Stderr": " } par_l0_is_l1 ### Because of --tollef -l, then -l0 == -l1, sorry par_l0_is_l1 l0 1 par_l0_is_l1 l0 2 par_linebuffer_files ### bug #48658: --linebuffer --files -par_linebuffer_files 21 +par_linebuffer_files parallel: Warning: Use --files0 when $TMPDIR contains newline. +par_linebuffer_files /TMP/parXXXXX.par +par_linebuffer_files /TMP/parXXXXX.par +par_linebuffer_files /TMP/parXXXXX.par +par_linebuffer_files /TMP/parXXXXX.par +par_linebuffer_files /TMP/parXXXXX.par +par_linebuffer_files /TMP/parXXXXX.par +par_linebuffer_files /TMP/parXXXXX.par +par_linebuffer_files /TMP/parXXXXX.par +par_linebuffer_files /TMP/parXXXXX.par +par_linebuffer_files /TMP/parXXXXX.par par_link_files_as_only_arg bug #50685: single ::::+ does not work par_link_files_as_only_arg 1 1 1 par_link_files_as_only_arg 2 2 2 @@ -692,9 +704,8 @@ par_pipe_tag_v foo cat par_pipe_tag_v foo 1 par_pipe_tag_v foo 2 par_pipe_tag_v foo 3 -par_pipe_tag_v parallel: Warning: --files do not work if $TMPDIR contains newline. -par_pipe_tag_v foo /tmp/parallel-local-0.3s-tmp/ -par_pipe_tag_v `touch /tmp/tripwire` <"'/tmp/tmpfile.par +par_pipe_tag_v parallel: Warning: Use --files0 when $TMPDIR contains newline. +par_pipe_tag_v foo /TMP/tmpfile.par par_pipe_to_func ### bug #45998: --pipe to function broken par_pipe_to_func 1 par_pipe_to_func pipefunc OK @@ -918,14 +929,14 @@ par_results_arg_256 ### bug #42089: --results with arg > 256 chars (should be 1 par_results_arg_256 1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456 par_results_arg_256 123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345 par_results_json ### --results test.json -par_results_json { "Seq": 1, "Host": ":", "Starttime": 9.999, "JobRuntime": 9.999, "Send": 0, "Receive": 6, "Exitval": 0, "Signal": 0, "Command": "seq 2 4", "V": [ "2","4" ], "Stdout": "2\u000a3\u000a4\u000a", "Stderr": "" } -par_results_json { "Seq": 2, "Host": ":", "Starttime": 9.999, "JobRuntime": 9.999, "Send": 0, "Receive": 8, "Exitval": 0, "Signal": 0, "Command": "seq 2 5", "V": [ "2","5" ], "Stdout": "2\u000a3\u000a4\u000a5\u000a", "Stderr": "" } -par_results_json { "Seq": 3, "Host": ":", "Starttime": 9.999, "JobRuntime": 9.999, "Send": 0, "Receive": 4, "Exitval": 0, "Signal": 0, "Command": "seq 3 4", "V": [ "3","4" ], "Stdout": "3\u000a4\u000a", "Stderr": "" } -par_results_json { "Seq": 4, "Host": ":", "Starttime": 9.999, "JobRuntime": 9.999, "Send": 0, "Receive": 6, "Exitval": 0, "Signal": 0, "Command": "seq 3 5", "V": [ "3","5" ], "Stdout": "3\u000a4\u000a5\u000a", "Stderr": "" } -par_results_json { "Seq": 1, "Host": ":", "Starttime": 9.999, "JobRuntime": 9.999, "Send": 0, "Receive": 6, "Exitval": 0, "Signal": 0, "Command": "seq 2 4", "V": [ "2","4" ], "Stdout": "2\u000a3\u000a4\u000a", "Stderr": "" } -par_results_json { "Seq": 2, "Host": ":", "Starttime": 9.999, "JobRuntime": 9.999, "Send": 0, "Receive": 8, "Exitval": 0, "Signal": 0, "Command": "seq 2 5", "V": [ "2","5" ], "Stdout": "2\u000a3\u000a4\u000a5\u000a", "Stderr": "" } -par_results_json { "Seq": 3, "Host": ":", "Starttime": 9.999, "JobRuntime": 9.999, "Send": 0, "Receive": 4, "Exitval": 0, "Signal": 0, "Command": "seq 3 4", "V": [ "3","4" ], "Stdout": "3\u000a4\u000a", "Stderr": "" } -par_results_json { "Seq": 4, "Host": ":", "Starttime": 9.999, "JobRuntime": 9.999, "Send": 0, "Receive": 6, "Exitval": 0, "Signal": 0, "Command": "seq 3 5", "V": [ "3","5" ], "Stdout": "3\u000a4\u000a5\u000a", "Stderr": "" } +par_results_json { "Seq": 1, "Host": ":", "Starttime": 9.999, "JobRuntime": 9.999, "Send": 0, "Receive": 6, "Exitval": 0, "Signal": 0, "Command": "seq 2 4", "V": [ "2","4" ], "Stdout": "2\u000a3\u000a4\u000a", "Stderr": " } +par_results_json { "Seq": 2, "Host": ":", "Starttime": 9.999, "JobRuntime": 9.999, "Send": 0, "Receive": 8, "Exitval": 0, "Signal": 0, "Command": "seq 2 5", "V": [ "2","5" ], "Stdout": "2\u000a3\u000a4\u000a5\u000a", "Stderr": " } +par_results_json { "Seq": 3, "Host": ":", "Starttime": 9.999, "JobRuntime": 9.999, "Send": 0, "Receive": 4, "Exitval": 0, "Signal": 0, "Command": "seq 3 4", "V": [ "3","4" ], "Stdout": "3\u000a4\u000a", "Stderr": " } +par_results_json { "Seq": 4, "Host": ":", "Starttime": 9.999, "JobRuntime": 9.999, "Send": 0, "Receive": 6, "Exitval": 0, "Signal": 0, "Command": "seq 3 5", "V": [ "3","5" ], "Stdout": "3\u000a4\u000a5\u000a", "Stderr": " } +par_results_json { "Seq": 1, "Host": ":", "Starttime": 9.999, "JobRuntime": 9.999, "Send": 0, "Receive": 6, "Exitval": 0, "Signal": 0, "Command": "seq 2 4", "V": [ "2","4" ], "Stdout": "2\u000a3\u000a4\u000a", "Stderr": " } +par_results_json { "Seq": 2, "Host": ":", "Starttime": 9.999, "JobRuntime": 9.999, "Send": 0, "Receive": 8, "Exitval": 0, "Signal": 0, "Command": "seq 2 5", "V": [ "2","5" ], "Stdout": "2\u000a3\u000a4\u000a5\u000a", "Stderr": " } +par_results_json { "Seq": 3, "Host": ":", "Starttime": 9.999, "JobRuntime": 9.999, "Send": 0, "Receive": 4, "Exitval": 0, "Signal": 0, "Command": "seq 3 4", "V": [ "3","4" ], "Stdout": "3\u000a4\u000a", "Stderr": " } +par_results_json { "Seq": 4, "Host": ":", "Starttime": 9.999, "JobRuntime": 9.999, "Send": 0, "Receive": 6, "Exitval": 0, "Signal": 0, "Command": "seq 3 5", "V": [ "3","5" ], "Stdout": "3\u000a4\u000a5\u000a", "Stderr": " } par_resume_k ### --resume -k par_resume_k job0id par_resume_k job1id @@ -965,10 +976,10 @@ par_sem_quote ### sem --quote should not add empty argument par_sem_quote echo par_sem_quote par_shellcompletion ### --shellcompletion -par_shellcompletion 139a52b9a64a9fd8ec1f63c2d78ff9ac - -par_shellcompletion 139a52b9a64a9fd8ec1f63c2d78ff9ac - -par_shellcompletion 8da71392e279a12e88f00114d0a4bff0 - -par_shellcompletion 8da71392e279a12e88f00114d0a4bff0 - +par_shellcompletion 0097e98f494e6288b33f3201dda7ee11 - +par_shellcompletion 0097e98f494e6288b33f3201dda7ee11 - +par_shellcompletion 1655cb29ff14d0008866108c6b5262f7 - +par_shellcompletion 1655cb29ff14d0008866108c6b5262f7 - par_slow_pipe_regexp ### bug #53718: --pipe --regexp -N blocks par_slow_pipe_regexp This should take a few ms, but took more than 2 hours par_slow_pipe_regexp 0 1 1 @@ -1094,6 +1105,8 @@ par_testquote yash "#&/ par_testquote yash ()*=?' par_testquote zsh "#&/ par_testquote zsh ()*=?' +par_testquote fdsh "#&/ +par_testquote fdsh ()*=?' par_tmpl1 1.t1 /tmp/tmpl-1.1-111.111.t2 par_tmpl1 Template1 par_tmpl1 Xval: 1.1 @@ -1357,25 +1370,19 @@ par_version 11 par_wd_3dot_local bug #45993: --wd ... should also work when run locally par_wd_3dot_local parallel: Error: Cannot change into non-executable dir /bi: No such file or directory par_wd_3dot_local /bin -par_wd_3dot_local /tmp/parallel-local-0.0s-tmp/ -par_wd_3dot_local `touch /tmp/tripwire` <"'/tmp +par_wd_3dot_local /TMP par_wd_3dot_local OK par_wd_3dot_local / -par_wd_3dot_local /tmp/parallel-local-0.0s-tmp/ -par_wd_3dot_local `touch /tmp/tripwire` <"'/tmp +par_wd_3dot_local /TMP par_wd_3dot_local OK par_wd_3dot_local /tmp -par_wd_3dot_local /tmp/parallel-local-0.0s-tmp/ -par_wd_3dot_local `touch /tmp/tripwire` <"'/tmp +par_wd_3dot_local /TMP par_wd_3dot_local OK par_wd_3dot_local ~/.parallel/tmp/hostname-0-0 -par_wd_3dot_local /tmp/parallel-local-0.0s-tmp/ -par_wd_3dot_local `touch /tmp/tripwire` <"'/tmp +par_wd_3dot_local /TMP par_wd_3dot_local OK -par_wd_3dot_local /tmp/parallel-local-0.0s-tmp/ -par_wd_3dot_local `touch /tmp/tripwire` <"'/tmp -par_wd_3dot_local /tmp/parallel-local-0.0s-tmp/ -par_wd_3dot_local `touch /tmp/tripwire` <"'/tmp +par_wd_3dot_local /TMP +par_wd_3dot_local /TMP par_wd_3dot_local OK par_wd_dotdotdot ### parallel --wd ... should clean up par_wd_dotdotdot 1 == 1 diff --git a/testsuite/wanted-results/parallel-local-10s b/testsuite/wanted-results/parallel-local-10s index 3435b49b..10416791 100644 --- a/testsuite/wanted-results/parallel-local-10s +++ b/testsuite/wanted-results/parallel-local-10s @@ -80,28 +80,28 @@ par_compress_prg_fails 1 par_compress_prg_fails parallel: Error: false failed. par_compress_prg_fails parallel: Error: false failed. par_compress_prg_fails --files 1 -par_compress_prg_fails --files parallel: Warning: --files do not work if $TMPDIR contains newline. +par_compress_prg_fails --files parallel: Warning: Use --files0 when $TMPDIR contains newline. par_compress_prg_fails --files parallel: Error: false failed. par_compress_prg_fails --files parallel: Error: false failed. par_compress_prg_fails --tag 1 par_compress_prg_fails --tag parallel: Error: false failed. par_compress_prg_fails --tag parallel: Error: false failed. par_compress_prg_fails --tag --files 1 -par_compress_prg_fails --tag --files parallel: Warning: --files do not work if $TMPDIR contains newline. +par_compress_prg_fails --tag --files parallel: Warning: Use --files0 when $TMPDIR contains newline. par_compress_prg_fails --tag --files parallel: Error: false failed. par_compress_prg_fails --tag --files parallel: Error: false failed. par_compress_prg_fails --line-buffer 1 par_compress_prg_fails --line-buffer parallel: Error: false failed. par_compress_prg_fails --line-buffer parallel: Error: false failed. par_compress_prg_fails --line-buffer --files 1 -par_compress_prg_fails --line-buffer --files parallel: Warning: --files do not work if $TMPDIR contains newline. +par_compress_prg_fails --line-buffer --files parallel: Warning: Use --files0 when $TMPDIR contains newline. par_compress_prg_fails --line-buffer --files parallel: Error: false failed. par_compress_prg_fails --line-buffer --files parallel: Error: false failed. par_compress_prg_fails --line-buffer --tag 1 par_compress_prg_fails --line-buffer --tag parallel: Error: false failed. par_compress_prg_fails --line-buffer --tag parallel: Error: false failed. par_compress_prg_fails --line-buffer --tag --files 1 -par_compress_prg_fails --line-buffer --tag --files parallel: Warning: --files do not work if $TMPDIR contains newline. +par_compress_prg_fails --line-buffer --tag --files parallel: Warning: Use --files0 when $TMPDIR contains newline. par_compress_prg_fails --line-buffer --tag --files parallel: Error: false failed. par_compress_prg_fails --line-buffer --tag --files parallel: Error: false failed. par_dryrun_timeout_ungroup bug #51039: --dry-run --timeout 1.4m -u breaks @@ -110,24 +110,16 @@ par_failing_compressor Compress with failing (de)compressor par_failing_compressor Test --tag/--line-buffer/--files in all combinations par_failing_compressor Test working/failing compressor/decompressor in all combinations par_failing_compressor (-k is used as a dummy argument) -par_failing_compressor parallel -k --tag --line-buffer --files --compress --compress-program 'cat;true' --decompress-program 'cat;true' doit ::: C='cat;true',D='cat;true' -par_failing_compressor C=cat;true,D=cat;true /tmp/parallel-local-10s-tmp/ -par_failing_compressor `touch /tmpfile -par_failing_compressor parallel: Warning: --files do not work if $TMPDIR contains newline. -par_failing_compressor parallel -k --tag --line-buffer --files --compress --compress-program 'cat;true' --decompress-program 'cat;false' doit ::: C='cat;true',D='cat;false' -par_failing_compressor C=cat;true,D=cat;false /tmp/parallel-local-10s-tmp/ -par_failing_compressor `touch /tmpfile -par_failing_compressor parallel: Warning: --files do not work if $TMPDIR contains newline. -par_failing_compressor parallel -k --tag --line-buffer --files --compress --compress-program 'cat;false' --decompress-program 'cat;true' doit ::: C='cat;false',D='cat;true' -par_failing_compressor C=cat;false,D=cat;true /tmp/parallel-local-10s-tmp/ -par_failing_compressor `touch /tmpfile -par_failing_compressor parallel: Warning: --files do not work if $TMPDIR contains newline. +par_failing_compressor parallel -k --tag --line-buffer --files0 --compress --compress-program 'cat;true' --decompress-program 'cat;true' doit ::: C='cat;true',D='cat;true' +par_failing_compressor C=cat;true,D=cat;true /TMP/tmpfile +par_failing_compressor parallel -k --tag --line-buffer --files0 --compress --compress-program 'cat;true' --decompress-program 'cat;false' doit ::: C='cat;true',D='cat;false' +par_failing_compressor C=cat;true,D=cat;false /TMP/tmpfile +par_failing_compressor parallel -k --tag --line-buffer --files0 --compress --compress-program 'cat;false' --decompress-program 'cat;true' doit ::: C='cat;false',D='cat;true' +par_failing_compressor C=cat;false,D=cat;true /TMP/tmpfile par_failing_compressor parallel: Error: cat;false failed. par_failing_compressor parallel: Error: cat;false failed. -par_failing_compressor parallel -k --tag --line-buffer --files --compress --compress-program 'cat;false' --decompress-program 'cat;false' doit ::: C='cat;false',D='cat;false' -par_failing_compressor C=cat;false,D=cat;false /tmp/parallel-local-10s-tmp/ -par_failing_compressor `touch /tmpfile -par_failing_compressor parallel: Warning: --files do not work if $TMPDIR contains newline. +par_failing_compressor parallel -k --tag --line-buffer --files0 --compress --compress-program 'cat;false' --decompress-program 'cat;false' doit ::: C='cat;false',D='cat;false' +par_failing_compressor C=cat;false,D=cat;false /TMP/tmpfile par_failing_compressor parallel: Error: cat;false failed. par_failing_compressor parallel: Error: cat;false failed. par_failing_compressor parallel -k --tag --line-buffer -k --compress --compress-program 'cat;true' --decompress-program 'cat;true' doit ::: C='cat;true',D='cat;true' @@ -146,24 +138,16 @@ par_failing_compressor C=cat;false,D=cat;false C=cat;false,D=cat;false par_failing_compressor parallel: Error: cat;false failed. par_failing_compressor parallel: Error: cat;false failed. par_failing_compressor C=cat;false,D=cat;false C=cat;false,D=cat;false -par_failing_compressor parallel -k --tag -k --files --compress --compress-program 'cat;true' --decompress-program 'cat;true' doit ::: C='cat;true',D='cat;true' -par_failing_compressor C=cat;true,D=cat;true /tmp/parallel-local-10s-tmp/ -par_failing_compressor `touch /tmpfile -par_failing_compressor parallel: Warning: --files do not work if $TMPDIR contains newline. -par_failing_compressor parallel -k --tag -k --files --compress --compress-program 'cat;true' --decompress-program 'cat;false' doit ::: C='cat;true',D='cat;false' -par_failing_compressor C=cat;true,D=cat;false /tmp/parallel-local-10s-tmp/ -par_failing_compressor `touch /tmpfile -par_failing_compressor parallel: Warning: --files do not work if $TMPDIR contains newline. -par_failing_compressor parallel -k --tag -k --files --compress --compress-program 'cat;false' --decompress-program 'cat;true' doit ::: C='cat;false',D='cat;true' -par_failing_compressor C=cat;false,D=cat;true /tmp/parallel-local-10s-tmp/ -par_failing_compressor `touch /tmpfile -par_failing_compressor parallel: Warning: --files do not work if $TMPDIR contains newline. +par_failing_compressor parallel -k --tag -k --files0 --compress --compress-program 'cat;true' --decompress-program 'cat;true' doit ::: C='cat;true',D='cat;true' +par_failing_compressor C=cat;true,D=cat;true /TMP/tmpfile +par_failing_compressor parallel -k --tag -k --files0 --compress --compress-program 'cat;true' --decompress-program 'cat;false' doit ::: C='cat;true',D='cat;false' +par_failing_compressor C=cat;true,D=cat;false /TMP/tmpfile +par_failing_compressor parallel -k --tag -k --files0 --compress --compress-program 'cat;false' --decompress-program 'cat;true' doit ::: C='cat;false',D='cat;true' +par_failing_compressor C=cat;false,D=cat;true /TMP/tmpfile par_failing_compressor parallel: Error: cat;false failed. par_failing_compressor parallel: Error: cat;false failed. -par_failing_compressor parallel -k --tag -k --files --compress --compress-program 'cat;false' --decompress-program 'cat;false' doit ::: C='cat;false',D='cat;false' -par_failing_compressor C=cat;false,D=cat;false /tmp/parallel-local-10s-tmp/ -par_failing_compressor `touch /tmpfile -par_failing_compressor parallel: Warning: --files do not work if $TMPDIR contains newline. +par_failing_compressor parallel -k --tag -k --files0 --compress --compress-program 'cat;false' --decompress-program 'cat;false' doit ::: C='cat;false',D='cat;false' +par_failing_compressor C=cat;false,D=cat;false /TMP/tmpfile par_failing_compressor parallel: Error: cat;false failed. par_failing_compressor parallel: Error: cat;false failed. par_failing_compressor parallel -k --tag -k -k --compress --compress-program 'cat;true' --decompress-program 'cat;true' doit ::: C='cat;true',D='cat;true' @@ -182,24 +166,16 @@ par_failing_compressor C=cat;false,D=cat;false C=cat;false,D=cat;false par_failing_compressor parallel: Error: cat;false failed. par_failing_compressor parallel: Error: cat;false failed. par_failing_compressor C=cat;false,D=cat;false C=cat;false,D=cat;false -par_failing_compressor parallel -k -k --line-buffer --files --compress --compress-program 'cat;true' --decompress-program 'cat;true' doit ::: C='cat;true',D='cat;true' -par_failing_compressor /tmp/parallel-local-10s-tmp/ -par_failing_compressor `touch /tmpfile -par_failing_compressor parallel: Warning: --files do not work if $TMPDIR contains newline. -par_failing_compressor parallel -k -k --line-buffer --files --compress --compress-program 'cat;true' --decompress-program 'cat;false' doit ::: C='cat;true',D='cat;false' -par_failing_compressor /tmp/parallel-local-10s-tmp/ -par_failing_compressor `touch /tmpfile -par_failing_compressor parallel: Warning: --files do not work if $TMPDIR contains newline. -par_failing_compressor parallel -k -k --line-buffer --files --compress --compress-program 'cat;false' --decompress-program 'cat;true' doit ::: C='cat;false',D='cat;true' -par_failing_compressor /tmp/parallel-local-10s-tmp/ -par_failing_compressor `touch /tmpfile -par_failing_compressor parallel: Warning: --files do not work if $TMPDIR contains newline. +par_failing_compressor parallel -k -k --line-buffer --files0 --compress --compress-program 'cat;true' --decompress-program 'cat;true' doit ::: C='cat;true',D='cat;true' +par_failing_compressor /TMP/tmpfile +par_failing_compressor parallel -k -k --line-buffer --files0 --compress --compress-program 'cat;true' --decompress-program 'cat;false' doit ::: C='cat;true',D='cat;false' +par_failing_compressor /TMP/tmpfile +par_failing_compressor parallel -k -k --line-buffer --files0 --compress --compress-program 'cat;false' --decompress-program 'cat;true' doit ::: C='cat;false',D='cat;true' +par_failing_compressor /TMP/tmpfile par_failing_compressor parallel: Error: cat;false failed. par_failing_compressor parallel: Error: cat;false failed. -par_failing_compressor parallel -k -k --line-buffer --files --compress --compress-program 'cat;false' --decompress-program 'cat;false' doit ::: C='cat;false',D='cat;false' -par_failing_compressor /tmp/parallel-local-10s-tmp/ -par_failing_compressor `touch /tmpfile -par_failing_compressor parallel: Warning: --files do not work if $TMPDIR contains newline. +par_failing_compressor parallel -k -k --line-buffer --files0 --compress --compress-program 'cat;false' --decompress-program 'cat;false' doit ::: C='cat;false',D='cat;false' +par_failing_compressor /TMP/tmpfile par_failing_compressor parallel: Error: cat;false failed. par_failing_compressor parallel: Error: cat;false failed. par_failing_compressor parallel -k -k --line-buffer -k --compress --compress-program 'cat;true' --decompress-program 'cat;true' doit ::: C='cat;true',D='cat;true' @@ -218,24 +194,16 @@ par_failing_compressor C=cat;false,D=cat;false par_failing_compressor parallel: Error: cat;false failed. par_failing_compressor parallel: Error: cat;false failed. par_failing_compressor C=cat;false,D=cat;false -par_failing_compressor parallel -k -k -k --files --compress --compress-program 'cat;true' --decompress-program 'cat;true' doit ::: C='cat;true',D='cat;true' -par_failing_compressor /tmp/parallel-local-10s-tmp/ -par_failing_compressor `touch /tmpfile -par_failing_compressor parallel: Warning: --files do not work if $TMPDIR contains newline. -par_failing_compressor parallel -k -k -k --files --compress --compress-program 'cat;true' --decompress-program 'cat;false' doit ::: C='cat;true',D='cat;false' -par_failing_compressor /tmp/parallel-local-10s-tmp/ -par_failing_compressor `touch /tmpfile -par_failing_compressor parallel: Warning: --files do not work if $TMPDIR contains newline. -par_failing_compressor parallel -k -k -k --files --compress --compress-program 'cat;false' --decompress-program 'cat;true' doit ::: C='cat;false',D='cat;true' -par_failing_compressor /tmp/parallel-local-10s-tmp/ -par_failing_compressor `touch /tmpfile -par_failing_compressor parallel: Warning: --files do not work if $TMPDIR contains newline. +par_failing_compressor parallel -k -k -k --files0 --compress --compress-program 'cat;true' --decompress-program 'cat;true' doit ::: C='cat;true',D='cat;true' +par_failing_compressor /TMP/tmpfile +par_failing_compressor parallel -k -k -k --files0 --compress --compress-program 'cat;true' --decompress-program 'cat;false' doit ::: C='cat;true',D='cat;false' +par_failing_compressor /TMP/tmpfile +par_failing_compressor parallel -k -k -k --files0 --compress --compress-program 'cat;false' --decompress-program 'cat;true' doit ::: C='cat;false',D='cat;true' +par_failing_compressor /TMP/tmpfile par_failing_compressor parallel: Error: cat;false failed. par_failing_compressor parallel: Error: cat;false failed. -par_failing_compressor parallel -k -k -k --files --compress --compress-program 'cat;false' --decompress-program 'cat;false' doit ::: C='cat;false',D='cat;false' -par_failing_compressor /tmp/parallel-local-10s-tmp/ -par_failing_compressor `touch /tmpfile -par_failing_compressor parallel: Warning: --files do not work if $TMPDIR contains newline. +par_failing_compressor parallel -k -k -k --files0 --compress --compress-program 'cat;false' --decompress-program 'cat;false' doit ::: C='cat;false',D='cat;false' +par_failing_compressor /TMP/tmpfile par_failing_compressor parallel: Error: cat;false failed. par_failing_compressor parallel: Error: cat;false failed. par_failing_compressor parallel -k -k -k -k --compress --compress-program 'cat;true' --decompress-program 'cat;true' doit ::: C='cat;true',D='cat;true' @@ -799,8 +767,7 @@ par_parset 4 par_parset 5 par_parset The commands to run can be an array par_parset <> -par_parset /tmp/parallel-local-10s-tmp/ -par_parset `touch /tmp/tripwire` <"'/tmp +par_parset /TMP par_parset You cannot pipe into parset, but must use a tempfile par_parset 1 par_parset 10 @@ -1125,24 +1092,16 @@ par_quote_special_results mkfs.f2fs 150+0 records out par_reload_slf_every_second ### --slf should reload every second par_reload_slf_every_second OK par_results_csv bug #: --results csv -par_results_csv --header : --tag --files --compress Seq,Host,Starttime,JobRuntime,Send,Receive,Exitval,Signal,Command,H2,H1,Stdout,Stderr -par_results_csv --header : --tag --files --compress 1,:,999.999,999.999,0,15,0,0,"echo 22 11",22,11,"22 11 /tmp/parallel-local-10s-tmp/ -par_results_csv --header : --tag --files --compress `touch /tmpfile", -par_results_csv --header : --tag --files --compress 2,:,999.999,999.999,0,15,0,0,"echo 22 12",22,12,"22 12 /tmp/parallel-local-10s-tmp/ -par_results_csv --header : --tag --files --compress `touch /tmpfile", -par_results_csv --header : --tag --files --compress 3,:,999.999,999.999,0,15,0,0,"echo 23 11",23,11,"23 11 /tmp/parallel-local-10s-tmp/ -par_results_csv --header : --tag --files --compress `touch /tmpfile", -par_results_csv --header : --tag --files --compress 4,:,999.999,999.999,0,15,0,0,"echo 23 12",23,12,"23 12 /tmp/parallel-local-10s-tmp/ -par_results_csv --header : --tag --files --compress `touch /tmpfile", -par_results_csv --header : --tag --files Seq,Host,Starttime,JobRuntime,Send,Receive,Exitval,Signal,Command,H2,H1,Stdout,Stderr -par_results_csv --header : --tag --files 1,:,999.999,999.999,0,6,0,0,"echo 22 11",22,11,"22 11 /tmp/parallel-local-10s-tmp/ -par_results_csv --header : --tag --files `touch /tmpfile", -par_results_csv --header : --tag --files 2,:,999.999,999.999,0,6,0,0,"echo 22 12",22,12,"22 12 /tmp/parallel-local-10s-tmp/ -par_results_csv --header : --tag --files `touch /tmpfile", -par_results_csv --header : --tag --files 3,:,999.999,999.999,0,6,0,0,"echo 23 11",23,11,"23 11 /tmp/parallel-local-10s-tmp/ -par_results_csv --header : --tag --files `touch /tmpfile", -par_results_csv --header : --tag --files 4,:,999.999,999.999,0,6,0,0,"echo 23 12",23,12,"23 12 /tmp/parallel-local-10s-tmp/ -par_results_csv --header : --tag --files `touch /tmpfile", +par_results_csv --header : --tag --files0 --compress Seq,Host,Starttime,JobRuntime,Send,Receive,Exitval,Signal,Command,H2,H1,Stdout,Stderr +par_results_csv --header : --tag --files0 --compress 1,:,999.999,999.999,0,15,0,0,"echo 22 11",22,11,"22 11 /TMP/tmpfile", +par_results_csv --header : --tag --files0 --compress 2,:,999.999,999.999,0,15,0,0,"echo 22 12",22,12,"22 12 /TMP/tmpfile", +par_results_csv --header : --tag --files0 --compress 3,:,999.999,999.999,0,15,0,0,"echo 23 11",23,11,"23 11 /TMP/tmpfile", +par_results_csv --header : --tag --files0 --compress 4,:,999.999,999.999,0,15,0,0,"echo 23 12",23,12,"23 12 /TMP/tmpfile", +par_results_csv --header : --tag --files0 Seq,Host,Starttime,JobRuntime,Send,Receive,Exitval,Signal,Command,H2,H1,Stdout,Stderr +par_results_csv --header : --tag --files0 1,:,999.999,999.999,0,6,0,0,"echo 22 11",22,11,"22 11 /TMP/tmpfile", +par_results_csv --header : --tag --files0 2,:,999.999,999.999,0,6,0,0,"echo 22 12",22,12,"22 12 /TMP/tmpfile", +par_results_csv --header : --tag --files0 3,:,999.999,999.999,0,6,0,0,"echo 23 11",23,11,"23 11 /TMP/tmpfile", +par_results_csv --header : --tag --files0 4,:,999.999,999.999,0,6,0,0,"echo 23 12",23,12,"23 12 /TMP/tmpfile", par_results_csv --header : --tag --compress Seq,Host,Starttime,JobRuntime,Send,Receive,Exitval,Signal,Command,H2,H1,Stdout,Stderr par_results_csv --header : --tag --compress 1,:,999.999,999.999,0,6,0,0,"echo 22 11",22,11,"22 11 22 11 par_results_csv --header : --tag --compress ", @@ -1161,24 +1120,16 @@ par_results_csv --header : --tag 3,:,999.999,999.999,0,6,0,0,"echo 23 11",23,1 par_results_csv --header : --tag ", par_results_csv --header : --tag 4,:,999.999,999.999,0,6,0,0,"echo 23 12",23,12,"23 12 23 12 par_results_csv --header : --tag ", -par_results_csv --header : --files --compress Seq,Host,Starttime,JobRuntime,Send,Receive,Exitval,Signal,Command,H2,H1,Stdout,Stderr -par_results_csv --header : --files --compress 1,:,999.999,999.999,0,15,0,0,"echo 22 11",22,11,"/tmp/parallel-local-10s-tmp/ -par_results_csv --header : --files --compress `touch /tmpfile", -par_results_csv --header : --files --compress 2,:,999.999,999.999,0,15,0,0,"echo 22 12",22,12,"/tmp/parallel-local-10s-tmp/ -par_results_csv --header : --files --compress `touch /tmpfile", -par_results_csv --header : --files --compress 3,:,999.999,999.999,0,15,0,0,"echo 23 11",23,11,"/tmp/parallel-local-10s-tmp/ -par_results_csv --header : --files --compress `touch /tmpfile", -par_results_csv --header : --files --compress 4,:,999.999,999.999,0,15,0,0,"echo 23 12",23,12,"/tmp/parallel-local-10s-tmp/ -par_results_csv --header : --files --compress `touch /tmpfile", -par_results_csv --header : --files Seq,Host,Starttime,JobRuntime,Send,Receive,Exitval,Signal,Command,H2,H1,Stdout,Stderr -par_results_csv --header : --files 1,:,999.999,999.999,0,6,0,0,"echo 22 11",22,11,"/tmp/parallel-local-10s-tmp/ -par_results_csv --header : --files `touch /tmpfile", -par_results_csv --header : --files 2,:,999.999,999.999,0,6,0,0,"echo 22 12",22,12,"/tmp/parallel-local-10s-tmp/ -par_results_csv --header : --files `touch /tmpfile", -par_results_csv --header : --files 3,:,999.999,999.999,0,6,0,0,"echo 23 11",23,11,"/tmp/parallel-local-10s-tmp/ -par_results_csv --header : --files `touch /tmpfile", -par_results_csv --header : --files 4,:,999.999,999.999,0,6,0,0,"echo 23 12",23,12,"/tmp/parallel-local-10s-tmp/ -par_results_csv --header : --files `touch /tmpfile", +par_results_csv --header : --files0 --compress Seq,Host,Starttime,JobRuntime,Send,Receive,Exitval,Signal,Command,H2,H1,Stdout,Stderr +par_results_csv --header : --files0 --compress 1,:,999.999,999.999,0,15,0,0,"echo 22 11",22,11,"/TMP/tmpfile", +par_results_csv --header : --files0 --compress 2,:,999.999,999.999,0,15,0,0,"echo 22 12",22,12,"/TMP/tmpfile", +par_results_csv --header : --files0 --compress 3,:,999.999,999.999,0,15,0,0,"echo 23 11",23,11,"/TMP/tmpfile", +par_results_csv --header : --files0 --compress 4,:,999.999,999.999,0,15,0,0,"echo 23 12",23,12,"/TMP/tmpfile", +par_results_csv --header : --files0 Seq,Host,Starttime,JobRuntime,Send,Receive,Exitval,Signal,Command,H2,H1,Stdout,Stderr +par_results_csv --header : --files0 1,:,999.999,999.999,0,6,0,0,"echo 22 11",22,11,"/TMP/tmpfile", +par_results_csv --header : --files0 2,:,999.999,999.999,0,6,0,0,"echo 22 12",22,12,"/TMP/tmpfile", +par_results_csv --header : --files0 3,:,999.999,999.999,0,6,0,0,"echo 23 11",23,11,"/TMP/tmpfile", +par_results_csv --header : --files0 4,:,999.999,999.999,0,6,0,0,"echo 23 12",23,12,"/TMP/tmpfile", par_results_csv --header : --compress Seq,Host,Starttime,JobRuntime,Send,Receive,Exitval,Signal,Command,H2,H1,Stdout,Stderr par_results_csv --header : --compress 1,:,999.999,999.999,0,6,0,0,"echo 22 11",22,11,"22 11 par_results_csv --header : --compress ", @@ -1197,44 +1148,26 @@ par_results_csv --header : 3,:,999.999,999.999,0,6,0,0,"echo 23 11",23,11,"23 par_results_csv --header : ", par_results_csv --header : 4,:,999.999,999.999,0,6,0,0,"echo 23 12",23,12,"23 12 par_results_csv --header : ", -par_results_csv --tag --files --compress Seq,Host,Starttime,JobRuntime,Send,Receive,Exitval,Signal,Command,V1,V2,Stdout,Stderr -par_results_csv --tag --files --compress 1,:,999.999,999.999,0,15,0,0,"echo H2 H1",H2,H1,"H2 H1 /tmp/parallel-local-10s-tmp/ -par_results_csv --tag --files --compress `touch /tmpfile", -par_results_csv --tag --files --compress 2,:,999.999,999.999,0,15,0,0,"echo H2 11",H2,11,"H2 11 /tmp/parallel-local-10s-tmp/ -par_results_csv --tag --files --compress `touch /tmpfile", -par_results_csv --tag --files --compress 3,:,999.999,999.999,0,15,0,0,"echo H2 12",H2,12,"H2 12 /tmp/parallel-local-10s-tmp/ -par_results_csv --tag --files --compress `touch /tmpfile", -par_results_csv --tag --files --compress 4,:,999.999,999.999,0,15,0,0,"echo 22 H1",22,H1,"22 H1 /tmp/parallel-local-10s-tmp/ -par_results_csv --tag --files --compress `touch /tmpfile", -par_results_csv --tag --files --compress 5,:,999.999,999.999,0,15,0,0,"echo 22 11",22,11,"22 11 /tmp/parallel-local-10s-tmp/ -par_results_csv --tag --files --compress `touch /tmpfile", -par_results_csv --tag --files --compress 6,:,999.999,999.999,0,15,0,0,"echo 22 12",22,12,"22 12 /tmp/parallel-local-10s-tmp/ -par_results_csv --tag --files --compress `touch /tmpfile", -par_results_csv --tag --files --compress 7,:,999.999,999.999,0,15,0,0,"echo 23 H1",23,H1,"23 H1 /tmp/parallel-local-10s-tmp/ -par_results_csv --tag --files --compress `touch /tmpfile", -par_results_csv --tag --files --compress 8,:,999.999,999.999,0,15,0,0,"echo 23 11",23,11,"23 11 /tmp/parallel-local-10s-tmp/ -par_results_csv --tag --files --compress `touch /tmpfile", -par_results_csv --tag --files --compress 9,:,999.999,999.999,0,15,0,0,"echo 23 12",23,12,"23 12 /tmp/parallel-local-10s-tmp/ -par_results_csv --tag --files --compress `touch /tmpfile", -par_results_csv --tag --files Seq,Host,Starttime,JobRuntime,Send,Receive,Exitval,Signal,Command,V1,V2,Stdout,Stderr -par_results_csv --tag --files 1,:,999.999,999.999,0,6,0,0,"echo H2 H1",H2,H1,"H2 H1 /tmp/parallel-local-10s-tmp/ -par_results_csv --tag --files `touch /tmpfile", -par_results_csv --tag --files 2,:,999.999,999.999,0,6,0,0,"echo H2 11",H2,11,"H2 11 /tmp/parallel-local-10s-tmp/ -par_results_csv --tag --files `touch /tmpfile", -par_results_csv --tag --files 3,:,999.999,999.999,0,6,0,0,"echo H2 12",H2,12,"H2 12 /tmp/parallel-local-10s-tmp/ -par_results_csv --tag --files `touch /tmpfile", -par_results_csv --tag --files 4,:,999.999,999.999,0,6,0,0,"echo 22 H1",22,H1,"22 H1 /tmp/parallel-local-10s-tmp/ -par_results_csv --tag --files `touch /tmpfile", -par_results_csv --tag --files 5,:,999.999,999.999,0,6,0,0,"echo 22 11",22,11,"22 11 /tmp/parallel-local-10s-tmp/ -par_results_csv --tag --files `touch /tmpfile", -par_results_csv --tag --files 6,:,999.999,999.999,0,6,0,0,"echo 22 12",22,12,"22 12 /tmp/parallel-local-10s-tmp/ -par_results_csv --tag --files `touch /tmpfile", -par_results_csv --tag --files 7,:,999.999,999.999,0,6,0,0,"echo 23 H1",23,H1,"23 H1 /tmp/parallel-local-10s-tmp/ -par_results_csv --tag --files `touch /tmpfile", -par_results_csv --tag --files 8,:,999.999,999.999,0,6,0,0,"echo 23 11",23,11,"23 11 /tmp/parallel-local-10s-tmp/ -par_results_csv --tag --files `touch /tmpfile", -par_results_csv --tag --files 9,:,999.999,999.999,0,6,0,0,"echo 23 12",23,12,"23 12 /tmp/parallel-local-10s-tmp/ -par_results_csv --tag --files `touch /tmpfile", +par_results_csv --tag --files0 --compress Seq,Host,Starttime,JobRuntime,Send,Receive,Exitval,Signal,Command,V1,V2,Stdout,Stderr +par_results_csv --tag --files0 --compress 1,:,999.999,999.999,0,15,0,0,"echo H2 H1",H2,H1,"H2 H1 /TMP/tmpfile", +par_results_csv --tag --files0 --compress 2,:,999.999,999.999,0,15,0,0,"echo H2 11",H2,11,"H2 11 /TMP/tmpfile", +par_results_csv --tag --files0 --compress 3,:,999.999,999.999,0,15,0,0,"echo H2 12",H2,12,"H2 12 /TMP/tmpfile", +par_results_csv --tag --files0 --compress 4,:,999.999,999.999,0,15,0,0,"echo 22 H1",22,H1,"22 H1 /TMP/tmpfile", +par_results_csv --tag --files0 --compress 5,:,999.999,999.999,0,15,0,0,"echo 22 11",22,11,"22 11 /TMP/tmpfile", +par_results_csv --tag --files0 --compress 6,:,999.999,999.999,0,15,0,0,"echo 22 12",22,12,"22 12 /TMP/tmpfile", +par_results_csv --tag --files0 --compress 7,:,999.999,999.999,0,15,0,0,"echo 23 H1",23,H1,"23 H1 /TMP/tmpfile", +par_results_csv --tag --files0 --compress 8,:,999.999,999.999,0,15,0,0,"echo 23 11",23,11,"23 11 /TMP/tmpfile", +par_results_csv --tag --files0 --compress 9,:,999.999,999.999,0,15,0,0,"echo 23 12",23,12,"23 12 /TMP/tmpfile", +par_results_csv --tag --files0 Seq,Host,Starttime,JobRuntime,Send,Receive,Exitval,Signal,Command,V1,V2,Stdout,Stderr +par_results_csv --tag --files0 1,:,999.999,999.999,0,6,0,0,"echo H2 H1",H2,H1,"H2 H1 /TMP/tmpfile", +par_results_csv --tag --files0 2,:,999.999,999.999,0,6,0,0,"echo H2 11",H2,11,"H2 11 /TMP/tmpfile", +par_results_csv --tag --files0 3,:,999.999,999.999,0,6,0,0,"echo H2 12",H2,12,"H2 12 /TMP/tmpfile", +par_results_csv --tag --files0 4,:,999.999,999.999,0,6,0,0,"echo 22 H1",22,H1,"22 H1 /TMP/tmpfile", +par_results_csv --tag --files0 5,:,999.999,999.999,0,6,0,0,"echo 22 11",22,11,"22 11 /TMP/tmpfile", +par_results_csv --tag --files0 6,:,999.999,999.999,0,6,0,0,"echo 22 12",22,12,"22 12 /TMP/tmpfile", +par_results_csv --tag --files0 7,:,999.999,999.999,0,6,0,0,"echo 23 H1",23,H1,"23 H1 /TMP/tmpfile", +par_results_csv --tag --files0 8,:,999.999,999.999,0,6,0,0,"echo 23 11",23,11,"23 11 /TMP/tmpfile", +par_results_csv --tag --files0 9,:,999.999,999.999,0,6,0,0,"echo 23 12",23,12,"23 12 /TMP/tmpfile", par_results_csv --tag --compress Seq,Host,Starttime,JobRuntime,Send,Receive,Exitval,Signal,Command,V1,V2,Stdout,Stderr par_results_csv --tag --compress 1,:,999.999,999.999,0,6,0,0,"echo H2 H1",H2,H1,"H2 H1 H2 H1 par_results_csv --tag --compress ", @@ -1273,44 +1206,26 @@ par_results_csv --tag 8,:,999.999,999.999,0,6,0,0,"echo 23 11",23,11,"23 11 2 par_results_csv --tag ", par_results_csv --tag 9,:,999.999,999.999,0,6,0,0,"echo 23 12",23,12,"23 12 23 12 par_results_csv --tag ", -par_results_csv --files --compress Seq,Host,Starttime,JobRuntime,Send,Receive,Exitval,Signal,Command,V1,V2,Stdout,Stderr -par_results_csv --files --compress 1,:,999.999,999.999,0,15,0,0,"echo H2 H1",H2,H1,"/tmp/parallel-local-10s-tmp/ -par_results_csv --files --compress `touch /tmpfile", -par_results_csv --files --compress 2,:,999.999,999.999,0,15,0,0,"echo H2 11",H2,11,"/tmp/parallel-local-10s-tmp/ -par_results_csv --files --compress `touch /tmpfile", -par_results_csv --files --compress 3,:,999.999,999.999,0,15,0,0,"echo H2 12",H2,12,"/tmp/parallel-local-10s-tmp/ -par_results_csv --files --compress `touch /tmpfile", -par_results_csv --files --compress 4,:,999.999,999.999,0,15,0,0,"echo 22 H1",22,H1,"/tmp/parallel-local-10s-tmp/ -par_results_csv --files --compress `touch /tmpfile", -par_results_csv --files --compress 5,:,999.999,999.999,0,15,0,0,"echo 22 11",22,11,"/tmp/parallel-local-10s-tmp/ -par_results_csv --files --compress `touch /tmpfile", -par_results_csv --files --compress 6,:,999.999,999.999,0,15,0,0,"echo 22 12",22,12,"/tmp/parallel-local-10s-tmp/ -par_results_csv --files --compress `touch /tmpfile", -par_results_csv --files --compress 7,:,999.999,999.999,0,15,0,0,"echo 23 H1",23,H1,"/tmp/parallel-local-10s-tmp/ -par_results_csv --files --compress `touch /tmpfile", -par_results_csv --files --compress 8,:,999.999,999.999,0,15,0,0,"echo 23 11",23,11,"/tmp/parallel-local-10s-tmp/ -par_results_csv --files --compress `touch /tmpfile", -par_results_csv --files --compress 9,:,999.999,999.999,0,15,0,0,"echo 23 12",23,12,"/tmp/parallel-local-10s-tmp/ -par_results_csv --files --compress `touch /tmpfile", -par_results_csv --files Seq,Host,Starttime,JobRuntime,Send,Receive,Exitval,Signal,Command,V1,V2,Stdout,Stderr -par_results_csv --files 1,:,999.999,999.999,0,6,0,0,"echo H2 H1",H2,H1,"/tmp/parallel-local-10s-tmp/ -par_results_csv --files `touch /tmpfile", -par_results_csv --files 2,:,999.999,999.999,0,6,0,0,"echo H2 11",H2,11,"/tmp/parallel-local-10s-tmp/ -par_results_csv --files `touch /tmpfile", -par_results_csv --files 3,:,999.999,999.999,0,6,0,0,"echo H2 12",H2,12,"/tmp/parallel-local-10s-tmp/ -par_results_csv --files `touch /tmpfile", -par_results_csv --files 4,:,999.999,999.999,0,6,0,0,"echo 22 H1",22,H1,"/tmp/parallel-local-10s-tmp/ -par_results_csv --files `touch /tmpfile", -par_results_csv --files 5,:,999.999,999.999,0,6,0,0,"echo 22 11",22,11,"/tmp/parallel-local-10s-tmp/ -par_results_csv --files `touch /tmpfile", -par_results_csv --files 6,:,999.999,999.999,0,6,0,0,"echo 22 12",22,12,"/tmp/parallel-local-10s-tmp/ -par_results_csv --files `touch /tmpfile", -par_results_csv --files 7,:,999.999,999.999,0,6,0,0,"echo 23 H1",23,H1,"/tmp/parallel-local-10s-tmp/ -par_results_csv --files `touch /tmpfile", -par_results_csv --files 8,:,999.999,999.999,0,6,0,0,"echo 23 11",23,11,"/tmp/parallel-local-10s-tmp/ -par_results_csv --files `touch /tmpfile", -par_results_csv --files 9,:,999.999,999.999,0,6,0,0,"echo 23 12",23,12,"/tmp/parallel-local-10s-tmp/ -par_results_csv --files `touch /tmpfile", +par_results_csv --files0 --compress Seq,Host,Starttime,JobRuntime,Send,Receive,Exitval,Signal,Command,V1,V2,Stdout,Stderr +par_results_csv --files0 --compress 1,:,999.999,999.999,0,15,0,0,"echo H2 H1",H2,H1,"/TMP/tmpfile", +par_results_csv --files0 --compress 2,:,999.999,999.999,0,15,0,0,"echo H2 11",H2,11,"/TMP/tmpfile", +par_results_csv --files0 --compress 3,:,999.999,999.999,0,15,0,0,"echo H2 12",H2,12,"/TMP/tmpfile", +par_results_csv --files0 --compress 4,:,999.999,999.999,0,15,0,0,"echo 22 H1",22,H1,"/TMP/tmpfile", +par_results_csv --files0 --compress 5,:,999.999,999.999,0,15,0,0,"echo 22 11",22,11,"/TMP/tmpfile", +par_results_csv --files0 --compress 6,:,999.999,999.999,0,15,0,0,"echo 22 12",22,12,"/TMP/tmpfile", +par_results_csv --files0 --compress 7,:,999.999,999.999,0,15,0,0,"echo 23 H1",23,H1,"/TMP/tmpfile", +par_results_csv --files0 --compress 8,:,999.999,999.999,0,15,0,0,"echo 23 11",23,11,"/TMP/tmpfile", +par_results_csv --files0 --compress 9,:,999.999,999.999,0,15,0,0,"echo 23 12",23,12,"/TMP/tmpfile", +par_results_csv --files0 Seq,Host,Starttime,JobRuntime,Send,Receive,Exitval,Signal,Command,V1,V2,Stdout,Stderr +par_results_csv --files0 1,:,999.999,999.999,0,6,0,0,"echo H2 H1",H2,H1,"/TMP/tmpfile", +par_results_csv --files0 2,:,999.999,999.999,0,6,0,0,"echo H2 11",H2,11,"/TMP/tmpfile", +par_results_csv --files0 3,:,999.999,999.999,0,6,0,0,"echo H2 12",H2,12,"/TMP/tmpfile", +par_results_csv --files0 4,:,999.999,999.999,0,6,0,0,"echo 22 H1",22,H1,"/TMP/tmpfile", +par_results_csv --files0 5,:,999.999,999.999,0,6,0,0,"echo 22 11",22,11,"/TMP/tmpfile", +par_results_csv --files0 6,:,999.999,999.999,0,6,0,0,"echo 22 12",22,12,"/TMP/tmpfile", +par_results_csv --files0 7,:,999.999,999.999,0,6,0,0,"echo 23 H1",23,H1,"/TMP/tmpfile", +par_results_csv --files0 8,:,999.999,999.999,0,6,0,0,"echo 23 11",23,11,"/TMP/tmpfile", +par_results_csv --files0 9,:,999.999,999.999,0,6,0,0,"echo 23 12",23,12,"/TMP/tmpfile", par_results_csv --compress Seq,Host,Starttime,JobRuntime,Send,Receive,Exitval,Signal,Command,V1,V2,Stdout,Stderr par_results_csv --compress 1,:,999.999,999.999,0,6,0,0,"echo H2 H1",H2,H1,"H2 H1 par_results_csv --compress ", @@ -1423,8 +1338,7 @@ par_tmp_full parallel: Error: Cannot append to buffer file in /tmp/shm/parallel. par_tmp_full parallel: Error: Is the disk full? par_tmp_full parallel: Error: Change $TMPDIR with --tmpdir or use --compress. par_tmux_fg bug #50107: --tmux --fg should also write how to access it -par_tmux_fg See output with: tmux -S '/tmp/parallel-local-10s-tmp/ -par_tmux_fg `touch tmpfile' attach +par_tmux_fg See output with: tmux -S /TMPtmpfile attach par_tmux_fg open terminal failed: not a terminal par_totaljobs OK par_xargs_compat xargs compatibility diff --git a/testsuite/wanted-results/parallel-local-1s b/testsuite/wanted-results/parallel-local-1s index 603ce5b2..208e638e 100644 --- a/testsuite/wanted-results/parallel-local-1s +++ b/testsuite/wanted-results/parallel-local-1s @@ -124,20 +124,19 @@ par_empty_string_command_line bar par_eof_on_command_line_input_source ### Test of eof string on ::: par_eof_on_command_line_input_source foo par_file_rpl ### file as replacement string -par_file_rpl contest1 -par_file_rpl contest2 -par_file_rpl File name /tmp/parallel-local-1s-tmp/ -par_file_rpl `touch /tmp/tripwire` <"'/tmp/tmp.XXXXXX -par_file_rpl contest1 -par_file_rpl contest2 -par_file_rpl File name /parallel-local-1s-tmp/ -par_file_rpl `touch /tmp/tripwire` <"'/tmp/tmp.XXXXXX/parallel-local-1s-tmp/ -par_file_rpl `touch /parallel-local-1s-tmp/ -par_file_rpl `touch /tmp/tripwire` <"'/tmp/tmp.XXXXXX/tripwire` <"'/tmp/tmp.XXXXXX -par_file_rpl contest1 -par_file_rpl contest2 -par_file_rpl File name /tmp/parallel-local-1s-tmp/ -par_file_rpl `touch /tmp/tripwire` <"'/tmp/tmp.XXXXXX +par_file_rpl # {filename} +par_file_rpl content1 +par_file_rpl content2 +par_file_rpl File name /TMP/tmp.XXXXXX +par_file_rpl # Conflict: both {filename} and {/regexp/rpl} +par_file_rpl content1 +par_file_rpl content2 +par_file_rpl File name /parallel-local-1s/ /bar/tmp.XXXXXX/parallel-local-1s/ /bar/tmp.XXXXXX +par_file_rpl # --header 0 --plus +par_file_rpl content1 +par_file_rpl content2 +par_file_rpl File name /TMP/tmp.XXXXXX +par_file_rpl # Conflict: both {filename} and {n} par_file_rpl 1 par_file_rpl 1 par_file_rpl 2 @@ -150,6 +149,7 @@ par_file_rpl 1 par_file_rpl 1 par_file_rpl 1 par_file_rpl 1 +par_file_rpl # Conflict: both {filename} and {=expr=} par_file_rpl =chop par_file_rpl =chop par_header ### Test --header with -N @@ -492,8 +492,7 @@ par_profiles_with_space ### bug #42902: profiles containing arguments with space par_profiles_with_space /bin/bash=/bin/bash par_profiles_with_space echo '/bin/bash=/bin/bash' par_profiles_with_space /bin/bash=/bin/bash -par_profiles_with_space With script in $PARALLEL /bin/bash=/tmp/parallel-local-1s-tmp/ -par_profiles_with_space `touch /tmp/tripwire` <"'/tmp +par_profiles_with_space With script in $PARALLEL /bin/bash=/TMP par_pxz_complains bug #44250: pxz complains File format not recognized but decompresses anyway par_pxz_complains ls: cannot access '/OK-if-missing-file': No such file or directory par_pxz_complains can not seek in input: Illegal seek diff --git a/testsuite/wanted-results/parallel-local-30s b/testsuite/wanted-results/parallel-local-30s index b15176c4..9e40f3b7 100644 --- a/testsuite/wanted-results/parallel-local-30s +++ b/testsuite/wanted-results/parallel-local-30s @@ -37,7 +37,6 @@ par_bin 2 4 9 par_exit_code bug #52207: Exit status 0 when child job is killed, even with "now,fail=1" par_exit_code # Ideally the command should return the same par_exit_code # with or without parallel -par_exit_code # but fish 2.4.0 returns 1 while X.X.X returns 0 par_exit_code ash /tmp/mysleep 100 137 par_exit_code ash parallel --halt-on-error now,fail=1 /tmp/mysleep ::: 100 137 par_exit_code ash parallel --halt-on-error now,done=1 /tmp/mysleep ::: 100 137 @@ -158,16 +157,6 @@ par_exit_code bash parallel --halt-on-error now,fail=1 'true;/tmp/mysleep' ::: 1 par_exit_code bash parallel --halt-on-error now,done=1 'true;/tmp/mysleep' ::: 100 137 par_exit_code bash parallel --halt-on-error now,done=1 'true;/bin/true' ::: 100 0 par_exit_code bash parallel --halt-on-error now,done=1 'true;exit' ::: 100 100 -par_exit_code fdsh /tmp/mysleep 100 137 -par_exit_code fdsh parallel --halt-on-error now,fail=1 /tmp/mysleep ::: 100 2 -par_exit_code fdsh parallel --halt-on-error now,done=1 /tmp/mysleep ::: 100 2 -par_exit_code fdsh parallel --halt-on-error now,done=1 /bin/true ::: 100 2 -par_exit_code fdsh parallel --halt-on-error now,done=1 exit ::: 100 100 -par_exit_code fdsh true;/tmp/mysleep 100 137 -par_exit_code fdsh parallel --halt-on-error now,fail=1 'true;/tmp/mysleep' ::: 100 2 -par_exit_code fdsh parallel --halt-on-error now,done=1 'true;/tmp/mysleep' ::: 100 2 -par_exit_code fdsh parallel --halt-on-error now,done=1 'true;/bin/true' ::: 100 2 -par_exit_code fdsh parallel --halt-on-error now,done=1 'true;exit' ::: 100 100 par_exit_code ksh93 /tmp/mysleep 100 0 par_exit_code ksh93 parallel --halt-on-error now,fail=1 /tmp/mysleep ::: 100 137 par_exit_code ksh93 parallel --halt-on-error now,done=1 /tmp/mysleep ::: 100 137 @@ -218,6 +207,16 @@ par_exit_code zsh parallel --halt-on-error now,fail=1 'true;/tmp/mysleep' ::: 10 par_exit_code zsh parallel --halt-on-error now,done=1 'true;/tmp/mysleep' ::: 100 137 par_exit_code zsh parallel --halt-on-error now,done=1 'true;/bin/true' ::: 100 0 par_exit_code zsh parallel --halt-on-error now,done=1 'true;exit' ::: 100 100 +par_exit_code fdsh /tmp/mysleep 100 137 +par_exit_code fdsh parallel --halt-on-error now,fail=1 /tmp/mysleep ::: 100 2 +par_exit_code fdsh parallel --halt-on-error now,done=1 /tmp/mysleep ::: 100 2 +par_exit_code fdsh parallel --halt-on-error now,done=1 /bin/true ::: 100 2 +par_exit_code fdsh parallel --halt-on-error now,done=1 exit ::: 100 100 +par_exit_code fdsh true;/tmp/mysleep 100 137 +par_exit_code fdsh parallel --halt-on-error now,fail=1 'true;/tmp/mysleep' ::: 100 2 +par_exit_code fdsh parallel --halt-on-error now,done=1 'true;/tmp/mysleep' ::: 100 2 +par_exit_code fdsh parallel --halt-on-error now,done=1 'true;/bin/true' ::: 100 2 +par_exit_code fdsh parallel --halt-on-error now,done=1 'true;exit' ::: 100 100 par_exit_code parallel: This job finished: par_exit_code runit par_groupby -N1 3 $_%=2 tsv \t ### test tsv | --colsep \t --groupby 3 $_%=2 -N1 diff --git a/testsuite/wanted-results/parallel-local-race01 b/testsuite/wanted-results/parallel-local-race01 index b59d83b7..f4b23fbd 100644 --- a/testsuite/wanted-results/parallel-local-race01 +++ b/testsuite/wanted-results/parallel-local-race01 @@ -44,20 +44,20 @@ par_print_before_halt_on_error ### What is printed before the jobs are killed par_print_before_halt_on_error -2 exit code 0 par_print_before_halt_on_error -2 0.1 0.1 par_print_before_halt_on_error -2 parallel: This job succeeded: -par_print_before_halt_on_error -2 perl -e 'sleep 1; sleep $ARGV[0]; print STDERR "",@ARGV,"\n"; -2 > 0 ? exit shift : exit not shift;' 0.1 +par_print_before_halt_on_error -2 perl -e 'sleep 1; sleep $ARGV[0]; print STDERR ",@ARGV,"\n"; -2 > 0 ? exit shift : exit not shift;' 0.1 par_print_before_halt_on_error -1 exit code 0 par_print_before_halt_on_error -1 0.1 0.1 par_print_before_halt_on_error -1 parallel: This job succeeded: -par_print_before_halt_on_error -1 perl -e 'sleep 1; sleep $ARGV[0]; print STDERR "",@ARGV,"\n"; -1 > 0 ? exit shift : exit not shift;' 0.1 +par_print_before_halt_on_error -1 perl -e 'sleep 1; sleep $ARGV[0]; print STDERR ",@ARGV,"\n"; -1 > 0 ? exit shift : exit not shift;' 0.1 par_print_before_halt_on_error -1 parallel: Starting no more jobs. Waiting for 3 jobs to finish. par_print_before_halt_on_error -1 parallel: This job succeeded: -par_print_before_halt_on_error -1 perl -e 'sleep 1; sleep $ARGV[0]; print STDERR "",@ARGV,"\n"; -1 > 0 ? exit shift : exit not shift;' 1 +par_print_before_halt_on_error -1 perl -e 'sleep 1; sleep $ARGV[0]; print STDERR ",@ARGV,"\n"; -1 > 0 ? exit shift : exit not shift;' 1 par_print_before_halt_on_error -1 parallel: Starting no more jobs. Waiting for 1 jobs to finish. par_print_before_halt_on_error -1 3.2 3.2 par_print_before_halt_on_error -1 0 0 par_print_before_halt_on_error -1 1 1 par_print_before_halt_on_error -1 parallel: This job succeeded: -par_print_before_halt_on_error -1 perl -e 'sleep 1; sleep $ARGV[0]; print STDERR "",@ARGV,"\n"; -1 > 0 ? exit shift : exit not shift;' 3.2 +par_print_before_halt_on_error -1 perl -e 'sleep 1; sleep $ARGV[0]; print STDERR ",@ARGV,"\n"; -1 > 0 ? exit shift : exit not shift;' 3.2 par_print_before_halt_on_error 0 exit code 1 par_print_before_halt_on_error 0 0.1 0.1 par_print_before_halt_on_error 0 3.2 3.2 @@ -74,27 +74,26 @@ par_print_before_halt_on_error 0 8 8 par_print_before_halt_on_error 1 exit code 1 par_print_before_halt_on_error 1 0.1 0.1 par_print_before_halt_on_error 1 parallel: This job failed: -par_print_before_halt_on_error 1 perl -e 'sleep 1; sleep $ARGV[0]; print STDERR "",@ARGV,"\n"; 1 > 0 ? exit shift : exit not shift;' 1 +par_print_before_halt_on_error 1 perl -e 'sleep 1; sleep $ARGV[0]; print STDERR ",@ARGV,"\n"; 1 > 0 ? exit shift : exit not shift;' 1 par_print_before_halt_on_error 1 parallel: Starting no more jobs. Waiting for 3 jobs to finish. par_print_before_halt_on_error 1 parallel: This job failed: -par_print_before_halt_on_error 1 perl -e 'sleep 1; sleep $ARGV[0]; print STDERR "",@ARGV,"\n"; 1 > 0 ? exit shift : exit not shift;' 2 +par_print_before_halt_on_error 1 perl -e 'sleep 1; sleep $ARGV[0]; print STDERR ",@ARGV,"\n"; 1 > 0 ? exit shift : exit not shift;' 2 par_print_before_halt_on_error 1 parallel: Starting no more jobs. Waiting for 2 jobs to finish. par_print_before_halt_on_error 1 3.2 3.2 par_print_before_halt_on_error 1 0 0 par_print_before_halt_on_error 1 1 1 par_print_before_halt_on_error 1 2 2 par_print_before_halt_on_error 1 parallel: This job failed: -par_print_before_halt_on_error 1 perl -e 'sleep 1; sleep $ARGV[0]; print STDERR "",@ARGV,"\n"; 1 > 0 ? exit shift : exit not shift;' 3.2 +par_print_before_halt_on_error 1 perl -e 'sleep 1; sleep $ARGV[0]; print STDERR ",@ARGV,"\n"; 1 > 0 ? exit shift : exit not shift;' 3.2 par_print_before_halt_on_error 1 parallel: Starting no more jobs. Waiting for 1 jobs to finish. par_print_before_halt_on_error 1 3 3 par_print_before_halt_on_error 1 parallel: This job failed: -par_print_before_halt_on_error 1 perl -e 'sleep 1; sleep $ARGV[0]; print STDERR "",@ARGV,"\n"; 1 > 0 ? exit shift : exit not shift;' 3 +par_print_before_halt_on_error 1 perl -e 'sleep 1; sleep $ARGV[0]; print STDERR ",@ARGV,"\n"; 1 > 0 ? exit shift : exit not shift;' 3 par_print_before_halt_on_error 2 exit code 1 par_print_before_halt_on_error 2 0.1 0.1 par_print_before_halt_on_error 2 parallel: This job failed: -par_print_before_halt_on_error 2 perl -e 'sleep 1; sleep $ARGV[0]; print STDERR "",@ARGV,"\n"; 2 > 0 ? exit shift : exit not shift;' 1 +par_print_before_halt_on_error 2 perl -e 'sleep 1; sleep $ARGV[0]; print STDERR ",@ARGV,"\n"; 2 > 0 ? exit shift : exit not shift;' 1 par_sem_dir ### bug #58985: sem stall if .parallel/semaphores is chmod 0 par_sem_dir parallel: Error: Semaphoredir must be writable: '~/.parallel/semaphores' par_tmux_termination ### --tmux test - check termination -par_tmux_termination See output with: tmux -S '/tmp/parallel-local-race01-tmp/ -par_tmux_termination `touch /tmp/tripwire` <"'"'"'/tmp/tmsXXXXX' attach +par_tmux_termination See output with: tmux -S /TMP/tmsXXXXX attach diff --git a/testsuite/wanted-results/parallel-local-ssh1 b/testsuite/wanted-results/parallel-local-ssh1 index 333b2b73..b81deffe 100644 --- a/testsuite/wanted-results/parallel-local-ssh1 +++ b/testsuite/wanted-results/parallel-local-ssh1 @@ -4,9 +4,66 @@ TODO par_--onall_--plus ### Test --plus is respected with --onall/--nonall par_--onall_--plus lo par_--onall_--plus lo +par_--onall_--transfer ### bug #46519: --onall ignores --transfer +par_--onall_--transfer bug46519.a +par_--onall_--transfer bug46519.b +par_--onall_--transfer bug46519.c +par_--onall_--transfer bug46519.a +par_--onall_--transfer bug46519.b +par_--onall_--transfer bug46519.c +par_--onall_--transfer bug46519.aa +par_--onall_--transfer bug46519.aaa +par_--onall_--transfer bug46519.bb +par_--onall_--transfer bug46519.bbb +par_--onall_--transfer bug46519.cc +par_--onall_--transfer bug46519.ccc +par_--onall_--transfer ls: cannot access 'bug46519.aa': No such file or directory +par_--onall_--transfer ls: cannot access 'bug46519.aaa': No such file or directory +par_--onall_--transfer ls: cannot access 'bug46519.bb': No such file or directory +par_--onall_--transfer ls: cannot access 'bug46519.bbb': No such file or directory +par_--onall_--transfer ls: cannot access 'bug46519.cc': No such file or directory +par_--onall_--transfer ls: cannot access 'bug46519.ccc': No such file or directory +par_--onall_--transfer ls: cannot access 'bug46519.aa': No such file or directory +par_--onall_--transfer ls: cannot access 'bug46519.aaa': No such file or directory +par_--onall_--transfer ls: cannot access 'bug46519.bb': No such file or directory +par_--onall_--transfer ls: cannot access 'bug46519.bbb': No such file or directory +par_--onall_--transfer ls: cannot access 'bug46519.cc': No such file or directory +par_--onall_--transfer ls: cannot access 'bug46519.ccc': No such file or directory +par_--ssh_ssh_in_ssh ### bug #61894: Pack ssh code in eval protection +par_--ssh_ssh_in_ssh Unquoted ssh should work +par_--ssh_ssh_in_ssh aspire +par_--ssh_ssh_in_ssh OK +par_--ssh_ssh_in_ssh aspire +par_--ssh_ssh_in_ssh OK +par_--ssh_ssh_in_ssh aspire +par_--ssh_ssh_in_ssh OK +par_--ssh_ssh_in_ssh aspire +par_--ssh_ssh_in_ssh OK par_PARALLEL_SSH_function ### use function as $PARALLEL_SSH par_PARALLEL_SSH_function Run through FOOSSH? par_PARALLEL_SSH_function FOOSSH +par__remote_load ### Test --load remote +par__remote_load parallel: Warning: This job was killed because it timed out: +par__remote_load parallel: Warning: perl -e 'while(1){ }' +par__remote_load parallel: Warning: This job was killed because it timed out: +par__remote_load parallel: Warning: perl -e 'while(1){ }' +par__remote_load parallel: Warning: This job was killed because it timed out: +par__remote_load parallel: Warning: perl -e 'while(1){ }' +par__remote_load parallel: Warning: This job was killed because it timed out: +par__remote_load parallel: Warning: perl -e 'while(1){ }' +par__remote_load parallel: Warning: This job was killed because it timed out: +par__remote_load parallel: Warning: perl -e 'while(1){ }' +par__remote_load parallel: Warning: This job was killed because it timed out: +par__remote_load parallel: Warning: perl -e 'while(1){ }' +par__remote_load parallel: Warning: This job was killed because it timed out: +par__remote_load parallel: Warning: perl -e 'while(1){ }' +par__remote_load parallel: Warning: This job was killed because it timed out: +par__remote_load parallel: Warning: perl -e 'while(1){ }' +par__remote_load parallel: Warning: This job was killed because it timed out: +par__remote_load parallel: Warning: perl -e 'while(1){ }' +par__remote_load parallel: Warning: This job was killed because it timed out: +par__remote_load parallel: Warning: perl -e 'while(1){ }' +par__remote_load OK par_csh_variable_newline ### Can csh propagate a variable containing \n par_csh_variable_newline 1 par_csh_variable_newline 2 @@ -23,31 +80,6 @@ par_hgrp_agrp_comma uid=1004(csh) gid=1004(csh) groups=1004(csh) par_hgrp_agrp_comma uid=1007(tcsh) gid=1007(tcsh) groups=1007(tcsh) par_joblog_nonall ### bug #40001: --joblog and --nonall seem not to work together: par_joblog_nonall 3 -par_onall_transfer ### bug #46519: --onall ignores --transfer -par_onall_transfer bug46519.a -par_onall_transfer bug46519.b -par_onall_transfer bug46519.c -par_onall_transfer bug46519.a -par_onall_transfer bug46519.b -par_onall_transfer bug46519.c -par_onall_transfer bug46519.aa -par_onall_transfer bug46519.aaa -par_onall_transfer bug46519.bb -par_onall_transfer bug46519.bbb -par_onall_transfer bug46519.cc -par_onall_transfer bug46519.ccc -par_onall_transfer ls: cannot access 'bug46519.aa': No such file or directory -par_onall_transfer ls: cannot access 'bug46519.aaa': No such file or directory -par_onall_transfer ls: cannot access 'bug46519.bb': No such file or directory -par_onall_transfer ls: cannot access 'bug46519.bbb': No such file or directory -par_onall_transfer ls: cannot access 'bug46519.cc': No such file or directory -par_onall_transfer ls: cannot access 'bug46519.ccc': No such file or directory -par_onall_transfer ls: cannot access 'bug46519.aa': No such file or directory -par_onall_transfer ls: cannot access 'bug46519.aaa': No such file or directory -par_onall_transfer ls: cannot access 'bug46519.bb': No such file or directory -par_onall_transfer ls: cannot access 'bug46519.bbb': No such file or directory -par_onall_transfer ls: cannot access 'bug46519.cc': No such file or directory -par_onall_transfer ls: cannot access 'bug46519.ccc': No such file or directory par_pipe_unneeded_spawn ### Test bug #34241: --pipe should not spawn unneeded processes par_pipe_unneeded_spawn 1 par_pipe_unneeded_spawn 2 @@ -57,28 +89,6 @@ par_pipe_unneeded_spawn 4 par_pipe_unneeded_spawn Block_end par_pipe_unneeded_spawn 5 par_pipe_unneeded_spawn Block_end -par_remote_load ### Test --load remote -par_remote_load parallel: Warning: This job was killed because it timed out: -par_remote_load parallel: Warning: perl -e 'while(1){ }' -par_remote_load parallel: Warning: This job was killed because it timed out: -par_remote_load parallel: Warning: perl -e 'while(1){ }' -par_remote_load parallel: Warning: This job was killed because it timed out: -par_remote_load parallel: Warning: perl -e 'while(1){ }' -par_remote_load parallel: Warning: This job was killed because it timed out: -par_remote_load parallel: Warning: perl -e 'while(1){ }' -par_remote_load parallel: Warning: This job was killed because it timed out: -par_remote_load parallel: Warning: perl -e 'while(1){ }' -par_remote_load parallel: Warning: This job was killed because it timed out: -par_remote_load parallel: Warning: perl -e 'while(1){ }' -par_remote_load parallel: Warning: This job was killed because it timed out: -par_remote_load parallel: Warning: perl -e 'while(1){ }' -par_remote_load parallel: Warning: This job was killed because it timed out: -par_remote_load parallel: Warning: perl -e 'while(1){ }' -par_remote_load parallel: Warning: This job was killed because it timed out: -par_remote_load parallel: Warning: perl -e 'while(1){ }' -par_remote_load parallel: Warning: This job was killed because it timed out: -par_remote_load parallel: Warning: perl -e 'while(1){ }' -par_remote_load OK par_remote_nice ### Test --nice remote par_remote_nice NI par_remote_nice 5 @@ -87,16 +97,6 @@ par_remote_nice 5 par_ssh ### use --ssh par_ssh Run through BARSSH? par_ssh BARSSH -par_ssh_ssh ### bug #61894: Pack ssh code in eval protection -par_ssh_ssh Unquoted ssh should work -par_ssh_ssh aspire -par_ssh_ssh OK -par_ssh_ssh aspire -par_ssh_ssh OK -par_ssh_ssh aspire -par_ssh_ssh OK -par_ssh_ssh aspire -par_ssh_ssh OK par_sshlogin_with_comma ### --sshlogin with \, par_sshlogin_with_comma OK par_sshlogin_with_comma ### --sshlogin with ,, diff --git a/testsuite/wanted-results/parallel-local-ssh2 b/testsuite/wanted-results/parallel-local-ssh2 index 1473e6e5..b1abec4c 100644 --- a/testsuite/wanted-results/parallel-local-ssh2 +++ b/testsuite/wanted-results/parallel-local-ssh2 @@ -1,3 +1,5 @@ +par__obey_servers_capacity_slf_reload ### bug #43518: GNU Parallel doesn't obey servers' jobs capacity when an ssh login file is reloaded +par__obey_servers_capacity_slf_reload OK par_cat_fifo_exit ### --cat and --fifo exit value in bash par_cat_fifo_exit true par_cat_fifo_exit 0 @@ -21,10 +23,6 @@ par_env_parallel_fifo data from stdin par_env_parallel_fifo transferred non-exported func par_env_parallel_fifo data from stdin par_env_parallel_fifo transferred non-exported func -par_filter_hosts_slf ### --filter-hosts --slf <() -par_filter_hosts_slf OK -par_obey_servers_capacity_slf_reload ### bug #43518: GNU Parallel doesn't obey servers' jobs capacity when an ssh login file is reloaded -par_obey_servers_capacity_slf_reload OK par_pipepart_remote ### bug #42999: --pipepart with remote does not work par_pipepart_remote 14 14 33 par_pipepart_remote 11 11 33 @@ -101,3 +99,5 @@ par_wd_no_such_dir ### --wd no-such-dir - bash par_wd_no_such_dir mkdir: cannot create directory '/no-such-dir': Permission denied par_wd_no_such_dir parallel: Cannot chdir to /no-such-dir par_wd_no_such_dir Exit code 1 +par_z_filter_hosts_slf ### --filter-hosts --slf <() +par_z_filter_hosts_slf OK diff --git a/testsuite/wanted-results/parallel-local-ssh4 b/testsuite/wanted-results/parallel-local-ssh4 index 1f256606..7b67a930 100644 --- a/testsuite/wanted-results/parallel-local-ssh4 +++ b/testsuite/wanted-results/parallel-local-ssh4 @@ -1,3 +1,184 @@ +par_--nonall_results ### --results --onall +par_--nonall_results /TMP/onall +par_--nonall_results /TMP/onall/noslashsh@lo +par_--nonall_results /TMP/onall/noslashsh@lo/1 +par_--nonall_results /TMP/onall/noslashsh@lo/1/id +par_--nonall_results /TMP/onall/noslashsh@lo/1/id/seq +par_--nonall_results /TMP/onall/noslashsh@lo/1/id/stderr +par_--nonall_results /TMP/onall/noslashsh@lo/1/id/stdout +par_--nonall_results /TMP/onall/noslashsh@lo/1/pwd +par_--nonall_results /TMP/onall/noslashsh@lo/1/pwd/seq +par_--nonall_results /TMP/onall/noslashsh@lo/1/pwd/stderr +par_--nonall_results /TMP/onall/noslashsh@lo/1/pwd/stdout +par_--nonall_results /TMP/onall/rpl1noslash +par_--nonall_results /TMP/onall/rpl1noslash/idsh@lo.seq +par_--nonall_results /TMP/onall/rpl1noslash/idcsh@lo.seq +par_--nonall_results /TMP/onall/rpl1noslash/idcsh@lo +par_--nonall_results /TMP/onall/rpl1noslash/pwdsh@lo.err +par_--nonall_results /TMP/onall/rpl1noslash/idcsh@lo.err +par_--nonall_results /TMP/onall/rpl1noslash/pwdcsh@lo.err +par_--nonall_results /TMP/onall/rpl1noslash/idsh@lo +par_--nonall_results /TMP/onall/rpl1noslash/pwdcsh@lo +par_--nonall_results /TMP/onall/rpl1noslash/pwdsh@lo.seq +par_--nonall_results /TMP/onall/rpl1noslash/pwdsh@lo +par_--nonall_results /TMP/onall/rpl1noslash/idsh@lo.err +par_--nonall_results /TMP/onall/rpl1noslash/pwdcsh@lo.seq +par_--nonall_results /TMP/onall/slash +par_--nonall_results /TMP/onall/slash/sh@lo +par_--nonall_results /TMP/onall/slash/sh@lo/1 +par_--nonall_results /TMP/onall/slash/sh@lo/1/id +par_--nonall_results /TMP/onall/slash/sh@lo/1/id/seq +par_--nonall_results /TMP/onall/slash/sh@lo/1/id/stderr +par_--nonall_results /TMP/onall/slash/sh@lo/1/id/stdout +par_--nonall_results /TMP/onall/slash/sh@lo/1/pwd +par_--nonall_results /TMP/onall/slash/sh@lo/1/pwd/seq +par_--nonall_results /TMP/onall/slash/sh@lo/1/pwd/stderr +par_--nonall_results /TMP/onall/slash/sh@lo/1/pwd/stdout +par_--nonall_results /TMP/onall/slash/csh@lo +par_--nonall_results /TMP/onall/slash/csh@lo/1 +par_--nonall_results /TMP/onall/slash/csh@lo/1/id +par_--nonall_results /TMP/onall/slash/csh@lo/1/id/seq +par_--nonall_results /TMP/onall/slash/csh@lo/1/id/stderr +par_--nonall_results /TMP/onall/slash/csh@lo/1/id/stdout +par_--nonall_results /TMP/onall/slash/csh@lo/1/pwd +par_--nonall_results /TMP/onall/slash/csh@lo/1/pwd/seq +par_--nonall_results /TMP/onall/slash/csh@lo/1/pwd/stderr +par_--nonall_results /TMP/onall/slash/csh@lo/1/pwd/stdout +par_--nonall_results /TMP/onall/rplnoslash +par_--nonall_results /TMP/onall/rplnoslash/idsh@lo.seq +par_--nonall_results /TMP/onall/rplnoslash/idcsh@lo.seq +par_--nonall_results /TMP/onall/rplnoslash/idcsh@lo +par_--nonall_results /TMP/onall/rplnoslash/pwdsh@lo.err +par_--nonall_results /TMP/onall/rplnoslash/idcsh@lo.err +par_--nonall_results /TMP/onall/rplnoslash/pwdcsh@lo.err +par_--nonall_results /TMP/onall/rplnoslash/idsh@lo +par_--nonall_results /TMP/onall/rplnoslash/pwdcsh@lo +par_--nonall_results /TMP/onall/rplnoslash/pwdsh@lo.seq +par_--nonall_results /TMP/onall/rplnoslash/pwdsh@lo +par_--nonall_results /TMP/onall/rplnoslash/idsh@lo.err +par_--nonall_results /TMP/onall/rplnoslash/pwdcsh@lo.seq +par_--nonall_results /TMP/onall/rpl1slash +par_--nonall_results /TMP/onall/rpl1slash/id +par_--nonall_results /TMP/onall/rpl1slash/id/sh@lo.seq +par_--nonall_results /TMP/onall/rpl1slash/id/csh@lo.err +par_--nonall_results /TMP/onall/rpl1slash/id/csh@lo.seq +par_--nonall_results /TMP/onall/rpl1slash/id/sh@lo +par_--nonall_results /TMP/onall/rpl1slash/id/csh@lo +par_--nonall_results /TMP/onall/rpl1slash/id/sh@lo.err +par_--nonall_results /TMP/onall/rpl1slash/pwd +par_--nonall_results /TMP/onall/rpl1slash/pwd/sh@lo.seq +par_--nonall_results /TMP/onall/rpl1slash/pwd/csh@lo.err +par_--nonall_results /TMP/onall/rpl1slash/pwd/csh@lo.seq +par_--nonall_results /TMP/onall/rpl1slash/pwd/sh@lo +par_--nonall_results /TMP/onall/rpl1slash/pwd/csh@lo +par_--nonall_results /TMP/onall/rpl1slash/pwd/sh@lo.err +par_--nonall_results /TMP/onall/noslashcsh@lo +par_--nonall_results /TMP/onall/noslashcsh@lo/1 +par_--nonall_results /TMP/onall/noslashcsh@lo/1/id +par_--nonall_results /TMP/onall/noslashcsh@lo/1/id/seq +par_--nonall_results /TMP/onall/noslashcsh@lo/1/id/stderr +par_--nonall_results /TMP/onall/noslashcsh@lo/1/id/stdout +par_--nonall_results /TMP/onall/noslashcsh@lo/1/pwd +par_--nonall_results /TMP/onall/noslashcsh@lo/1/pwd/seq +par_--nonall_results /TMP/onall/noslashcsh@lo/1/pwd/stderr +par_--nonall_results /TMP/onall/noslashcsh@lo/1/pwd/stdout +par_--nonall_results /TMP/onall/rplslash +par_--nonall_results /TMP/onall/rplslash/id +par_--nonall_results /TMP/onall/rplslash/id/sh@lo.seq +par_--nonall_results /TMP/onall/rplslash/id/csh@lo.err +par_--nonall_results /TMP/onall/rplslash/id/csh@lo.seq +par_--nonall_results /TMP/onall/rplslash/id/sh@lo +par_--nonall_results /TMP/onall/rplslash/id/csh@lo +par_--nonall_results /TMP/onall/rplslash/id/sh@lo.err +par_--nonall_results /TMP/onall/rplslash/pwd +par_--nonall_results /TMP/onall/rplslash/pwd/sh@lo.seq +par_--nonall_results /TMP/onall/rplslash/pwd/csh@lo.err +par_--nonall_results /TMP/onall/rplslash/pwd/csh@lo.seq +par_--nonall_results /TMP/onall/rplslash/pwd/sh@lo +par_--nonall_results /TMP/onall/rplslash/pwd/csh@lo +par_--nonall_results /TMP/onall/rplslash/pwd/sh@lo.err +par_--nonall_results ### --results --nonall +par_--nonall_results /TMP/nonall +par_--nonall_results /TMP/nonall/noslashsh@lo +par_--nonall_results /TMP/nonall/noslashsh@lo/1 +par_--nonall_results /TMP/nonall/noslashsh@lo/1/seq +par_--nonall_results /TMP/nonall/noslashsh@lo/1/stderr +par_--nonall_results /TMP/nonall/noslashsh@lo/1/stdout +par_--nonall_results /TMP/nonall/rpl1noslash +par_--nonall_results /TMP/nonall/rpl1noslash/sh@lo.seq +par_--nonall_results /TMP/nonall/rpl1noslash/csh@lo.err +par_--nonall_results /TMP/nonall/rpl1noslash/csh@lo.seq +par_--nonall_results /TMP/nonall/rpl1noslash/sh@lo +par_--nonall_results /TMP/nonall/rpl1noslash/csh@lo +par_--nonall_results /TMP/nonall/rpl1noslash/sh@lo.err +par_--nonall_results /TMP/nonall/slash +par_--nonall_results /TMP/nonall/slash/sh@lo +par_--nonall_results /TMP/nonall/slash/sh@lo/1 +par_--nonall_results /TMP/nonall/slash/sh@lo/1/seq +par_--nonall_results /TMP/nonall/slash/sh@lo/1/stderr +par_--nonall_results /TMP/nonall/slash/sh@lo/1/stdout +par_--nonall_results /TMP/nonall/slash/csh@lo +par_--nonall_results /TMP/nonall/slash/csh@lo/1 +par_--nonall_results /TMP/nonall/slash/csh@lo/1/seq +par_--nonall_results /TMP/nonall/slash/csh@lo/1/stderr +par_--nonall_results /TMP/nonall/slash/csh@lo/1/stdout +par_--nonall_results /TMP/nonall/rplnoslash +par_--nonall_results /TMP/nonall/rplnoslash/sh@lo.seq +par_--nonall_results /TMP/nonall/rplnoslash/csh@lo.err +par_--nonall_results /TMP/nonall/rplnoslash/csh@lo.seq +par_--nonall_results /TMP/nonall/rplnoslash/sh@lo +par_--nonall_results /TMP/nonall/rplnoslash/csh@lo +par_--nonall_results /TMP/nonall/rplnoslash/sh@lo.err +par_--nonall_results /TMP/nonall/rpl1slash +par_--nonall_results /TMP/nonall/rpl1slash/sh@lo.seq +par_--nonall_results /TMP/nonall/rpl1slash/csh@lo.err +par_--nonall_results /TMP/nonall/rpl1slash/csh@lo.seq +par_--nonall_results /TMP/nonall/rpl1slash/sh@lo +par_--nonall_results /TMP/nonall/rpl1slash/csh@lo +par_--nonall_results /TMP/nonall/rpl1slash/sh@lo.err +par_--nonall_results /TMP/nonall/noslashcsh@lo +par_--nonall_results /TMP/nonall/noslashcsh@lo/1 +par_--nonall_results /TMP/nonall/noslashcsh@lo/1/seq +par_--nonall_results /TMP/nonall/noslashcsh@lo/1/stderr +par_--nonall_results /TMP/nonall/noslashcsh@lo/1/stdout +par_--nonall_results /TMP/nonall/rplslash +par_--nonall_results /TMP/nonall/rplslash/sh@lo.seq +par_--nonall_results /TMP/nonall/rplslash/csh@lo.err +par_--nonall_results /TMP/nonall/rplslash/csh@lo.seq +par_--nonall_results /TMP/nonall/rplslash/sh@lo +par_--nonall_results /TMP/nonall/rplslash/csh@lo +par_--nonall_results /TMP/nonall/rplslash/sh@lo.err +par_--tmux_different_shells ### Test tmux works on different shells +par_--tmux_different_shells See output with: tmux -S /TMP/tmsXXXXX attach +par_--tmux_different_shells 0 +par_--tmux_different_shells See output with: tmux -S /TMP/tmsXXXXX attach +par_--tmux_different_shells 4 +par_--tmux_different_shells See output with: tmux -S /tmp/tmsXXXXX attach +par_--tmux_different_shells 0 +par_--tmux_different_shells See output with: tmux -S /tmp/tmsXXXXX attach +par_--tmux_different_shells 4 +par_--tmux_different_shells See output with: tmux -S /tmp/tmsXXXXX attach +par_--tmux_different_shells 0 +par_--tmux_different_shells See output with: tmux -S /tmp/tmsXXXXX attach +par_--tmux_different_shells 4 +par_--tmux_different_shells See output with: tmux -S /tmp/tmsXXXXX attach +par_--tmux_different_shells 0 +par_--tmux_different_shells See output with: tmux -S /tmp/tmsXXXXX attach +par_--tmux_different_shells 4 +par_--tmux_different_shells # command is currently too long for csh. Maybe it can be fixed? +par_--tmux_different_shells See output with: tmux -S /tmp/tmsXXXXX attach +par_--tmux_different_shells 0 +par_--tmux_different_shells See output with: tmux -S /tmp/tmsXXXXX attach +par_--tmux_different_shells 4 +par_--tmux_length ### works +par_--tmux_length See output with: tmux -S /TMP/tmsXXXXX attach +par_--tmux_length See output with: tmux -S /TMP/tmsXXXXX attach +par_--tmux_length ### These blocked due to length +par_--tmux_length See output with: tmux -S /TMP/tmsXXXXX attach +par_--tmux_length See output with: tmux -S /TMP/tmsXXXXX attach +par_--tmux_length See output with: tmux -S /TMP/tmsXXXXX attach +par_--tmux_length See output with: tmux -S /TMP/tmsXXXXX attach +par_--tmux_length See output with: tmux -S /TMP/tmsXXXXX attach par_bigvar_csh ### csh par_bigvar_csh 3 big vars run remotely - length(base64) > 1000 par_bigvar_csh 1 200 692 @@ -18,8 +199,6 @@ par_bigvar_rc 3 big vars run locally par_bigvar_rc 1 200 692 par_bigvar_rc 1 200 692 par_bigvar_rc 1 150 547 -par_csh_nice ### bug #44143: csh and nice -par_csh_nice OK par_env_underscore ### --env _ par_env_underscore OK FUBAR test par_env_underscore In csh this may fail with ignored_var: Undefined variable. @@ -37,353 +216,6 @@ par_exporting_in_zsh Function export as function par_exporting_in_zsh myfunc ran OK par_exporting_in_zsh function from zsh to zsh OK par_exporting_in_zsh function from zsh to bash OK -par_multiple_hosts_repeat_arg ### bug #45575: -m and multiple hosts repeats first args -par_multiple_hosts_repeat_arg parallel: Warning: Using -X or -m with --sshlogin may fail. -par_multiple_hosts_repeat_arg 1 -par_multiple_hosts_repeat_arg 2 -par_multiple_hosts_repeat_arg 3 -par_nonall_results ### --results --onall -par_nonall_results /tmp/parallel-local-ssh4-tmp/ -par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall -par_nonall_results /tmp/parallel-local-ssh4-tmp/ -par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/noslashsh@lo -par_nonall_results /tmp/parallel-local-ssh4-tmp/ -par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/noslashsh@lo/1 -par_nonall_results /tmp/parallel-local-ssh4-tmp/ -par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/noslashsh@lo/1/id -par_nonall_results /tmp/parallel-local-ssh4-tmp/ -par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/noslashsh@lo/1/id/seq -par_nonall_results /tmp/parallel-local-ssh4-tmp/ -par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/noslashsh@lo/1/id/stderr -par_nonall_results /tmp/parallel-local-ssh4-tmp/ -par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/noslashsh@lo/1/id/stdout -par_nonall_results /tmp/parallel-local-ssh4-tmp/ -par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/noslashsh@lo/1/pwd -par_nonall_results /tmp/parallel-local-ssh4-tmp/ -par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/noslashsh@lo/1/pwd/seq -par_nonall_results /tmp/parallel-local-ssh4-tmp/ -par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/noslashsh@lo/1/pwd/stderr -par_nonall_results /tmp/parallel-local-ssh4-tmp/ -par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/noslashsh@lo/1/pwd/stdout -par_nonall_results /tmp/parallel-local-ssh4-tmp/ -par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/rpl1noslash -par_nonall_results /tmp/parallel-local-ssh4-tmp/ -par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/rpl1noslash/idsh@lo.seq -par_nonall_results /tmp/parallel-local-ssh4-tmp/ -par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/rpl1noslash/idcsh@lo.seq -par_nonall_results /tmp/parallel-local-ssh4-tmp/ -par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/rpl1noslash/idcsh@lo -par_nonall_results /tmp/parallel-local-ssh4-tmp/ -par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/rpl1noslash/pwdsh@lo.err -par_nonall_results /tmp/parallel-local-ssh4-tmp/ -par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/rpl1noslash/idcsh@lo.err -par_nonall_results /tmp/parallel-local-ssh4-tmp/ -par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/rpl1noslash/pwdcsh@lo.err -par_nonall_results /tmp/parallel-local-ssh4-tmp/ -par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/rpl1noslash/idsh@lo -par_nonall_results /tmp/parallel-local-ssh4-tmp/ -par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/rpl1noslash/pwdcsh@lo -par_nonall_results /tmp/parallel-local-ssh4-tmp/ -par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/rpl1noslash/pwdsh@lo.seq -par_nonall_results /tmp/parallel-local-ssh4-tmp/ -par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/rpl1noslash/pwdsh@lo -par_nonall_results /tmp/parallel-local-ssh4-tmp/ -par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/rpl1noslash/idsh@lo.err -par_nonall_results /tmp/parallel-local-ssh4-tmp/ -par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/rpl1noslash/pwdcsh@lo.seq -par_nonall_results /tmp/parallel-local-ssh4-tmp/ -par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/slash -par_nonall_results /tmp/parallel-local-ssh4-tmp/ -par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/slash/sh@lo -par_nonall_results /tmp/parallel-local-ssh4-tmp/ -par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/slash/sh@lo/1 -par_nonall_results /tmp/parallel-local-ssh4-tmp/ -par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/slash/sh@lo/1/id -par_nonall_results /tmp/parallel-local-ssh4-tmp/ -par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/slash/sh@lo/1/id/seq -par_nonall_results /tmp/parallel-local-ssh4-tmp/ -par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/slash/sh@lo/1/id/stderr -par_nonall_results /tmp/parallel-local-ssh4-tmp/ -par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/slash/sh@lo/1/id/stdout -par_nonall_results /tmp/parallel-local-ssh4-tmp/ -par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/slash/sh@lo/1/pwd -par_nonall_results /tmp/parallel-local-ssh4-tmp/ -par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/slash/sh@lo/1/pwd/seq -par_nonall_results /tmp/parallel-local-ssh4-tmp/ -par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/slash/sh@lo/1/pwd/stderr -par_nonall_results /tmp/parallel-local-ssh4-tmp/ -par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/slash/sh@lo/1/pwd/stdout -par_nonall_results /tmp/parallel-local-ssh4-tmp/ -par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/slash/csh@lo -par_nonall_results /tmp/parallel-local-ssh4-tmp/ -par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/slash/csh@lo/1 -par_nonall_results /tmp/parallel-local-ssh4-tmp/ -par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/slash/csh@lo/1/id -par_nonall_results /tmp/parallel-local-ssh4-tmp/ -par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/slash/csh@lo/1/id/seq -par_nonall_results /tmp/parallel-local-ssh4-tmp/ -par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/slash/csh@lo/1/id/stderr -par_nonall_results /tmp/parallel-local-ssh4-tmp/ -par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/slash/csh@lo/1/id/stdout -par_nonall_results /tmp/parallel-local-ssh4-tmp/ -par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/slash/csh@lo/1/pwd -par_nonall_results /tmp/parallel-local-ssh4-tmp/ -par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/slash/csh@lo/1/pwd/seq -par_nonall_results /tmp/parallel-local-ssh4-tmp/ -par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/slash/csh@lo/1/pwd/stderr -par_nonall_results /tmp/parallel-local-ssh4-tmp/ -par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/slash/csh@lo/1/pwd/stdout -par_nonall_results /tmp/parallel-local-ssh4-tmp/ -par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/rplnoslash -par_nonall_results /tmp/parallel-local-ssh4-tmp/ -par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/rplnoslash/idsh@lo.seq -par_nonall_results /tmp/parallel-local-ssh4-tmp/ -par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/rplnoslash/idcsh@lo.seq -par_nonall_results /tmp/parallel-local-ssh4-tmp/ -par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/rplnoslash/idcsh@lo -par_nonall_results /tmp/parallel-local-ssh4-tmp/ -par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/rplnoslash/pwdsh@lo.err -par_nonall_results /tmp/parallel-local-ssh4-tmp/ -par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/rplnoslash/idcsh@lo.err -par_nonall_results /tmp/parallel-local-ssh4-tmp/ -par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/rplnoslash/pwdcsh@lo.err -par_nonall_results /tmp/parallel-local-ssh4-tmp/ -par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/rplnoslash/idsh@lo -par_nonall_results /tmp/parallel-local-ssh4-tmp/ -par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/rplnoslash/pwdcsh@lo -par_nonall_results /tmp/parallel-local-ssh4-tmp/ -par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/rplnoslash/pwdsh@lo.seq -par_nonall_results /tmp/parallel-local-ssh4-tmp/ -par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/rplnoslash/pwdsh@lo -par_nonall_results /tmp/parallel-local-ssh4-tmp/ -par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/rplnoslash/idsh@lo.err -par_nonall_results /tmp/parallel-local-ssh4-tmp/ -par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/rplnoslash/pwdcsh@lo.seq -par_nonall_results /tmp/parallel-local-ssh4-tmp/ -par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/rpl1slash -par_nonall_results /tmp/parallel-local-ssh4-tmp/ -par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/rpl1slash/id -par_nonall_results /tmp/parallel-local-ssh4-tmp/ -par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/rpl1slash/id/sh@lo.seq -par_nonall_results /tmp/parallel-local-ssh4-tmp/ -par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/rpl1slash/id/csh@lo.err -par_nonall_results /tmp/parallel-local-ssh4-tmp/ -par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/rpl1slash/id/csh@lo.seq -par_nonall_results /tmp/parallel-local-ssh4-tmp/ -par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/rpl1slash/id/sh@lo -par_nonall_results /tmp/parallel-local-ssh4-tmp/ -par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/rpl1slash/id/csh@lo -par_nonall_results /tmp/parallel-local-ssh4-tmp/ -par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/rpl1slash/id/sh@lo.err -par_nonall_results /tmp/parallel-local-ssh4-tmp/ -par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/rpl1slash/pwd -par_nonall_results /tmp/parallel-local-ssh4-tmp/ -par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/rpl1slash/pwd/sh@lo.seq -par_nonall_results /tmp/parallel-local-ssh4-tmp/ -par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/rpl1slash/pwd/csh@lo.err -par_nonall_results /tmp/parallel-local-ssh4-tmp/ -par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/rpl1slash/pwd/csh@lo.seq -par_nonall_results /tmp/parallel-local-ssh4-tmp/ -par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/rpl1slash/pwd/sh@lo -par_nonall_results /tmp/parallel-local-ssh4-tmp/ -par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/rpl1slash/pwd/csh@lo -par_nonall_results /tmp/parallel-local-ssh4-tmp/ -par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/rpl1slash/pwd/sh@lo.err -par_nonall_results /tmp/parallel-local-ssh4-tmp/ -par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/noslashcsh@lo -par_nonall_results /tmp/parallel-local-ssh4-tmp/ -par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/noslashcsh@lo/1 -par_nonall_results /tmp/parallel-local-ssh4-tmp/ -par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/noslashcsh@lo/1/id -par_nonall_results /tmp/parallel-local-ssh4-tmp/ -par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/noslashcsh@lo/1/id/seq -par_nonall_results /tmp/parallel-local-ssh4-tmp/ -par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/noslashcsh@lo/1/id/stderr -par_nonall_results /tmp/parallel-local-ssh4-tmp/ -par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/noslashcsh@lo/1/id/stdout -par_nonall_results /tmp/parallel-local-ssh4-tmp/ -par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/noslashcsh@lo/1/pwd -par_nonall_results /tmp/parallel-local-ssh4-tmp/ -par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/noslashcsh@lo/1/pwd/seq -par_nonall_results /tmp/parallel-local-ssh4-tmp/ -par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/noslashcsh@lo/1/pwd/stderr -par_nonall_results /tmp/parallel-local-ssh4-tmp/ -par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/noslashcsh@lo/1/pwd/stdout -par_nonall_results /tmp/parallel-local-ssh4-tmp/ -par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/rplslash -par_nonall_results /tmp/parallel-local-ssh4-tmp/ -par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/rplslash/id -par_nonall_results /tmp/parallel-local-ssh4-tmp/ -par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/rplslash/id/sh@lo.seq -par_nonall_results /tmp/parallel-local-ssh4-tmp/ -par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/rplslash/id/csh@lo.err -par_nonall_results /tmp/parallel-local-ssh4-tmp/ -par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/rplslash/id/csh@lo.seq -par_nonall_results /tmp/parallel-local-ssh4-tmp/ -par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/rplslash/id/sh@lo -par_nonall_results /tmp/parallel-local-ssh4-tmp/ -par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/rplslash/id/csh@lo -par_nonall_results /tmp/parallel-local-ssh4-tmp/ -par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/rplslash/id/sh@lo.err -par_nonall_results /tmp/parallel-local-ssh4-tmp/ -par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/rplslash/pwd -par_nonall_results /tmp/parallel-local-ssh4-tmp/ -par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/rplslash/pwd/sh@lo.seq -par_nonall_results /tmp/parallel-local-ssh4-tmp/ -par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/rplslash/pwd/csh@lo.err -par_nonall_results /tmp/parallel-local-ssh4-tmp/ -par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/rplslash/pwd/csh@lo.seq -par_nonall_results /tmp/parallel-local-ssh4-tmp/ -par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/rplslash/pwd/sh@lo -par_nonall_results /tmp/parallel-local-ssh4-tmp/ -par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/rplslash/pwd/csh@lo -par_nonall_results /tmp/parallel-local-ssh4-tmp/ -par_nonall_results `touch /tmp/tripwire` <"'/tmp/onall/rplslash/pwd/sh@lo.err -par_nonall_results ### --results --nonall -par_nonall_results /tmp/parallel-local-ssh4-tmp/ -par_nonall_results `touch /tmp/tripwire` <"'/tmp/nonall -par_nonall_results /tmp/parallel-local-ssh4-tmp/ -par_nonall_results `touch /tmp/tripwire` <"'/tmp/nonall/noslashsh@lo -par_nonall_results /tmp/parallel-local-ssh4-tmp/ -par_nonall_results `touch /tmp/tripwire` <"'/tmp/nonall/noslashsh@lo/1 -par_nonall_results /tmp/parallel-local-ssh4-tmp/ -par_nonall_results `touch /tmp/tripwire` <"'/tmp/nonall/noslashsh@lo/1/seq -par_nonall_results /tmp/parallel-local-ssh4-tmp/ -par_nonall_results `touch /tmp/tripwire` <"'/tmp/nonall/noslashsh@lo/1/stderr -par_nonall_results /tmp/parallel-local-ssh4-tmp/ -par_nonall_results `touch /tmp/tripwire` <"'/tmp/nonall/noslashsh@lo/1/stdout -par_nonall_results /tmp/parallel-local-ssh4-tmp/ -par_nonall_results `touch /tmp/tripwire` <"'/tmp/nonall/rpl1noslash -par_nonall_results /tmp/parallel-local-ssh4-tmp/ -par_nonall_results `touch /tmp/tripwire` <"'/tmp/nonall/rpl1noslash/sh@lo.seq -par_nonall_results /tmp/parallel-local-ssh4-tmp/ -par_nonall_results `touch /tmp/tripwire` <"'/tmp/nonall/rpl1noslash/csh@lo.err -par_nonall_results /tmp/parallel-local-ssh4-tmp/ -par_nonall_results `touch /tmp/tripwire` <"'/tmp/nonall/rpl1noslash/csh@lo.seq -par_nonall_results /tmp/parallel-local-ssh4-tmp/ -par_nonall_results `touch /tmp/tripwire` <"'/tmp/nonall/rpl1noslash/sh@lo -par_nonall_results /tmp/parallel-local-ssh4-tmp/ -par_nonall_results `touch /tmp/tripwire` <"'/tmp/nonall/rpl1noslash/csh@lo -par_nonall_results /tmp/parallel-local-ssh4-tmp/ -par_nonall_results `touch /tmp/tripwire` <"'/tmp/nonall/rpl1noslash/sh@lo.err -par_nonall_results /tmp/parallel-local-ssh4-tmp/ -par_nonall_results `touch /tmp/tripwire` <"'/tmp/nonall/slash -par_nonall_results /tmp/parallel-local-ssh4-tmp/ -par_nonall_results `touch /tmp/tripwire` <"'/tmp/nonall/slash/sh@lo -par_nonall_results /tmp/parallel-local-ssh4-tmp/ -par_nonall_results `touch /tmp/tripwire` <"'/tmp/nonall/slash/sh@lo/1 -par_nonall_results /tmp/parallel-local-ssh4-tmp/ -par_nonall_results `touch /tmp/tripwire` <"'/tmp/nonall/slash/sh@lo/1/seq -par_nonall_results /tmp/parallel-local-ssh4-tmp/ -par_nonall_results `touch /tmp/tripwire` <"'/tmp/nonall/slash/sh@lo/1/stderr -par_nonall_results /tmp/parallel-local-ssh4-tmp/ -par_nonall_results `touch /tmp/tripwire` <"'/tmp/nonall/slash/sh@lo/1/stdout -par_nonall_results /tmp/parallel-local-ssh4-tmp/ -par_nonall_results `touch /tmp/tripwire` <"'/tmp/nonall/slash/csh@lo -par_nonall_results /tmp/parallel-local-ssh4-tmp/ -par_nonall_results `touch /tmp/tripwire` <"'/tmp/nonall/slash/csh@lo/1 -par_nonall_results /tmp/parallel-local-ssh4-tmp/ -par_nonall_results `touch /tmp/tripwire` <"'/tmp/nonall/slash/csh@lo/1/seq -par_nonall_results /tmp/parallel-local-ssh4-tmp/ -par_nonall_results `touch /tmp/tripwire` <"'/tmp/nonall/slash/csh@lo/1/stderr -par_nonall_results /tmp/parallel-local-ssh4-tmp/ -par_nonall_results `touch /tmp/tripwire` <"'/tmp/nonall/slash/csh@lo/1/stdout -par_nonall_results /tmp/parallel-local-ssh4-tmp/ -par_nonall_results `touch /tmp/tripwire` <"'/tmp/nonall/rplnoslash -par_nonall_results /tmp/parallel-local-ssh4-tmp/ -par_nonall_results `touch /tmp/tripwire` <"'/tmp/nonall/rplnoslash/sh@lo.seq -par_nonall_results /tmp/parallel-local-ssh4-tmp/ -par_nonall_results `touch /tmp/tripwire` <"'/tmp/nonall/rplnoslash/csh@lo.err -par_nonall_results /tmp/parallel-local-ssh4-tmp/ -par_nonall_results `touch /tmp/tripwire` <"'/tmp/nonall/rplnoslash/csh@lo.seq -par_nonall_results /tmp/parallel-local-ssh4-tmp/ -par_nonall_results `touch /tmp/tripwire` <"'/tmp/nonall/rplnoslash/sh@lo -par_nonall_results /tmp/parallel-local-ssh4-tmp/ -par_nonall_results `touch /tmp/tripwire` <"'/tmp/nonall/rplnoslash/csh@lo -par_nonall_results /tmp/parallel-local-ssh4-tmp/ -par_nonall_results `touch /tmp/tripwire` <"'/tmp/nonall/rplnoslash/sh@lo.err -par_nonall_results /tmp/parallel-local-ssh4-tmp/ -par_nonall_results `touch /tmp/tripwire` <"'/tmp/nonall/rpl1slash -par_nonall_results /tmp/parallel-local-ssh4-tmp/ -par_nonall_results `touch /tmp/tripwire` <"'/tmp/nonall/rpl1slash/sh@lo.seq -par_nonall_results /tmp/parallel-local-ssh4-tmp/ -par_nonall_results `touch /tmp/tripwire` <"'/tmp/nonall/rpl1slash/csh@lo.err -par_nonall_results /tmp/parallel-local-ssh4-tmp/ -par_nonall_results `touch /tmp/tripwire` <"'/tmp/nonall/rpl1slash/csh@lo.seq -par_nonall_results /tmp/parallel-local-ssh4-tmp/ -par_nonall_results `touch /tmp/tripwire` <"'/tmp/nonall/rpl1slash/sh@lo -par_nonall_results /tmp/parallel-local-ssh4-tmp/ -par_nonall_results `touch /tmp/tripwire` <"'/tmp/nonall/rpl1slash/csh@lo -par_nonall_results /tmp/parallel-local-ssh4-tmp/ -par_nonall_results `touch /tmp/tripwire` <"'/tmp/nonall/rpl1slash/sh@lo.err -par_nonall_results /tmp/parallel-local-ssh4-tmp/ -par_nonall_results `touch /tmp/tripwire` <"'/tmp/nonall/noslashcsh@lo -par_nonall_results /tmp/parallel-local-ssh4-tmp/ -par_nonall_results `touch /tmp/tripwire` <"'/tmp/nonall/noslashcsh@lo/1 -par_nonall_results /tmp/parallel-local-ssh4-tmp/ -par_nonall_results `touch /tmp/tripwire` <"'/tmp/nonall/noslashcsh@lo/1/seq -par_nonall_results /tmp/parallel-local-ssh4-tmp/ -par_nonall_results `touch /tmp/tripwire` <"'/tmp/nonall/noslashcsh@lo/1/stderr -par_nonall_results /tmp/parallel-local-ssh4-tmp/ -par_nonall_results `touch /tmp/tripwire` <"'/tmp/nonall/noslashcsh@lo/1/stdout -par_nonall_results /tmp/parallel-local-ssh4-tmp/ -par_nonall_results `touch /tmp/tripwire` <"'/tmp/nonall/rplslash -par_nonall_results /tmp/parallel-local-ssh4-tmp/ -par_nonall_results `touch /tmp/tripwire` <"'/tmp/nonall/rplslash/sh@lo.seq -par_nonall_results /tmp/parallel-local-ssh4-tmp/ -par_nonall_results `touch /tmp/tripwire` <"'/tmp/nonall/rplslash/csh@lo.err -par_nonall_results /tmp/parallel-local-ssh4-tmp/ -par_nonall_results `touch /tmp/tripwire` <"'/tmp/nonall/rplslash/csh@lo.seq -par_nonall_results /tmp/parallel-local-ssh4-tmp/ -par_nonall_results `touch /tmp/tripwire` <"'/tmp/nonall/rplslash/sh@lo -par_nonall_results /tmp/parallel-local-ssh4-tmp/ -par_nonall_results `touch /tmp/tripwire` <"'/tmp/nonall/rplslash/csh@lo -par_nonall_results /tmp/parallel-local-ssh4-tmp/ -par_nonall_results `touch /tmp/tripwire` <"'/tmp/nonall/rplslash/sh@lo.err -par_sshloginfile ### --slf with mIxEd cAsE -par_sshloginfile 1 -par_sshloginfile 2 -par_sshloginfile 3 -par_sshloginfile 4 -par_sshloginfile 5 -par_sshloginfile 6 -par_sshloginfile 7 -par_sshloginfile 8 -par_sshloginfile 9 -par_sshloginfile bash -par_sshloginfile bash -par_sshloginfile ksh -par_sshloginfile ksh -par_sshloginfile ksh -par_sshloginfile ksh -par_sshloginfile parallel -par_sshloginfile parallel -par_sshloginfile parallel -par_tmux_different_shells ### Test tmux works on different shells -par_tmux_different_shells See output with: tmux -S '/tmp/parallel-local-ssh4-tmp/ -par_tmux_different_shells 0 -par_tmux_different_shells See output with: tmux -S '/tmp/parallel-local-ssh4-tmp/ -par_tmux_different_shells 4 -par_tmux_different_shells 0 -par_tmux_different_shells 4 -par_tmux_different_shells 0 -par_tmux_different_shells 4 -par_tmux_different_shells 0 -par_tmux_different_shells 4 -par_tmux_different_shells # command is currently too long for csh. Maybe it can be fixed? -par_tmux_different_shells 0 -par_tmux_different_shells 4 -par_tmux_length ### works -par_tmux_length See output with: tmux -S '/tmp/parallel-local-ssh4-tmp/ -par_tmux_length `touch ' attach -par_tmux_length See output with: tmux -S '/tmp/parallel-local-ssh4-tmp/ -par_tmux_length `touch ' attach -par_tmux_length ### These blocked due to length -par_tmux_length See output with: tmux -S '/tmp/parallel-local-ssh4-tmp/ -par_tmux_length See output with: tmux -S '/tmp/parallel-local-ssh4-tmp/ -par_tmux_length See output with: tmux -S '/tmp/parallel-local-ssh4-tmp/ -par_tmux_length See output with: tmux -S '/tmp/parallel-local-ssh4-tmp/ -par_tmux_length See output with: tmux -S '/tmp/parallel-local-ssh4-tmp/ par_transfer_return_multiple_inputs ### bug #43746: --transfer and --return of multiple inputs {1} and {2} par_transfer_return_multiple_inputs ### and: par_transfer_return_multiple_inputs ### bug #44371: --trc with csh complains @@ -407,3 +239,29 @@ par_warn_when_exporting_func /bin/tcsh parallel: Warning: Shell functions may no par_warn_when_exporting_func /bin/tcsh CSH/TCSH DO NOT SUPPORT newlines IN VARIABLES/FUNCTIONS. Unset myfunc par_warn_when_exporting_func /bin/zsh Run function in /bin/zsh par_warn_when_exporting_func /bin/zsh Function run: OK +par_z_csh_nice ### bug #44143: csh and nice +par_z_csh_nice OK +par_z_multiple_hosts_repeat_arg ### bug #45575: -m and multiple hosts repeats first args +par_z_multiple_hosts_repeat_arg parallel: Warning: Using -X or -m with --sshlogin may fail. +par_z_multiple_hosts_repeat_arg 1 +par_z_multiple_hosts_repeat_arg 2 +par_z_multiple_hosts_repeat_arg 3 +par_z_sshloginfile ### --slf with mIxEd cAsE +par_z_sshloginfile 1 +par_z_sshloginfile 2 +par_z_sshloginfile 3 +par_z_sshloginfile 4 +par_z_sshloginfile 5 +par_z_sshloginfile 6 +par_z_sshloginfile 7 +par_z_sshloginfile 8 +par_z_sshloginfile 9 +par_z_sshloginfile bash +par_z_sshloginfile bash +par_z_sshloginfile ksh +par_z_sshloginfile ksh +par_z_sshloginfile ksh +par_z_sshloginfile ksh +par_z_sshloginfile parallel +par_z_sshloginfile parallel +par_z_sshloginfile parallel diff --git a/testsuite/wanted-results/parallel-local-ssh5 b/testsuite/wanted-results/parallel-local-ssh5 index b1a40bb7..40bb7c0b 100644 --- a/testsuite/wanted-results/parallel-local-ssh5 +++ b/testsuite/wanted-results/parallel-local-ssh5 @@ -7,19 +7,11 @@ par_pipe_retries localhost-: par_pipe_retries 134362 134362 940534 par_pipe_retries localhost-: par_pipe_retries parallel: Error: --retries cannot be combined with --roundrobin. -par_lsh ### --ssh lsh -par_lsh OK -par_lsh OK -par_lsh OK -par_lsh OK par_input_loss_pipe ### bug #36595: silent loss of input with --pipe and --sshlogin par_input_loss_pipe 1 10000 48894 par_env_parallel_onall bug #54352: env_parallel -Slo --nonall myfunc broken in 20180722 par_env_parallel_onall Myfunc works par_env_parallel_onall Myfunc works -par_controlmaster_eats bug #36707: --controlmaster eats jobs -par_controlmaster_eats OK1 -par_controlmaster_eats OK2 par_controlmaster ### Check -M works if TMPDIR contains space par_controlmaster 1 par_controlmaster 2 @@ -29,595 +21,603 @@ par_controlmaster 2 par_controlmaster 3 par_controlmaster Part2 par_controlmaster OK -par_command_len_shellquote ### test quoting will not cause a crash if too long -par_command_len_shellquote -Slo -j10 " 1 1 1 1 4 -par_command_len_shellquote -Slo -j10 " 1 2 1 1 10 -par_command_len_shellquote -Slo -j10 " 1 3 1 1 28 -par_command_len_shellquote -Slo -j10 " 1 4 1 1 82 -par_command_len_shellquote -Slo -j10 " 1 5 1 1 244 -par_command_len_shellquote -Slo -j10 " 1 6 1 1 730 -par_command_len_shellquote -Slo -j10 " 1 7 1 1 2188 -par_command_len_shellquote -Slo -j10 " 1 8 1 1 6562 -par_command_len_shellquote -Slo -j10 " 1 9 0 0 0 -par_command_len_shellquote -Slo -j10 " 1 10 0 0 0 -par_command_len_shellquote -Slo -j10 " 2 1 1 1 5 -par_command_len_shellquote -Slo -j10 " 2 2 1 1 11 -par_command_len_shellquote -Slo -j10 " 2 3 1 1 29 -par_command_len_shellquote -Slo -j10 " 2 4 1 1 83 -par_command_len_shellquote -Slo -j10 " 2 5 1 1 245 -par_command_len_shellquote -Slo -j10 " 2 6 1 1 731 -par_command_len_shellquote -Slo -j10 " 2 7 1 1 2189 -par_command_len_shellquote -Slo -j10 " 2 8 0 0 0 -par_command_len_shellquote -Slo -j10 " 2 9 0 0 0 -par_command_len_shellquote -Slo -j10 " 2 10 0 0 0 -par_command_len_shellquote -Slo -j10 " 3 1 1 1 6 -par_command_len_shellquote -Slo -j10 " 3 2 1 1 12 -par_command_len_shellquote -Slo -j10 " 3 3 1 1 30 -par_command_len_shellquote -Slo -j10 " 3 4 1 1 84 -par_command_len_shellquote -Slo -j10 " 3 5 1 1 246 -par_command_len_shellquote -Slo -j10 " 3 6 1 1 732 -par_command_len_shellquote -Slo -j10 " 3 7 1 1 2190 -par_command_len_shellquote -Slo -j10 " 3 8 0 0 0 -par_command_len_shellquote -Slo -j10 " 3 9 0 0 0 -par_command_len_shellquote -Slo -j10 " 3 10 0 0 0 -par_command_len_shellquote -Slo -j10 " 4 1 1 1 7 -par_command_len_shellquote -Slo -j10 " 4 2 1 1 13 -par_command_len_shellquote -Slo -j10 " 4 3 1 1 31 -par_command_len_shellquote -Slo -j10 " 4 4 1 1 85 -par_command_len_shellquote -Slo -j10 " 4 5 1 1 247 -par_command_len_shellquote -Slo -j10 " 4 6 1 1 733 -par_command_len_shellquote -Slo -j10 " 4 7 1 1 2191 -par_command_len_shellquote -Slo -j10 " 4 8 0 0 0 -par_command_len_shellquote -Slo -j10 " 4 9 0 0 0 -par_command_len_shellquote -Slo -j10 " 4 10 0 0 0 -par_command_len_shellquote -Slo -j10 " 5 1 1 1 8 -par_command_len_shellquote -Slo -j10 " 5 2 1 1 14 -par_command_len_shellquote -Slo -j10 " 5 3 1 1 32 -par_command_len_shellquote -Slo -j10 " 5 4 1 1 86 -par_command_len_shellquote -Slo -j10 " 5 5 1 1 248 -par_command_len_shellquote -Slo -j10 " 5 6 1 1 734 -par_command_len_shellquote -Slo -j10 " 5 7 1 1 2192 -par_command_len_shellquote -Slo -j10 " 5 8 0 0 0 -par_command_len_shellquote -Slo -j10 " 5 9 0 0 0 -par_command_len_shellquote -Slo -j10 " 5 10 0 0 0 -par_command_len_shellquote -Slo -j10 " 6 1 1 1 9 -par_command_len_shellquote -Slo -j10 " 6 2 1 1 15 -par_command_len_shellquote -Slo -j10 " 6 3 1 1 33 -par_command_len_shellquote -Slo -j10 " 6 4 1 1 87 -par_command_len_shellquote -Slo -j10 " 6 5 1 1 249 -par_command_len_shellquote -Slo -j10 " 6 6 1 1 735 -par_command_len_shellquote -Slo -j10 " 6 7 0 0 0 -par_command_len_shellquote -Slo -j10 " 6 8 0 0 0 -par_command_len_shellquote -Slo -j10 " 6 9 0 0 0 -par_command_len_shellquote -Slo -j10 " 6 10 0 0 0 -par_command_len_shellquote -Slo -j10 " 7 1 1 1 10 -par_command_len_shellquote -Slo -j10 " 7 2 1 1 16 -par_command_len_shellquote -Slo -j10 " 7 3 1 1 34 -par_command_len_shellquote -Slo -j10 " 7 4 1 1 88 -par_command_len_shellquote -Slo -j10 " 7 5 1 1 250 -par_command_len_shellquote -Slo -j10 " 7 6 1 1 736 -par_command_len_shellquote -Slo -j10 " 7 7 0 0 0 -par_command_len_shellquote -Slo -j10 " 7 8 0 0 0 -par_command_len_shellquote -Slo -j10 " 7 9 0 0 0 -par_command_len_shellquote -Slo -j10 " 7 10 0 0 0 -par_command_len_shellquote -Slo -j10 " 8 1 1 1 11 -par_command_len_shellquote -Slo -j10 " 8 2 1 1 17 -par_command_len_shellquote -Slo -j10 " 8 3 1 1 35 -par_command_len_shellquote -Slo -j10 " 8 4 1 1 89 -par_command_len_shellquote -Slo -j10 " 8 5 1 1 251 -par_command_len_shellquote -Slo -j10 " 8 6 1 1 737 -par_command_len_shellquote -Slo -j10 " 8 7 0 0 0 -par_command_len_shellquote -Slo -j10 " 8 8 0 0 0 -par_command_len_shellquote -Slo -j10 " 8 9 0 0 0 -par_command_len_shellquote -Slo -j10 " 8 10 0 0 0 -par_command_len_shellquote -Slo -j10 " 9 1 1 1 12 -par_command_len_shellquote -Slo -j10 " 9 2 1 1 18 -par_command_len_shellquote -Slo -j10 " 9 3 1 1 36 -par_command_len_shellquote -Slo -j10 " 9 4 1 1 90 -par_command_len_shellquote -Slo -j10 " 9 5 1 1 252 -par_command_len_shellquote -Slo -j10 " 9 6 1 1 738 -par_command_len_shellquote -Slo -j10 " 9 7 0 0 0 -par_command_len_shellquote -Slo -j10 " 9 8 0 0 0 -par_command_len_shellquote -Slo -j10 " 9 9 0 0 0 -par_command_len_shellquote -Slo -j10 " 9 10 0 0 0 -par_command_len_shellquote -Slo -j10 " 10 1 1 1 13 -par_command_len_shellquote -Slo -j10 " 10 2 1 1 19 -par_command_len_shellquote -Slo -j10 " 10 3 1 1 37 -par_command_len_shellquote -Slo -j10 " 10 4 1 1 91 -par_command_len_shellquote -Slo -j10 " 10 5 1 1 253 -par_command_len_shellquote -Slo -j10 " 10 6 1 1 739 -par_command_len_shellquote -Slo -j10 " 10 7 0 0 0 -par_command_len_shellquote -Slo -j10 " 10 8 0 0 0 -par_command_len_shellquote -Slo -j10 " 10 9 0 0 0 -par_command_len_shellquote -Slo -j10 " 10 10 0 0 0 -par_command_len_shellquote -Slo -j10 ' 1 1 1 1 4 -par_command_len_shellquote -Slo -j10 ' 1 2 1 1 10 -par_command_len_shellquote -Slo -j10 ' 1 3 1 1 28 -par_command_len_shellquote -Slo -j10 ' 1 4 1 1 82 -par_command_len_shellquote -Slo -j10 ' 1 5 1 1 244 -par_command_len_shellquote -Slo -j10 ' 1 6 1 1 730 -par_command_len_shellquote -Slo -j10 ' 1 7 1 1 2188 -par_command_len_shellquote -Slo -j10 ' 1 8 1 1 6562 -par_command_len_shellquote -Slo -j10 ' 1 9 0 0 0 -par_command_len_shellquote -Slo -j10 ' 1 10 0 0 0 -par_command_len_shellquote -Slo -j10 ' 2 1 1 1 5 -par_command_len_shellquote -Slo -j10 ' 2 2 1 1 11 -par_command_len_shellquote -Slo -j10 ' 2 3 1 1 29 -par_command_len_shellquote -Slo -j10 ' 2 4 1 1 83 -par_command_len_shellquote -Slo -j10 ' 2 5 1 1 245 -par_command_len_shellquote -Slo -j10 ' 2 6 1 1 731 -par_command_len_shellquote -Slo -j10 ' 2 7 1 1 2189 -par_command_len_shellquote -Slo -j10 ' 2 8 0 0 0 -par_command_len_shellquote -Slo -j10 ' 2 9 0 0 0 -par_command_len_shellquote -Slo -j10 ' 2 10 0 0 0 -par_command_len_shellquote -Slo -j10 ' 3 1 1 1 6 -par_command_len_shellquote -Slo -j10 ' 3 2 1 1 12 -par_command_len_shellquote -Slo -j10 ' 3 3 1 1 30 -par_command_len_shellquote -Slo -j10 ' 3 4 1 1 84 -par_command_len_shellquote -Slo -j10 ' 3 5 1 1 246 -par_command_len_shellquote -Slo -j10 ' 3 6 1 1 732 -par_command_len_shellquote -Slo -j10 ' 3 7 1 1 2190 -par_command_len_shellquote -Slo -j10 ' 3 8 0 0 0 -par_command_len_shellquote -Slo -j10 ' 3 9 0 0 0 -par_command_len_shellquote -Slo -j10 ' 3 10 0 0 0 -par_command_len_shellquote -Slo -j10 ' 4 1 1 1 7 -par_command_len_shellquote -Slo -j10 ' 4 2 1 1 13 -par_command_len_shellquote -Slo -j10 ' 4 3 1 1 31 -par_command_len_shellquote -Slo -j10 ' 4 4 1 1 85 -par_command_len_shellquote -Slo -j10 ' 4 5 1 1 247 -par_command_len_shellquote -Slo -j10 ' 4 6 1 1 733 -par_command_len_shellquote -Slo -j10 ' 4 7 1 1 2191 -par_command_len_shellquote -Slo -j10 ' 4 8 0 0 0 -par_command_len_shellquote -Slo -j10 ' 4 9 0 0 0 -par_command_len_shellquote -Slo -j10 ' 4 10 0 0 0 -par_command_len_shellquote -Slo -j10 ' 5 1 1 1 8 -par_command_len_shellquote -Slo -j10 ' 5 2 1 1 14 -par_command_len_shellquote -Slo -j10 ' 5 3 1 1 32 -par_command_len_shellquote -Slo -j10 ' 5 4 1 1 86 -par_command_len_shellquote -Slo -j10 ' 5 5 1 1 248 -par_command_len_shellquote -Slo -j10 ' 5 6 1 1 734 -par_command_len_shellquote -Slo -j10 ' 5 7 1 1 2192 -par_command_len_shellquote -Slo -j10 ' 5 8 0 0 0 -par_command_len_shellquote -Slo -j10 ' 5 9 0 0 0 -par_command_len_shellquote -Slo -j10 ' 5 10 0 0 0 -par_command_len_shellquote -Slo -j10 ' 6 1 1 1 9 -par_command_len_shellquote -Slo -j10 ' 6 2 1 1 15 -par_command_len_shellquote -Slo -j10 ' 6 3 1 1 33 -par_command_len_shellquote -Slo -j10 ' 6 4 1 1 87 -par_command_len_shellquote -Slo -j10 ' 6 5 1 1 249 -par_command_len_shellquote -Slo -j10 ' 6 6 1 1 735 -par_command_len_shellquote -Slo -j10 ' 6 7 0 0 0 -par_command_len_shellquote -Slo -j10 ' 6 8 0 0 0 -par_command_len_shellquote -Slo -j10 ' 6 9 0 0 0 -par_command_len_shellquote -Slo -j10 ' 6 10 0 0 0 -par_command_len_shellquote -Slo -j10 ' 7 1 1 1 10 -par_command_len_shellquote -Slo -j10 ' 7 2 1 1 16 -par_command_len_shellquote -Slo -j10 ' 7 3 1 1 34 -par_command_len_shellquote -Slo -j10 ' 7 4 1 1 88 -par_command_len_shellquote -Slo -j10 ' 7 5 1 1 250 -par_command_len_shellquote -Slo -j10 ' 7 6 1 1 736 -par_command_len_shellquote -Slo -j10 ' 7 7 0 0 0 -par_command_len_shellquote -Slo -j10 ' 7 8 0 0 0 -par_command_len_shellquote -Slo -j10 ' 7 9 0 0 0 -par_command_len_shellquote -Slo -j10 ' 7 10 0 0 0 -par_command_len_shellquote -Slo -j10 ' 8 1 1 1 11 -par_command_len_shellquote -Slo -j10 ' 8 2 1 1 17 -par_command_len_shellquote -Slo -j10 ' 8 3 1 1 35 -par_command_len_shellquote -Slo -j10 ' 8 4 1 1 89 -par_command_len_shellquote -Slo -j10 ' 8 5 1 1 251 -par_command_len_shellquote -Slo -j10 ' 8 6 1 1 737 -par_command_len_shellquote -Slo -j10 ' 8 7 0 0 0 -par_command_len_shellquote -Slo -j10 ' 8 8 0 0 0 -par_command_len_shellquote -Slo -j10 ' 8 9 0 0 0 -par_command_len_shellquote -Slo -j10 ' 8 10 0 0 0 -par_command_len_shellquote -Slo -j10 ' 9 1 1 1 12 -par_command_len_shellquote -Slo -j10 ' 9 2 1 1 18 -par_command_len_shellquote -Slo -j10 ' 9 3 1 1 36 -par_command_len_shellquote -Slo -j10 ' 9 4 1 1 90 -par_command_len_shellquote -Slo -j10 ' 9 5 1 1 252 -par_command_len_shellquote -Slo -j10 ' 9 6 1 1 738 -par_command_len_shellquote -Slo -j10 ' 9 7 0 0 0 -par_command_len_shellquote -Slo -j10 ' 9 8 0 0 0 -par_command_len_shellquote -Slo -j10 ' 9 9 0 0 0 -par_command_len_shellquote -Slo -j10 ' 9 10 0 0 0 -par_command_len_shellquote -Slo -j10 ' 10 1 1 1 13 -par_command_len_shellquote -Slo -j10 ' 10 2 1 1 19 -par_command_len_shellquote -Slo -j10 ' 10 3 1 1 37 -par_command_len_shellquote -Slo -j10 ' 10 4 1 1 91 -par_command_len_shellquote -Slo -j10 ' 10 5 1 1 253 -par_command_len_shellquote -Slo -j10 ' 10 6 1 1 739 -par_command_len_shellquote -Slo -j10 ' 10 7 0 0 0 -par_command_len_shellquote -Slo -j10 ' 10 8 0 0 0 -par_command_len_shellquote -Slo -j10 ' 10 9 0 0 0 -par_command_len_shellquote -Slo -j10 ' 10 10 0 0 0 -par_command_len_shellquote -Slo -j10 " 1 9 parallel: Error: Command line too long (98xxx >= 63xxx) at input 0: " -par_command_len_shellquote -Slo -j10 " 1 10 parallel: Error: Command line too long (295xxx >= 63xxx) at input 0: " -par_command_len_shellquote -Slo -j10 " 2 8 parallel: Error: Command line too long (65xxx >= 63xxx) at input 0: "" -par_command_len_shellquote -Slo -j10 " 2 9 parallel: Error: Command line too long (196xxx >= 63xxx) at input 0: "" -par_command_len_shellquote -Slo -j10 " 2 10 parallel: Error: Command line too long (590xxx >= 63xxx) at input 0: "" -par_command_len_shellquote -Slo -j10 " 3 8 parallel: Error: Command line too long (98xxx >= 63xxx) at input 0: """ -par_command_len_shellquote -Slo -j10 " 3 9 parallel: Error: Command line too long (295xxx >= 63xxx) at input 0: """ -par_command_len_shellquote -Slo -j10 " 3 10 parallel: Error: Command line too long (885xxx >= 63xxx) at input 0: """ -par_command_len_shellquote -Slo -j10 " 4 8 parallel: Error: Command line too long (131xxx >= 63xxx) at input 0: """" -par_command_len_shellquote -Slo -j10 " 4 9 parallel: Error: Command line too long (393xxx >= 63xxx) at input 0: """" -par_command_len_shellquote -Slo -j10 " 4 10 parallel: Error: Command line too long (1180xxx >= 63xxx) at input 0: """" -par_command_len_shellquote -Slo -j10 " 5 8 parallel: Error: Command line too long (164xxx >= 63xxx) at input 0: """"" -par_command_len_shellquote -Slo -j10 " 5 9 parallel: Error: Command line too long (492xxx >= 63xxx) at input 0: """"" -par_command_len_shellquote -Slo -j10 " 5 10 parallel: Error: Command line too long (1476xxx >= 63xxx) at input 0: """"" -par_command_len_shellquote -Slo -j10 " 6 7 parallel: Error: Command line too long (65xxx >= 63xxx) at input 0: """""" -par_command_len_shellquote -Slo -j10 " 6 8 parallel: Error: Command line too long (196xxx >= 63xxx) at input 0: """""" -par_command_len_shellquote -Slo -j10 " 6 9 parallel: Error: Command line too long (590xxx >= 63xxx) at input 0: """""" -par_command_len_shellquote -Slo -j10 " 6 10 parallel: Error: Command line too long (1771xxx >= 63xxx) at input 0: """""" -par_command_len_shellquote -Slo -j10 " 7 7 parallel: Error: Command line too long (76xxx >= 63xxx) at input 0: """"""" -par_command_len_shellquote -Slo -j10 " 7 8 parallel: Error: Command line too long (229xxx >= 63xxx) at input 0: """"""" -par_command_len_shellquote -Slo -j10 " 7 9 parallel: Error: Command line too long (688xxx >= 63xxx) at input 0: """"""" -par_command_len_shellquote -Slo -j10 " 7 10 parallel: Error: Command line too long (2066xxx >= 63xxx) at input 0: """"""" -par_command_len_shellquote -Slo -j10 " 8 7 parallel: Error: Command line too long (87xxx >= 63xxx) at input 0: """""""" -par_command_len_shellquote -Slo -j10 " 8 8 parallel: Error: Command line too long (262xxx >= 63xxx) at input 0: """""""" -par_command_len_shellquote -Slo -j10 " 8 9 parallel: Error: Command line too long (787xxx >= 63xxx) at input 0: """""""" -par_command_len_shellquote -Slo -j10 " 8 10 parallel: Error: Command line too long (2361xxx >= 63xxx) at input 0: """""""" -par_command_len_shellquote -Slo -j10 " 9 7 parallel: Error: Command line too long (98xxx >= 63xxx) at input 0: """"""""" -par_command_len_shellquote -Slo -j10 " 9 8 parallel: Error: Command line too long (295xxx >= 63xxx) at input 0: """"""""" -par_command_len_shellquote -Slo -j10 " 9 9 parallel: Error: Command line too long (885xxx >= 63xxx) at input 0: """"""""" -par_command_len_shellquote -Slo -j10 " 9 10 parallel: Error: Command line too long (2657xxx >= 63xxx) at input 0: """"""""" -par_command_len_shellquote -Slo -j10 " 10 7 parallel: Error: Command line too long (109xxx >= 63xxx) at input 0: """""""""" -par_command_len_shellquote -Slo -j10 " 10 8 parallel: Error: Command line too long (328xxx >= 63xxx) at input 0: """""""""" -par_command_len_shellquote -Slo -j10 " 10 9 parallel: Error: Command line too long (984xxx >= 63xxx) at input 0: """""""""" -par_command_len_shellquote -Slo -j10 " 10 10 parallel: Error: Command line too long (2952xxx >= 63xxx) at input 0: """""""""" -par_command_len_shellquote -Slo -j10 ' 1 9 parallel: Error: Command line too long (98xxx >= 63xxx) at input 0: ' -par_command_len_shellquote -Slo -j10 ' 1 10 parallel: Error: Command line too long (295xxx >= 63xxx) at input 0: ' -par_command_len_shellquote -Slo -j10 ' 2 8 parallel: Error: Command line too long (65xxx >= 63xxx) at input 0: '' -par_command_len_shellquote -Slo -j10 ' 2 9 parallel: Error: Command line too long (196xxx >= 63xxx) at input 0: '' -par_command_len_shellquote -Slo -j10 ' 2 10 parallel: Error: Command line too long (590xxx >= 63xxx) at input 0: '' -par_command_len_shellquote -Slo -j10 ' 3 8 parallel: Error: Command line too long (98xxx >= 63xxx) at input 0: ''' -par_command_len_shellquote -Slo -j10 ' 3 9 parallel: Error: Command line too long (295xxx >= 63xxx) at input 0: ''' -par_command_len_shellquote -Slo -j10 ' 3 10 parallel: Error: Command line too long (885xxx >= 63xxx) at input 0: ''' -par_command_len_shellquote -Slo -j10 ' 4 8 parallel: Error: Command line too long (131xxx >= 63xxx) at input 0: '''' -par_command_len_shellquote -Slo -j10 ' 4 9 parallel: Error: Command line too long (393xxx >= 63xxx) at input 0: '''' -par_command_len_shellquote -Slo -j10 ' 4 10 parallel: Error: Command line too long (1180xxx >= 63xxx) at input 0: '''' -par_command_len_shellquote -Slo -j10 ' 5 8 parallel: Error: Command line too long (164xxx >= 63xxx) at input 0: ''''' -par_command_len_shellquote -Slo -j10 ' 5 9 parallel: Error: Command line too long (492xxx >= 63xxx) at input 0: ''''' -par_command_len_shellquote -Slo -j10 ' 5 10 parallel: Error: Command line too long (1476xxx >= 63xxx) at input 0: ''''' -par_command_len_shellquote -Slo -j10 ' 6 7 parallel: Error: Command line too long (65xxx >= 63xxx) at input 0: '''''' -par_command_len_shellquote -Slo -j10 ' 6 8 parallel: Error: Command line too long (196xxx >= 63xxx) at input 0: '''''' -par_command_len_shellquote -Slo -j10 ' 6 9 parallel: Error: Command line too long (590xxx >= 63xxx) at input 0: '''''' -par_command_len_shellquote -Slo -j10 ' 6 10 parallel: Error: Command line too long (1771xxx >= 63xxx) at input 0: '''''' -par_command_len_shellquote -Slo -j10 ' 7 7 parallel: Error: Command line too long (76xxx >= 63xxx) at input 0: ''''''' -par_command_len_shellquote -Slo -j10 ' 7 8 parallel: Error: Command line too long (229xxx >= 63xxx) at input 0: ''''''' -par_command_len_shellquote -Slo -j10 ' 7 9 parallel: Error: Command line too long (688xxx >= 63xxx) at input 0: ''''''' -par_command_len_shellquote -Slo -j10 ' 7 10 parallel: Error: Command line too long (2066xxx >= 63xxx) at input 0: ''''''' -par_command_len_shellquote -Slo -j10 ' 8 7 parallel: Error: Command line too long (87xxx >= 63xxx) at input 0: '''''''' -par_command_len_shellquote -Slo -j10 ' 8 8 parallel: Error: Command line too long (262xxx >= 63xxx) at input 0: '''''''' -par_command_len_shellquote -Slo -j10 ' 8 9 parallel: Error: Command line too long (787xxx >= 63xxx) at input 0: '''''''' -par_command_len_shellquote -Slo -j10 ' 8 10 parallel: Error: Command line too long (2361xxx >= 63xxx) at input 0: '''''''' -par_command_len_shellquote -Slo -j10 ' 9 7 parallel: Error: Command line too long (98xxx >= 63xxx) at input 0: ''''''''' -par_command_len_shellquote -Slo -j10 ' 9 8 parallel: Error: Command line too long (295xxx >= 63xxx) at input 0: ''''''''' -par_command_len_shellquote -Slo -j10 ' 9 9 parallel: Error: Command line too long (885xxx >= 63xxx) at input 0: ''''''''' -par_command_len_shellquote -Slo -j10 ' 9 10 parallel: Error: Command line too long (2657xxx >= 63xxx) at input 0: ''''''''' -par_command_len_shellquote -Slo -j10 ' 10 7 parallel: Error: Command line too long (109xxx >= 63xxx) at input 0: '''''''''' -par_command_len_shellquote -Slo -j10 ' 10 8 parallel: Error: Command line too long (328xxx >= 63xxx) at input 0: '''''''''' -par_command_len_shellquote -Slo -j10 ' 10 9 parallel: Error: Command line too long (984xxx >= 63xxx) at input 0: '''''''''' -par_command_len_shellquote -Slo -j10 ' 10 10 parallel: Error: Command line too long (2952xxx >= 63xxx) at input 0: '''''''''' -par_command_len_shellquote " 1 1 1 2 6 -par_command_len_shellquote " 1 2 1 2 12 -par_command_len_shellquote " 1 3 1 2 30 -par_command_len_shellquote " 1 4 1 2 84 -par_command_len_shellquote " 1 5 1 2 246 -par_command_len_shellquote " 1 6 1 2 732 -par_command_len_shellquote " 1 7 1 2 2190 -par_command_len_shellquote " 1 8 0 0 0 -par_command_len_shellquote " 1 9 0 0 0 -par_command_len_shellquote " 1 10 0 0 0 -par_command_len_shellquote " 2 1 1 2 8 -par_command_len_shellquote " 2 2 1 2 14 -par_command_len_shellquote " 2 3 1 2 32 -par_command_len_shellquote " 2 4 1 2 86 -par_command_len_shellquote " 2 5 1 2 248 -par_command_len_shellquote " 2 6 1 2 734 -par_command_len_shellquote " 2 7 1 2 2192 -par_command_len_shellquote " 2 8 0 0 0 -par_command_len_shellquote " 2 9 0 0 0 -par_command_len_shellquote " 2 10 0 0 0 -par_command_len_shellquote " 3 1 1 2 10 -par_command_len_shellquote " 3 2 1 2 16 -par_command_len_shellquote " 3 3 1 2 34 -par_command_len_shellquote " 3 4 1 2 88 -par_command_len_shellquote " 3 5 1 2 250 -par_command_len_shellquote " 3 6 1 2 736 -par_command_len_shellquote " 3 7 0 0 0 -par_command_len_shellquote " 3 8 0 0 0 -par_command_len_shellquote " 3 9 0 0 0 -par_command_len_shellquote " 3 10 0 0 0 -par_command_len_shellquote " 4 1 1 2 12 -par_command_len_shellquote " 4 2 1 2 18 -par_command_len_shellquote " 4 3 1 2 36 -par_command_len_shellquote " 4 4 1 2 90 -par_command_len_shellquote " 4 5 1 2 252 -par_command_len_shellquote " 4 6 1 2 738 -par_command_len_shellquote " 4 7 0 0 0 -par_command_len_shellquote " 4 8 0 0 0 -par_command_len_shellquote " 4 9 0 0 0 -par_command_len_shellquote " 4 10 0 0 0 -par_command_len_shellquote " 5 1 1 2 14 -par_command_len_shellquote " 5 2 1 2 20 -par_command_len_shellquote " 5 3 1 2 38 -par_command_len_shellquote " 5 4 1 2 92 -par_command_len_shellquote " 5 5 1 2 254 -par_command_len_shellquote " 5 6 1 2 740 -par_command_len_shellquote " 5 7 0 0 0 -par_command_len_shellquote " 5 8 0 0 0 -par_command_len_shellquote " 5 9 0 0 0 -par_command_len_shellquote " 5 10 0 0 0 -par_command_len_shellquote " 6 1 1 2 16 -par_command_len_shellquote " 6 2 1 2 22 -par_command_len_shellquote " 6 3 1 2 40 -par_command_len_shellquote " 6 4 1 2 94 -par_command_len_shellquote " 6 5 1 2 256 -par_command_len_shellquote " 6 6 1 2 742 -par_command_len_shellquote " 6 7 0 0 0 -par_command_len_shellquote " 6 8 0 0 0 -par_command_len_shellquote " 6 9 0 0 0 -par_command_len_shellquote " 6 10 0 0 0 -par_command_len_shellquote " 7 1 1 2 18 -par_command_len_shellquote " 7 2 1 2 24 -par_command_len_shellquote " 7 3 1 2 42 -par_command_len_shellquote " 7 4 1 2 96 -par_command_len_shellquote " 7 5 1 2 258 -par_command_len_shellquote " 7 6 1 2 744 -par_command_len_shellquote " 7 7 0 0 0 -par_command_len_shellquote " 7 8 0 0 0 -par_command_len_shellquote " 7 9 0 0 0 -par_command_len_shellquote " 7 10 0 0 0 -par_command_len_shellquote " 8 1 1 2 20 -par_command_len_shellquote " 8 2 1 2 26 -par_command_len_shellquote " 8 3 1 2 44 -par_command_len_shellquote " 8 4 1 2 98 -par_command_len_shellquote " 8 5 1 2 260 -par_command_len_shellquote " 8 6 1 2 746 -par_command_len_shellquote " 8 7 0 0 0 -par_command_len_shellquote " 8 8 0 0 0 -par_command_len_shellquote " 8 9 0 0 0 -par_command_len_shellquote " 8 10 0 0 0 -par_command_len_shellquote " 9 1 1 2 22 -par_command_len_shellquote " 9 2 1 2 28 -par_command_len_shellquote " 9 3 1 2 46 -par_command_len_shellquote " 9 4 1 2 100 -par_command_len_shellquote " 9 5 1 2 262 -par_command_len_shellquote " 9 6 0 0 0 -par_command_len_shellquote " 9 7 0 0 0 -par_command_len_shellquote " 9 8 0 0 0 -par_command_len_shellquote " 9 9 0 0 0 -par_command_len_shellquote " 9 10 0 0 0 -par_command_len_shellquote " 10 1 1 2 24 -par_command_len_shellquote " 10 2 1 2 30 -par_command_len_shellquote " 10 3 1 2 48 -par_command_len_shellquote " 10 4 1 2 102 -par_command_len_shellquote " 10 5 1 2 264 -par_command_len_shellquote " 10 6 0 0 0 -par_command_len_shellquote " 10 7 0 0 0 -par_command_len_shellquote " 10 8 0 0 0 -par_command_len_shellquote " 10 9 0 0 0 -par_command_len_shellquote " 10 10 0 0 0 -par_command_len_shellquote ' 1 1 1 2 6 -par_command_len_shellquote ' 1 2 1 2 12 -par_command_len_shellquote ' 1 3 1 2 30 -par_command_len_shellquote ' 1 4 1 2 84 -par_command_len_shellquote ' 1 5 1 2 246 -par_command_len_shellquote ' 1 6 1 2 732 -par_command_len_shellquote ' 1 7 1 2 2190 -par_command_len_shellquote ' 1 8 0 0 0 -par_command_len_shellquote ' 1 9 0 0 0 -par_command_len_shellquote ' 1 10 0 0 0 -par_command_len_shellquote ' 2 1 1 2 8 -par_command_len_shellquote ' 2 2 1 2 14 -par_command_len_shellquote ' 2 3 1 2 32 -par_command_len_shellquote ' 2 4 1 2 86 -par_command_len_shellquote ' 2 5 1 2 248 -par_command_len_shellquote ' 2 6 1 2 734 -par_command_len_shellquote ' 2 7 1 2 2192 -par_command_len_shellquote ' 2 8 0 0 0 -par_command_len_shellquote ' 2 9 0 0 0 -par_command_len_shellquote ' 2 10 0 0 0 -par_command_len_shellquote ' 3 1 1 2 10 -par_command_len_shellquote ' 3 2 1 2 16 -par_command_len_shellquote ' 3 3 1 2 34 -par_command_len_shellquote ' 3 4 1 2 88 -par_command_len_shellquote ' 3 5 1 2 250 -par_command_len_shellquote ' 3 6 1 2 736 -par_command_len_shellquote ' 3 7 0 0 0 -par_command_len_shellquote ' 3 8 0 0 0 -par_command_len_shellquote ' 3 9 0 0 0 -par_command_len_shellquote ' 3 10 0 0 0 -par_command_len_shellquote ' 4 1 1 2 12 -par_command_len_shellquote ' 4 2 1 2 18 -par_command_len_shellquote ' 4 3 1 2 36 -par_command_len_shellquote ' 4 4 1 2 90 -par_command_len_shellquote ' 4 5 1 2 252 -par_command_len_shellquote ' 4 6 1 2 738 -par_command_len_shellquote ' 4 7 0 0 0 -par_command_len_shellquote ' 4 8 0 0 0 -par_command_len_shellquote ' 4 9 0 0 0 -par_command_len_shellquote ' 4 10 0 0 0 -par_command_len_shellquote ' 5 1 1 2 14 -par_command_len_shellquote ' 5 2 1 2 20 -par_command_len_shellquote ' 5 3 1 2 38 -par_command_len_shellquote ' 5 4 1 2 92 -par_command_len_shellquote ' 5 5 1 2 254 -par_command_len_shellquote ' 5 6 1 2 740 -par_command_len_shellquote ' 5 7 0 0 0 -par_command_len_shellquote ' 5 8 0 0 0 -par_command_len_shellquote ' 5 9 0 0 0 -par_command_len_shellquote ' 5 10 0 0 0 -par_command_len_shellquote ' 6 1 1 2 16 -par_command_len_shellquote ' 6 2 1 2 22 -par_command_len_shellquote ' 6 3 1 2 40 -par_command_len_shellquote ' 6 4 1 2 94 -par_command_len_shellquote ' 6 5 1 2 256 -par_command_len_shellquote ' 6 6 1 2 742 -par_command_len_shellquote ' 6 7 0 0 0 -par_command_len_shellquote ' 6 8 0 0 0 -par_command_len_shellquote ' 6 9 0 0 0 -par_command_len_shellquote ' 6 10 0 0 0 -par_command_len_shellquote ' 7 1 1 2 18 -par_command_len_shellquote ' 7 2 1 2 24 -par_command_len_shellquote ' 7 3 1 2 42 -par_command_len_shellquote ' 7 4 1 2 96 -par_command_len_shellquote ' 7 5 1 2 258 -par_command_len_shellquote ' 7 6 1 2 744 -par_command_len_shellquote ' 7 7 0 0 0 -par_command_len_shellquote ' 7 8 0 0 0 -par_command_len_shellquote ' 7 9 0 0 0 -par_command_len_shellquote ' 7 10 0 0 0 -par_command_len_shellquote ' 8 1 1 2 20 -par_command_len_shellquote ' 8 2 1 2 26 -par_command_len_shellquote ' 8 3 1 2 44 -par_command_len_shellquote ' 8 4 1 2 98 -par_command_len_shellquote ' 8 5 1 2 260 -par_command_len_shellquote ' 8 6 1 2 746 -par_command_len_shellquote ' 8 7 0 0 0 -par_command_len_shellquote ' 8 8 0 0 0 -par_command_len_shellquote ' 8 9 0 0 0 -par_command_len_shellquote ' 8 10 0 0 0 -par_command_len_shellquote ' 9 1 1 2 22 -par_command_len_shellquote ' 9 2 1 2 28 -par_command_len_shellquote ' 9 3 1 2 46 -par_command_len_shellquote ' 9 4 1 2 100 -par_command_len_shellquote ' 9 5 1 2 262 -par_command_len_shellquote ' 9 6 0 0 0 -par_command_len_shellquote ' 9 7 0 0 0 -par_command_len_shellquote ' 9 8 0 0 0 -par_command_len_shellquote ' 9 9 0 0 0 -par_command_len_shellquote ' 9 10 0 0 0 -par_command_len_shellquote ' 10 1 1 2 24 -par_command_len_shellquote ' 10 2 1 2 30 -par_command_len_shellquote ' 10 3 1 2 48 -par_command_len_shellquote ' 10 4 1 2 102 -par_command_len_shellquote ' 10 5 1 2 264 -par_command_len_shellquote ' 10 6 0 0 0 -par_command_len_shellquote ' 10 7 0 0 0 -par_command_len_shellquote ' 10 8 0 0 0 -par_command_len_shellquote ' 10 9 0 0 0 -par_command_len_shellquote ' 10 10 0 0 0 -par_command_len_shellquote " 1 8 parallel: Error: Command line too long (65xxx >= 63xxx) at input 0: " -par_command_len_shellquote " 1 9 parallel: Error: Command line too long (196xxx >= 63xxx) at input 0: " -par_command_len_shellquote " 1 10 parallel: Error: Command line too long (590xxx >= 63xxx) at input 0: " -par_command_len_shellquote " 2 8 parallel: Error: Command line too long (131xxx >= 63xxx) at input 0: "" -par_command_len_shellquote " 2 9 parallel: Error: Command line too long (393xxx >= 63xxx) at input 0: "" -par_command_len_shellquote " 2 10 parallel: Error: Command line too long (1180xxx >= 63xxx) at input 0: "" -par_command_len_shellquote " 3 7 parallel: Error: Command line too long (65xxx >= 63xxx) at input 0: """ -par_command_len_shellquote " 3 8 parallel: Error: Command line too long (196xxx >= 63xxx) at input 0: """ -par_command_len_shellquote " 3 9 parallel: Error: Command line too long (590xxx >= 63xxx) at input 0: """ -par_command_len_shellquote " 3 10 parallel: Error: Command line too long (1771xxx >= 63xxx) at input 0: """ -par_command_len_shellquote " 4 7 parallel: Error: Command line too long (87xxx >= 63xxx) at input 0: """" -par_command_len_shellquote " 4 8 parallel: Error: Command line too long (262xxx >= 63xxx) at input 0: """" -par_command_len_shellquote " 4 9 parallel: Error: Command line too long (787xxx >= 63xxx) at input 0: """" -par_command_len_shellquote " 4 10 parallel: Error: Command line too long (2361xxx >= 63xxx) at input 0: """" -par_command_len_shellquote " 5 7 parallel: Error: Command line too long (109xxx >= 63xxx) at input 0: """"" -par_command_len_shellquote " 5 8 parallel: Error: Command line too long (328xxx >= 63xxx) at input 0: """"" -par_command_len_shellquote " 5 9 parallel: Error: Command line too long (984xxx >= 63xxx) at input 0: """"" -par_command_len_shellquote " 5 10 parallel: Error: Command line too long (2952xxx >= 63xxx) at input 0: """"" -par_command_len_shellquote " 6 7 parallel: Error: Command line too long (131xxx >= 63xxx) at input 0: """""" -par_command_len_shellquote " 6 8 parallel: Error: Command line too long (393xxx >= 63xxx) at input 0: """""" -par_command_len_shellquote " 6 9 parallel: Error: Command line too long (1180xxx >= 63xxx) at input 0: """""" -par_command_len_shellquote " 6 10 parallel: Error: Command line too long (3542xxx >= 63xxx) at input 0: """""" -par_command_len_shellquote " 7 7 parallel: Error: Command line too long (153xxx >= 63xxx) at input 0: """"""" -par_command_len_shellquote " 7 8 parallel: Error: Command line too long (459xxx >= 63xxx) at input 0: """"""" -par_command_len_shellquote " 7 9 parallel: Error: Command line too long (1377xxx >= 63xxx) at input 0: """"""" -par_command_len_shellquote " 7 10 parallel: Error: Command line too long (4133xxx >= 63xxx) at input 0: """"""" -par_command_len_shellquote " 8 7 parallel: Error: Command line too long (174xxx >= 63xxx) at input 0: """""""" -par_command_len_shellquote " 8 8 parallel: Error: Command line too long (524xxx >= 63xxx) at input 0: """""""" -par_command_len_shellquote " 8 9 parallel: Error: Command line too long (1574xxx >= 63xxx) at input 0: """""""" -par_command_len_shellquote " 8 10 parallel: Error: Command line too long (4723xxx >= 63xxx) at input 0: """""""" -par_command_len_shellquote " 9 6 parallel: Error: Command line too long (65xxx >= 63xxx) at input 0: """"""""" -par_command_len_shellquote " 9 7 parallel: Error: Command line too long (196xxx >= 63xxx) at input 0: """"""""" -par_command_len_shellquote " 9 8 parallel: Error: Command line too long (590xxx >= 63xxx) at input 0: """"""""" -par_command_len_shellquote " 9 9 parallel: Error: Command line too long (1771xxx >= 63xxx) at input 0: """"""""" -par_command_len_shellquote " 9 10 parallel: Error: Command line too long (5314xxx >= 63xxx) at input 0: """"""""" -par_command_len_shellquote " 10 6 parallel: Error: Command line too long (72xxx >= 63xxx) at input 0: """""""""" -par_command_len_shellquote " 10 7 parallel: Error: Command line too long (218xxx >= 63xxx) at input 0: """""""""" -par_command_len_shellquote " 10 8 parallel: Error: Command line too long (656xxx >= 63xxx) at input 0: """""""""" -par_command_len_shellquote " 10 9 parallel: Error: Command line too long (1968xxx >= 63xxx) at input 0: """""""""" -par_command_len_shellquote " 10 10 parallel: Error: Command line too long (5904xxx >= 63xxx) at input 0: """""""""" -par_command_len_shellquote ' 1 8 parallel: Error: Command line too long (65xxx >= 63xxx) at input 0: ' -par_command_len_shellquote ' 1 9 parallel: Error: Command line too long (196xxx >= 63xxx) at input 0: ' -par_command_len_shellquote ' 1 10 parallel: Error: Command line too long (590xxx >= 63xxx) at input 0: ' -par_command_len_shellquote ' 2 8 parallel: Error: Command line too long (131xxx >= 63xxx) at input 0: '' -par_command_len_shellquote ' 2 9 parallel: Error: Command line too long (393xxx >= 63xxx) at input 0: '' -par_command_len_shellquote ' 2 10 parallel: Error: Command line too long (1180xxx >= 63xxx) at input 0: '' -par_command_len_shellquote ' 3 7 parallel: Error: Command line too long (65xxx >= 63xxx) at input 0: ''' -par_command_len_shellquote ' 3 8 parallel: Error: Command line too long (196xxx >= 63xxx) at input 0: ''' -par_command_len_shellquote ' 3 9 parallel: Error: Command line too long (590xxx >= 63xxx) at input 0: ''' -par_command_len_shellquote ' 3 10 parallel: Error: Command line too long (1771xxx >= 63xxx) at input 0: ''' -par_command_len_shellquote ' 4 7 parallel: Error: Command line too long (87xxx >= 63xxx) at input 0: '''' -par_command_len_shellquote ' 4 8 parallel: Error: Command line too long (262xxx >= 63xxx) at input 0: '''' -par_command_len_shellquote ' 4 9 parallel: Error: Command line too long (787xxx >= 63xxx) at input 0: '''' -par_command_len_shellquote ' 4 10 parallel: Error: Command line too long (2361xxx >= 63xxx) at input 0: '''' -par_command_len_shellquote ' 5 7 parallel: Error: Command line too long (109xxx >= 63xxx) at input 0: ''''' -par_command_len_shellquote ' 5 8 parallel: Error: Command line too long (328xxx >= 63xxx) at input 0: ''''' -par_command_len_shellquote ' 5 9 parallel: Error: Command line too long (984xxx >= 63xxx) at input 0: ''''' -par_command_len_shellquote ' 5 10 parallel: Error: Command line too long (2952xxx >= 63xxx) at input 0: ''''' -par_command_len_shellquote ' 6 7 parallel: Error: Command line too long (131xxx >= 63xxx) at input 0: '''''' -par_command_len_shellquote ' 6 8 parallel: Error: Command line too long (393xxx >= 63xxx) at input 0: '''''' -par_command_len_shellquote ' 6 9 parallel: Error: Command line too long (1180xxx >= 63xxx) at input 0: '''''' -par_command_len_shellquote ' 6 10 parallel: Error: Command line too long (3542xxx >= 63xxx) at input 0: '''''' -par_command_len_shellquote ' 7 7 parallel: Error: Command line too long (153xxx >= 63xxx) at input 0: ''''''' -par_command_len_shellquote ' 7 8 parallel: Error: Command line too long (459xxx >= 63xxx) at input 0: ''''''' -par_command_len_shellquote ' 7 9 parallel: Error: Command line too long (1377xxx >= 63xxx) at input 0: ''''''' -par_command_len_shellquote ' 7 10 parallel: Error: Command line too long (4133xxx >= 63xxx) at input 0: ''''''' -par_command_len_shellquote ' 8 7 parallel: Error: Command line too long (174xxx >= 63xxx) at input 0: '''''''' -par_command_len_shellquote ' 8 8 parallel: Error: Command line too long (524xxx >= 63xxx) at input 0: '''''''' -par_command_len_shellquote ' 8 9 parallel: Error: Command line too long (1574xxx >= 63xxx) at input 0: '''''''' -par_command_len_shellquote ' 8 10 parallel: Error: Command line too long (4723xxx >= 63xxx) at input 0: '''''''' -par_command_len_shellquote ' 9 6 parallel: Error: Command line too long (65xxx >= 63xxx) at input 0: ''''''''' -par_command_len_shellquote ' 9 7 parallel: Error: Command line too long (196xxx >= 63xxx) at input 0: ''''''''' -par_command_len_shellquote ' 9 8 parallel: Error: Command line too long (590xxx >= 63xxx) at input 0: ''''''''' -par_command_len_shellquote ' 9 9 parallel: Error: Command line too long (1771xxx >= 63xxx) at input 0: ''''''''' -par_command_len_shellquote ' 9 10 parallel: Error: Command line too long (5314xxx >= 63xxx) at input 0: ''''''''' -par_command_len_shellquote ' 10 6 parallel: Error: Command line too long (72xxx >= 63xxx) at input 0: '''''''''' -par_command_len_shellquote ' 10 7 parallel: Error: Command line too long (218xxx >= 63xxx) at input 0: '''''''''' -par_command_len_shellquote ' 10 8 parallel: Error: Command line too long (656xxx >= 63xxx) at input 0: '''''''''' -par_command_len_shellquote ' 10 9 parallel: Error: Command line too long (1968xxx >= 63xxx) at input 0: '''''''''' -par_command_len_shellquote ' 10 10 parallel: Error: Command line too long (5904xxx >= 63xxx) at input 0: '''''''''' par_basefile_cleanup ### bug #46520: --basefile cleans up without --cleanup par_basefile_cleanup bug_46520 par_basefile_cleanup bug_46520 par_basefile_cleanup bug_46520 par_basefile_cleanup ls: cannot access 'bug_46520': No such file or directory -par_autossh ### --ssh autossh -par_autossh OK -par_autossh OK -par_autossh OK should fail -par_autossh ### --ssh autossh - add commands that fail here -par_autossh /usr/lib/autossh/autossh: invalid option -- '-' -par_autossh usage: autossh [-V] [-M monitor_port[:echo_port]] [-f] [SSH_OPTIONS] -par_autossh -par_autossh -M specifies monitor port. Overrides the environment -par_autossh variable AUTOSSH_PORT. 0 turns monitoring loop off. -par_autossh Alternatively, a port for an echo service on the remote -par_autossh machine may be specified. (Normally port 7.) -par_autossh -f run in background (autossh handles this, and does not -par_autossh pass it to ssh.) -par_autossh -V print autossh version and exit. -par_autossh -par_autossh Environment variables are: -par_autossh AUTOSSH_GATETIME - how long must an ssh session be established -par_autossh before we decide it really was established -par_autossh (in seconds). Default is 30 seconds; use of -f -par_autossh flag sets this to 0. -par_autossh AUTOSSH_LOGFILE - file to log to (default is to use the syslog -par_autossh facility) -par_autossh AUTOSSH_LOGLEVEL - level of log verbosity -par_autossh AUTOSSH_MAXLIFETIME - set the maximum time to live (seconds) -par_autossh AUTOSSH_MAXSTART - max times to restart (default is no limit) -par_autossh AUTOSSH_MESSAGE - message to append to echo string (max 64 bytes) -par_autossh AUTOSSH_PATH - path to ssh if not default -par_autossh AUTOSSH_PIDFILE - write pid to this file -par_autossh AUTOSSH_POLL - how often to check the connection (seconds) -par_autossh AUTOSSH_FIRST_POLL - time before first connection check (seconds) -par_autossh AUTOSSH_PORT - port to use for monitor connection -par_autossh AUTOSSH_DEBUG - turn logging to maximum verbosity and log to -par_autossh stderr -par_autossh -par_autossh rsync: connection unexpectedly closed (0 bytes received so far) [Receiver] -par_autossh rsync error: error in rsync protocol data stream (code 12) at io.c(228) [Receiver=3.2.3] -par_autossh foo_autossh +par_--ssh_lsh ### --ssh lsh +par_--ssh_lsh OK +par_--ssh_lsh OK +par_--ssh_lsh OK +par_--ssh_lsh OK +par_--ssh_autossh ### --ssh autossh +par_--ssh_autossh OK +par_--ssh_autossh OK +par_--ssh_autossh OK should fail +par_--ssh_autossh ### --ssh autossh - add commands that fail here +par_--ssh_autossh /usr/lib/autossh/autossh: invalid option -- '-' +par_--ssh_autossh usage: autossh [-V] [-M monitor_port[:echo_port]] [-f] [SSH_OPTIONS] +par_--ssh_autossh +par_--ssh_autossh -M specifies monitor port. Overrides the environment +par_--ssh_autossh variable AUTOSSH_PORT. 0 turns monitoring loop off. +par_--ssh_autossh Alternatively, a port for an echo service on the remote +par_--ssh_autossh machine may be specified. (Normally port 7.) +par_--ssh_autossh -f run in background (autossh handles this, and does not +par_--ssh_autossh pass it to ssh.) +par_--ssh_autossh -V print autossh version and exit. +par_--ssh_autossh +par_--ssh_autossh Environment variables are: +par_--ssh_autossh AUTOSSH_GATETIME - how long must an ssh session be established +par_--ssh_autossh before we decide it really was established +par_--ssh_autossh (in seconds). Default is 30 seconds; use of -f +par_--ssh_autossh flag sets this to 0. +par_--ssh_autossh AUTOSSH_LOGFILE - file to log to (default is to use the syslog +par_--ssh_autossh facility) +par_--ssh_autossh AUTOSSH_LOGLEVEL - level of log verbosity +par_--ssh_autossh AUTOSSH_MAXLIFETIME - set the maximum time to live (seconds) +par_--ssh_autossh AUTOSSH_MAXSTART - max times to restart (default is no limit) +par_--ssh_autossh AUTOSSH_MESSAGE - message to append to echo string (max 64 bytes) +par_--ssh_autossh AUTOSSH_PATH - path to ssh if not default +par_--ssh_autossh AUTOSSH_PIDFILE - write pid to this file +par_--ssh_autossh AUTOSSH_POLL - how often to check the connection (seconds) +par_--ssh_autossh AUTOSSH_FIRST_POLL - time before first connection check (seconds) +par_--ssh_autossh AUTOSSH_PORT - port to use for monitor connection +par_--ssh_autossh AUTOSSH_DEBUG - turn logging to maximum verbosity and log to +par_--ssh_autossh stderr +par_--ssh_autossh +par_--ssh_autossh rsync: connection unexpectedly closed (0 bytes received so far) [Receiver] +par_--ssh_autossh rsync error: error in rsync protocol data stream (code 12) at io.c(228) [Receiver=3.2.3] +par_--ssh_autossh foo_autossh +par_--shellquote_command_len ### test quoting will not cause a crash if too long +par_--shellquote_command_len -Slo -j10 " 1 1 1 1 4 +par_--shellquote_command_len -Slo -j10 " 1 2 1 1 10 +par_--shellquote_command_len -Slo -j10 " 1 3 1 1 28 +par_--shellquote_command_len -Slo -j10 " 1 4 1 1 82 +par_--shellquote_command_len -Slo -j10 " 1 5 1 1 244 +par_--shellquote_command_len -Slo -j10 " 1 6 1 1 730 +par_--shellquote_command_len -Slo -j10 " 1 7 1 1 2188 +par_--shellquote_command_len -Slo -j10 " 1 8 1 1 6562 +par_--shellquote_command_len -Slo -j10 " 1 9 0 0 0 +par_--shellquote_command_len -Slo -j10 " 1 10 0 0 0 +par_--shellquote_command_len -Slo -j10 " 2 1 1 1 5 +par_--shellquote_command_len -Slo -j10 " 2 2 1 1 11 +par_--shellquote_command_len -Slo -j10 " 2 3 1 1 29 +par_--shellquote_command_len -Slo -j10 " 2 4 1 1 83 +par_--shellquote_command_len -Slo -j10 " 2 5 1 1 245 +par_--shellquote_command_len -Slo -j10 " 2 6 1 1 731 +par_--shellquote_command_len -Slo -j10 " 2 7 1 1 2189 +par_--shellquote_command_len -Slo -j10 " 2 8 0 0 0 +par_--shellquote_command_len -Slo -j10 " 2 9 0 0 0 +par_--shellquote_command_len -Slo -j10 " 2 10 0 0 0 +par_--shellquote_command_len -Slo -j10 " 3 1 1 1 6 +par_--shellquote_command_len -Slo -j10 " 3 2 1 1 12 +par_--shellquote_command_len -Slo -j10 " 3 3 1 1 30 +par_--shellquote_command_len -Slo -j10 " 3 4 1 1 84 +par_--shellquote_command_len -Slo -j10 " 3 5 1 1 246 +par_--shellquote_command_len -Slo -j10 " 3 6 1 1 732 +par_--shellquote_command_len -Slo -j10 " 3 7 1 1 2190 +par_--shellquote_command_len -Slo -j10 " 3 8 0 0 0 +par_--shellquote_command_len -Slo -j10 " 3 9 0 0 0 +par_--shellquote_command_len -Slo -j10 " 3 10 0 0 0 +par_--shellquote_command_len -Slo -j10 " 4 1 1 1 7 +par_--shellquote_command_len -Slo -j10 " 4 2 1 1 13 +par_--shellquote_command_len -Slo -j10 " 4 3 1 1 31 +par_--shellquote_command_len -Slo -j10 " 4 4 1 1 85 +par_--shellquote_command_len -Slo -j10 " 4 5 1 1 247 +par_--shellquote_command_len -Slo -j10 " 4 6 1 1 733 +par_--shellquote_command_len -Slo -j10 " 4 7 1 1 2191 +par_--shellquote_command_len -Slo -j10 " 4 8 0 0 0 +par_--shellquote_command_len -Slo -j10 " 4 9 0 0 0 +par_--shellquote_command_len -Slo -j10 " 4 10 0 0 0 +par_--shellquote_command_len -Slo -j10 " 5 1 1 1 8 +par_--shellquote_command_len -Slo -j10 " 5 2 1 1 14 +par_--shellquote_command_len -Slo -j10 " 5 3 1 1 32 +par_--shellquote_command_len -Slo -j10 " 5 4 1 1 86 +par_--shellquote_command_len -Slo -j10 " 5 5 1 1 248 +par_--shellquote_command_len -Slo -j10 " 5 6 1 1 734 +par_--shellquote_command_len -Slo -j10 " 5 7 1 1 2192 +par_--shellquote_command_len -Slo -j10 " 5 8 0 0 0 +par_--shellquote_command_len -Slo -j10 " 5 9 0 0 0 +par_--shellquote_command_len -Slo -j10 " 5 10 0 0 0 +par_--shellquote_command_len -Slo -j10 " 6 1 1 1 9 +par_--shellquote_command_len -Slo -j10 " 6 2 1 1 15 +par_--shellquote_command_len -Slo -j10 " 6 3 1 1 33 +par_--shellquote_command_len -Slo -j10 " 6 4 1 1 87 +par_--shellquote_command_len -Slo -j10 " 6 5 1 1 249 +par_--shellquote_command_len -Slo -j10 " 6 6 1 1 735 +par_--shellquote_command_len -Slo -j10 " 6 7 0 0 0 +par_--shellquote_command_len -Slo -j10 " 6 8 0 0 0 +par_--shellquote_command_len -Slo -j10 " 6 9 0 0 0 +par_--shellquote_command_len -Slo -j10 " 6 10 0 0 0 +par_--shellquote_command_len -Slo -j10 " 7 1 1 1 10 +par_--shellquote_command_len -Slo -j10 " 7 2 1 1 16 +par_--shellquote_command_len -Slo -j10 " 7 3 1 1 34 +par_--shellquote_command_len -Slo -j10 " 7 4 1 1 88 +par_--shellquote_command_len -Slo -j10 " 7 5 1 1 250 +par_--shellquote_command_len -Slo -j10 " 7 6 1 1 736 +par_--shellquote_command_len -Slo -j10 " 7 7 0 0 0 +par_--shellquote_command_len -Slo -j10 " 7 8 0 0 0 +par_--shellquote_command_len -Slo -j10 " 7 9 0 0 0 +par_--shellquote_command_len -Slo -j10 " 7 10 0 0 0 +par_--shellquote_command_len -Slo -j10 " 8 1 1 1 11 +par_--shellquote_command_len -Slo -j10 " 8 2 1 1 17 +par_--shellquote_command_len -Slo -j10 " 8 3 1 1 35 +par_--shellquote_command_len -Slo -j10 " 8 4 1 1 89 +par_--shellquote_command_len -Slo -j10 " 8 5 1 1 251 +par_--shellquote_command_len -Slo -j10 " 8 6 1 1 737 +par_--shellquote_command_len -Slo -j10 " 8 7 0 0 0 +par_--shellquote_command_len -Slo -j10 " 8 8 0 0 0 +par_--shellquote_command_len -Slo -j10 " 8 9 0 0 0 +par_--shellquote_command_len -Slo -j10 " 8 10 0 0 0 +par_--shellquote_command_len -Slo -j10 " 9 1 1 1 12 +par_--shellquote_command_len -Slo -j10 " 9 2 1 1 18 +par_--shellquote_command_len -Slo -j10 " 9 3 1 1 36 +par_--shellquote_command_len -Slo -j10 " 9 4 1 1 90 +par_--shellquote_command_len -Slo -j10 " 9 5 1 1 252 +par_--shellquote_command_len -Slo -j10 " 9 6 1 1 738 +par_--shellquote_command_len -Slo -j10 " 9 7 0 0 0 +par_--shellquote_command_len -Slo -j10 " 9 8 0 0 0 +par_--shellquote_command_len -Slo -j10 " 9 9 0 0 0 +par_--shellquote_command_len -Slo -j10 " 9 10 0 0 0 +par_--shellquote_command_len -Slo -j10 " 10 1 1 1 13 +par_--shellquote_command_len -Slo -j10 " 10 2 1 1 19 +par_--shellquote_command_len -Slo -j10 " 10 3 1 1 37 +par_--shellquote_command_len -Slo -j10 " 10 4 1 1 91 +par_--shellquote_command_len -Slo -j10 " 10 5 1 1 253 +par_--shellquote_command_len -Slo -j10 " 10 6 1 1 739 +par_--shellquote_command_len -Slo -j10 " 10 7 0 0 0 +par_--shellquote_command_len -Slo -j10 " 10 8 0 0 0 +par_--shellquote_command_len -Slo -j10 " 10 9 0 0 0 +par_--shellquote_command_len -Slo -j10 " 10 10 0 0 0 +par_--shellquote_command_len -Slo -j10 ' 1 1 1 1 4 +par_--shellquote_command_len -Slo -j10 ' 1 2 1 1 10 +par_--shellquote_command_len -Slo -j10 ' 1 3 1 1 28 +par_--shellquote_command_len -Slo -j10 ' 1 4 1 1 82 +par_--shellquote_command_len -Slo -j10 ' 1 5 1 1 244 +par_--shellquote_command_len -Slo -j10 ' 1 6 1 1 730 +par_--shellquote_command_len -Slo -j10 ' 1 7 1 1 2188 +par_--shellquote_command_len -Slo -j10 ' 1 8 1 1 6562 +par_--shellquote_command_len -Slo -j10 ' 1 9 0 0 0 +par_--shellquote_command_len -Slo -j10 ' 1 10 0 0 0 +par_--shellquote_command_len -Slo -j10 ' 2 1 1 1 5 +par_--shellquote_command_len -Slo -j10 ' 2 2 1 1 11 +par_--shellquote_command_len -Slo -j10 ' 2 3 1 1 29 +par_--shellquote_command_len -Slo -j10 ' 2 4 1 1 83 +par_--shellquote_command_len -Slo -j10 ' 2 5 1 1 245 +par_--shellquote_command_len -Slo -j10 ' 2 6 1 1 731 +par_--shellquote_command_len -Slo -j10 ' 2 7 1 1 2189 +par_--shellquote_command_len -Slo -j10 ' 2 8 0 0 0 +par_--shellquote_command_len -Slo -j10 ' 2 9 0 0 0 +par_--shellquote_command_len -Slo -j10 ' 2 10 0 0 0 +par_--shellquote_command_len -Slo -j10 ' 3 1 1 1 6 +par_--shellquote_command_len -Slo -j10 ' 3 2 1 1 12 +par_--shellquote_command_len -Slo -j10 ' 3 3 1 1 30 +par_--shellquote_command_len -Slo -j10 ' 3 4 1 1 84 +par_--shellquote_command_len -Slo -j10 ' 3 5 1 1 246 +par_--shellquote_command_len -Slo -j10 ' 3 6 1 1 732 +par_--shellquote_command_len -Slo -j10 ' 3 7 1 1 2190 +par_--shellquote_command_len -Slo -j10 ' 3 8 0 0 0 +par_--shellquote_command_len -Slo -j10 ' 3 9 0 0 0 +par_--shellquote_command_len -Slo -j10 ' 3 10 0 0 0 +par_--shellquote_command_len -Slo -j10 ' 4 1 1 1 7 +par_--shellquote_command_len -Slo -j10 ' 4 2 1 1 13 +par_--shellquote_command_len -Slo -j10 ' 4 3 1 1 31 +par_--shellquote_command_len -Slo -j10 ' 4 4 1 1 85 +par_--shellquote_command_len -Slo -j10 ' 4 5 1 1 247 +par_--shellquote_command_len -Slo -j10 ' 4 6 1 1 733 +par_--shellquote_command_len -Slo -j10 ' 4 7 1 1 2191 +par_--shellquote_command_len -Slo -j10 ' 4 8 0 0 0 +par_--shellquote_command_len -Slo -j10 ' 4 9 0 0 0 +par_--shellquote_command_len -Slo -j10 ' 4 10 0 0 0 +par_--shellquote_command_len -Slo -j10 ' 5 1 1 1 8 +par_--shellquote_command_len -Slo -j10 ' 5 2 1 1 14 +par_--shellquote_command_len -Slo -j10 ' 5 3 1 1 32 +par_--shellquote_command_len -Slo -j10 ' 5 4 1 1 86 +par_--shellquote_command_len -Slo -j10 ' 5 5 1 1 248 +par_--shellquote_command_len -Slo -j10 ' 5 6 1 1 734 +par_--shellquote_command_len -Slo -j10 ' 5 7 1 1 2192 +par_--shellquote_command_len -Slo -j10 ' 5 8 0 0 0 +par_--shellquote_command_len -Slo -j10 ' 5 9 0 0 0 +par_--shellquote_command_len -Slo -j10 ' 5 10 0 0 0 +par_--shellquote_command_len -Slo -j10 ' 6 1 1 1 9 +par_--shellquote_command_len -Slo -j10 ' 6 2 1 1 15 +par_--shellquote_command_len -Slo -j10 ' 6 3 1 1 33 +par_--shellquote_command_len -Slo -j10 ' 6 4 1 1 87 +par_--shellquote_command_len -Slo -j10 ' 6 5 1 1 249 +par_--shellquote_command_len -Slo -j10 ' 6 6 1 1 735 +par_--shellquote_command_len -Slo -j10 ' 6 7 0 0 0 +par_--shellquote_command_len -Slo -j10 ' 6 8 0 0 0 +par_--shellquote_command_len -Slo -j10 ' 6 9 0 0 0 +par_--shellquote_command_len -Slo -j10 ' 6 10 0 0 0 +par_--shellquote_command_len -Slo -j10 ' 7 1 1 1 10 +par_--shellquote_command_len -Slo -j10 ' 7 2 1 1 16 +par_--shellquote_command_len -Slo -j10 ' 7 3 1 1 34 +par_--shellquote_command_len -Slo -j10 ' 7 4 1 1 88 +par_--shellquote_command_len -Slo -j10 ' 7 5 1 1 250 +par_--shellquote_command_len -Slo -j10 ' 7 6 1 1 736 +par_--shellquote_command_len -Slo -j10 ' 7 7 0 0 0 +par_--shellquote_command_len -Slo -j10 ' 7 8 0 0 0 +par_--shellquote_command_len -Slo -j10 ' 7 9 0 0 0 +par_--shellquote_command_len -Slo -j10 ' 7 10 0 0 0 +par_--shellquote_command_len -Slo -j10 ' 8 1 1 1 11 +par_--shellquote_command_len -Slo -j10 ' 8 2 1 1 17 +par_--shellquote_command_len -Slo -j10 ' 8 3 1 1 35 +par_--shellquote_command_len -Slo -j10 ' 8 4 1 1 89 +par_--shellquote_command_len -Slo -j10 ' 8 5 1 1 251 +par_--shellquote_command_len -Slo -j10 ' 8 6 1 1 737 +par_--shellquote_command_len -Slo -j10 ' 8 7 0 0 0 +par_--shellquote_command_len -Slo -j10 ' 8 8 0 0 0 +par_--shellquote_command_len -Slo -j10 ' 8 9 0 0 0 +par_--shellquote_command_len -Slo -j10 ' 8 10 0 0 0 +par_--shellquote_command_len -Slo -j10 ' 9 1 1 1 12 +par_--shellquote_command_len -Slo -j10 ' 9 2 1 1 18 +par_--shellquote_command_len -Slo -j10 ' 9 3 1 1 36 +par_--shellquote_command_len -Slo -j10 ' 9 4 1 1 90 +par_--shellquote_command_len -Slo -j10 ' 9 5 1 1 252 +par_--shellquote_command_len -Slo -j10 ' 9 6 1 1 738 +par_--shellquote_command_len -Slo -j10 ' 9 7 0 0 0 +par_--shellquote_command_len -Slo -j10 ' 9 8 0 0 0 +par_--shellquote_command_len -Slo -j10 ' 9 9 0 0 0 +par_--shellquote_command_len -Slo -j10 ' 9 10 0 0 0 +par_--shellquote_command_len -Slo -j10 ' 10 1 1 1 13 +par_--shellquote_command_len -Slo -j10 ' 10 2 1 1 19 +par_--shellquote_command_len -Slo -j10 ' 10 3 1 1 37 +par_--shellquote_command_len -Slo -j10 ' 10 4 1 1 91 +par_--shellquote_command_len -Slo -j10 ' 10 5 1 1 253 +par_--shellquote_command_len -Slo -j10 ' 10 6 1 1 739 +par_--shellquote_command_len -Slo -j10 ' 10 7 0 0 0 +par_--shellquote_command_len -Slo -j10 ' 10 8 0 0 0 +par_--shellquote_command_len -Slo -j10 ' 10 9 0 0 0 +par_--shellquote_command_len -Slo -j10 ' 10 10 0 0 0 +par_--shellquote_command_len -Slo -j10 " 1 9 parallel: Error: Command line too long (98xxx >= 63xxx) at input 0: " +par_--shellquote_command_len -Slo -j10 " 1 10 parallel: Error: Command line too long (295xxx >= 63xxx) at input 0: " +par_--shellquote_command_len -Slo -j10 " 2 8 parallel: Error: Command line too long (65xxx >= 63xxx) at input 0: " +par_--shellquote_command_len -Slo -j10 " 2 9 parallel: Error: Command line too long (196xxx >= 63xxx) at input 0: " +par_--shellquote_command_len -Slo -j10 " 2 10 parallel: Error: Command line too long (590xxx >= 63xxx) at input 0: " +par_--shellquote_command_len -Slo -j10 " 3 8 parallel: Error: Command line too long (98xxx >= 63xxx) at input 0: " +par_--shellquote_command_len -Slo -j10 " 3 9 parallel: Error: Command line too long (295xxx >= 63xxx) at input 0: " +par_--shellquote_command_len -Slo -j10 " 3 10 parallel: Error: Command line too long (885xxx >= 63xxx) at input 0: " +par_--shellquote_command_len -Slo -j10 " 4 8 parallel: Error: Command line too long (131xxx >= 63xxx) at input 0: " +par_--shellquote_command_len -Slo -j10 " 4 9 parallel: Error: Command line too long (393xxx >= 63xxx) at input 0: " +par_--shellquote_command_len -Slo -j10 " 4 10 parallel: Error: Command line too long (1180xxx >= 63xxx) at input 0: " +par_--shellquote_command_len -Slo -j10 " 5 8 parallel: Error: Command line too long (164xxx >= 63xxx) at input 0: " +par_--shellquote_command_len -Slo -j10 " 5 9 parallel: Error: Command line too long (492xxx >= 63xxx) at input 0: " +par_--shellquote_command_len -Slo -j10 " 5 10 parallel: Error: Command line too long (1476xxx >= 63xxx) at input 0: " +par_--shellquote_command_len -Slo -j10 " 6 7 parallel: Error: Command line too long (65xxx >= 63xxx) at input 0: " +par_--shellquote_command_len -Slo -j10 " 6 8 parallel: Error: Command line too long (196xxx >= 63xxx) at input 0: " +par_--shellquote_command_len -Slo -j10 " 6 9 parallel: Error: Command line too long (590xxx >= 63xxx) at input 0: " +par_--shellquote_command_len -Slo -j10 " 6 10 parallel: Error: Command line too long (1771xxx >= 63xxx) at input 0: " +par_--shellquote_command_len -Slo -j10 " 7 7 parallel: Error: Command line too long (76xxx >= 63xxx) at input 0: " +par_--shellquote_command_len -Slo -j10 " 7 8 parallel: Error: Command line too long (229xxx >= 63xxx) at input 0: " +par_--shellquote_command_len -Slo -j10 " 7 9 parallel: Error: Command line too long (688xxx >= 63xxx) at input 0: " +par_--shellquote_command_len -Slo -j10 " 7 10 parallel: Error: Command line too long (2066xxx >= 63xxx) at input 0: " +par_--shellquote_command_len -Slo -j10 " 8 7 parallel: Error: Command line too long (87xxx >= 63xxx) at input 0: " +par_--shellquote_command_len -Slo -j10 " 8 8 parallel: Error: Command line too long (262xxx >= 63xxx) at input 0: " +par_--shellquote_command_len -Slo -j10 " 8 9 parallel: Error: Command line too long (787xxx >= 63xxx) at input 0: " +par_--shellquote_command_len -Slo -j10 " 8 10 parallel: Error: Command line too long (2361xxx >= 63xxx) at input 0: " +par_--shellquote_command_len -Slo -j10 " 9 7 parallel: Error: Command line too long (98xxx >= 63xxx) at input 0: " +par_--shellquote_command_len -Slo -j10 " 9 8 parallel: Error: Command line too long (295xxx >= 63xxx) at input 0: " +par_--shellquote_command_len -Slo -j10 " 9 9 parallel: Error: Command line too long (885xxx >= 63xxx) at input 0: " +par_--shellquote_command_len -Slo -j10 " 9 10 parallel: Error: Command line too long (2657xxx >= 63xxx) at input 0: " +par_--shellquote_command_len -Slo -j10 " 10 7 parallel: Error: Command line too long (109xxx >= 63xxx) at input 0: " +par_--shellquote_command_len -Slo -j10 " 10 8 parallel: Error: Command line too long (328xxx >= 63xxx) at input 0: " +par_--shellquote_command_len -Slo -j10 " 10 9 parallel: Error: Command line too long (984xxx >= 63xxx) at input 0: " +par_--shellquote_command_len -Slo -j10 " 10 10 parallel: Error: Command line too long (2952xxx >= 63xxx) at input 0: " +par_--shellquote_command_len -Slo -j10 ' 1 9 parallel: Error: Command line too long (98xxx >= 63xxx) at input 0: ' +par_--shellquote_command_len -Slo -j10 ' 1 10 parallel: Error: Command line too long (295xxx >= 63xxx) at input 0: ' +par_--shellquote_command_len -Slo -j10 ' 2 8 parallel: Error: Command line too long (65xxx >= 63xxx) at input 0: '' +par_--shellquote_command_len -Slo -j10 ' 2 9 parallel: Error: Command line too long (196xxx >= 63xxx) at input 0: '' +par_--shellquote_command_len -Slo -j10 ' 2 10 parallel: Error: Command line too long (590xxx >= 63xxx) at input 0: '' +par_--shellquote_command_len -Slo -j10 ' 3 8 parallel: Error: Command line too long (98xxx >= 63xxx) at input 0: ''' +par_--shellquote_command_len -Slo -j10 ' 3 9 parallel: Error: Command line too long (295xxx >= 63xxx) at input 0: ''' +par_--shellquote_command_len -Slo -j10 ' 3 10 parallel: Error: Command line too long (885xxx >= 63xxx) at input 0: ''' +par_--shellquote_command_len -Slo -j10 ' 4 8 parallel: Error: Command line too long (131xxx >= 63xxx) at input 0: '''' +par_--shellquote_command_len -Slo -j10 ' 4 9 parallel: Error: Command line too long (393xxx >= 63xxx) at input 0: '''' +par_--shellquote_command_len -Slo -j10 ' 4 10 parallel: Error: Command line too long (1180xxx >= 63xxx) at input 0: '''' +par_--shellquote_command_len -Slo -j10 ' 5 8 parallel: Error: Command line too long (164xxx >= 63xxx) at input 0: ''''' +par_--shellquote_command_len -Slo -j10 ' 5 9 parallel: Error: Command line too long (492xxx >= 63xxx) at input 0: ''''' +par_--shellquote_command_len -Slo -j10 ' 5 10 parallel: Error: Command line too long (1476xxx >= 63xxx) at input 0: ''''' +par_--shellquote_command_len -Slo -j10 ' 6 7 parallel: Error: Command line too long (65xxx >= 63xxx) at input 0: '''''' +par_--shellquote_command_len -Slo -j10 ' 6 8 parallel: Error: Command line too long (196xxx >= 63xxx) at input 0: '''''' +par_--shellquote_command_len -Slo -j10 ' 6 9 parallel: Error: Command line too long (590xxx >= 63xxx) at input 0: '''''' +par_--shellquote_command_len -Slo -j10 ' 6 10 parallel: Error: Command line too long (1771xxx >= 63xxx) at input 0: '''''' +par_--shellquote_command_len -Slo -j10 ' 7 7 parallel: Error: Command line too long (76xxx >= 63xxx) at input 0: ''''''' +par_--shellquote_command_len -Slo -j10 ' 7 8 parallel: Error: Command line too long (229xxx >= 63xxx) at input 0: ''''''' +par_--shellquote_command_len -Slo -j10 ' 7 9 parallel: Error: Command line too long (688xxx >= 63xxx) at input 0: ''''''' +par_--shellquote_command_len -Slo -j10 ' 7 10 parallel: Error: Command line too long (2066xxx >= 63xxx) at input 0: ''''''' +par_--shellquote_command_len -Slo -j10 ' 8 7 parallel: Error: Command line too long (87xxx >= 63xxx) at input 0: '''''''' +par_--shellquote_command_len -Slo -j10 ' 8 8 parallel: Error: Command line too long (262xxx >= 63xxx) at input 0: '''''''' +par_--shellquote_command_len -Slo -j10 ' 8 9 parallel: Error: Command line too long (787xxx >= 63xxx) at input 0: '''''''' +par_--shellquote_command_len -Slo -j10 ' 8 10 parallel: Error: Command line too long (2361xxx >= 63xxx) at input 0: '''''''' +par_--shellquote_command_len -Slo -j10 ' 9 7 parallel: Error: Command line too long (98xxx >= 63xxx) at input 0: ''''''''' +par_--shellquote_command_len -Slo -j10 ' 9 8 parallel: Error: Command line too long (295xxx >= 63xxx) at input 0: ''''''''' +par_--shellquote_command_len -Slo -j10 ' 9 9 parallel: Error: Command line too long (885xxx >= 63xxx) at input 0: ''''''''' +par_--shellquote_command_len -Slo -j10 ' 9 10 parallel: Error: Command line too long (2657xxx >= 63xxx) at input 0: ''''''''' +par_--shellquote_command_len -Slo -j10 ' 10 7 parallel: Error: Command line too long (109xxx >= 63xxx) at input 0: '''''''''' +par_--shellquote_command_len -Slo -j10 ' 10 8 parallel: Error: Command line too long (328xxx >= 63xxx) at input 0: '''''''''' +par_--shellquote_command_len -Slo -j10 ' 10 9 parallel: Error: Command line too long (984xxx >= 63xxx) at input 0: '''''''''' +par_--shellquote_command_len -Slo -j10 ' 10 10 parallel: Error: Command line too long (2952xxx >= 63xxx) at input 0: '''''''''' +par_--shellquote_command_len " 1 1 1 2 6 +par_--shellquote_command_len " 1 2 1 2 12 +par_--shellquote_command_len " 1 3 1 2 30 +par_--shellquote_command_len " 1 4 1 2 84 +par_--shellquote_command_len " 1 5 1 2 246 +par_--shellquote_command_len " 1 6 1 2 732 +par_--shellquote_command_len " 1 7 1 2 2190 +par_--shellquote_command_len " 1 8 0 0 0 +par_--shellquote_command_len " 1 9 0 0 0 +par_--shellquote_command_len " 1 10 0 0 0 +par_--shellquote_command_len " 2 1 1 2 8 +par_--shellquote_command_len " 2 2 1 2 14 +par_--shellquote_command_len " 2 3 1 2 32 +par_--shellquote_command_len " 2 4 1 2 86 +par_--shellquote_command_len " 2 5 1 2 248 +par_--shellquote_command_len " 2 6 1 2 734 +par_--shellquote_command_len " 2 7 1 2 2192 +par_--shellquote_command_len " 2 8 0 0 0 +par_--shellquote_command_len " 2 9 0 0 0 +par_--shellquote_command_len " 2 10 0 0 0 +par_--shellquote_command_len " 3 1 1 2 10 +par_--shellquote_command_len " 3 2 1 2 16 +par_--shellquote_command_len " 3 3 1 2 34 +par_--shellquote_command_len " 3 4 1 2 88 +par_--shellquote_command_len " 3 5 1 2 250 +par_--shellquote_command_len " 3 6 1 2 736 +par_--shellquote_command_len " 3 7 0 0 0 +par_--shellquote_command_len " 3 8 0 0 0 +par_--shellquote_command_len " 3 9 0 0 0 +par_--shellquote_command_len " 3 10 0 0 0 +par_--shellquote_command_len " 4 1 1 2 12 +par_--shellquote_command_len " 4 2 1 2 18 +par_--shellquote_command_len " 4 3 1 2 36 +par_--shellquote_command_len " 4 4 1 2 90 +par_--shellquote_command_len " 4 5 1 2 252 +par_--shellquote_command_len " 4 6 1 2 738 +par_--shellquote_command_len " 4 7 0 0 0 +par_--shellquote_command_len " 4 8 0 0 0 +par_--shellquote_command_len " 4 9 0 0 0 +par_--shellquote_command_len " 4 10 0 0 0 +par_--shellquote_command_len " 5 1 1 2 14 +par_--shellquote_command_len " 5 2 1 2 20 +par_--shellquote_command_len " 5 3 1 2 38 +par_--shellquote_command_len " 5 4 1 2 92 +par_--shellquote_command_len " 5 5 1 2 254 +par_--shellquote_command_len " 5 6 1 2 740 +par_--shellquote_command_len " 5 7 0 0 0 +par_--shellquote_command_len " 5 8 0 0 0 +par_--shellquote_command_len " 5 9 0 0 0 +par_--shellquote_command_len " 5 10 0 0 0 +par_--shellquote_command_len " 6 1 1 2 16 +par_--shellquote_command_len " 6 2 1 2 22 +par_--shellquote_command_len " 6 3 1 2 40 +par_--shellquote_command_len " 6 4 1 2 94 +par_--shellquote_command_len " 6 5 1 2 256 +par_--shellquote_command_len " 6 6 1 2 742 +par_--shellquote_command_len " 6 7 0 0 0 +par_--shellquote_command_len " 6 8 0 0 0 +par_--shellquote_command_len " 6 9 0 0 0 +par_--shellquote_command_len " 6 10 0 0 0 +par_--shellquote_command_len " 7 1 1 2 18 +par_--shellquote_command_len " 7 2 1 2 24 +par_--shellquote_command_len " 7 3 1 2 42 +par_--shellquote_command_len " 7 4 1 2 96 +par_--shellquote_command_len " 7 5 1 2 258 +par_--shellquote_command_len " 7 6 1 2 744 +par_--shellquote_command_len " 7 7 0 0 0 +par_--shellquote_command_len " 7 8 0 0 0 +par_--shellquote_command_len " 7 9 0 0 0 +par_--shellquote_command_len " 7 10 0 0 0 +par_--shellquote_command_len " 8 1 1 2 20 +par_--shellquote_command_len " 8 2 1 2 26 +par_--shellquote_command_len " 8 3 1 2 44 +par_--shellquote_command_len " 8 4 1 2 98 +par_--shellquote_command_len " 8 5 1 2 260 +par_--shellquote_command_len " 8 6 1 2 746 +par_--shellquote_command_len " 8 7 0 0 0 +par_--shellquote_command_len " 8 8 0 0 0 +par_--shellquote_command_len " 8 9 0 0 0 +par_--shellquote_command_len " 8 10 0 0 0 +par_--shellquote_command_len " 9 1 1 2 22 +par_--shellquote_command_len " 9 2 1 2 28 +par_--shellquote_command_len " 9 3 1 2 46 +par_--shellquote_command_len " 9 4 1 2 100 +par_--shellquote_command_len " 9 5 1 2 262 +par_--shellquote_command_len " 9 6 0 0 0 +par_--shellquote_command_len " 9 7 0 0 0 +par_--shellquote_command_len " 9 8 0 0 0 +par_--shellquote_command_len " 9 9 0 0 0 +par_--shellquote_command_len " 9 10 0 0 0 +par_--shellquote_command_len " 10 1 1 2 24 +par_--shellquote_command_len " 10 2 1 2 30 +par_--shellquote_command_len " 10 3 1 2 48 +par_--shellquote_command_len " 10 4 1 2 102 +par_--shellquote_command_len " 10 5 1 2 264 +par_--shellquote_command_len " 10 6 0 0 0 +par_--shellquote_command_len " 10 7 0 0 0 +par_--shellquote_command_len " 10 8 0 0 0 +par_--shellquote_command_len " 10 9 0 0 0 +par_--shellquote_command_len " 10 10 0 0 0 +par_--shellquote_command_len ' 1 1 1 2 6 +par_--shellquote_command_len ' 1 2 1 2 12 +par_--shellquote_command_len ' 1 3 1 2 30 +par_--shellquote_command_len ' 1 4 1 2 84 +par_--shellquote_command_len ' 1 5 1 2 246 +par_--shellquote_command_len ' 1 6 1 2 732 +par_--shellquote_command_len ' 1 7 1 2 2190 +par_--shellquote_command_len ' 1 8 0 0 0 +par_--shellquote_command_len ' 1 9 0 0 0 +par_--shellquote_command_len ' 1 10 0 0 0 +par_--shellquote_command_len ' 2 1 1 2 8 +par_--shellquote_command_len ' 2 2 1 2 14 +par_--shellquote_command_len ' 2 3 1 2 32 +par_--shellquote_command_len ' 2 4 1 2 86 +par_--shellquote_command_len ' 2 5 1 2 248 +par_--shellquote_command_len ' 2 6 1 2 734 +par_--shellquote_command_len ' 2 7 1 2 2192 +par_--shellquote_command_len ' 2 8 0 0 0 +par_--shellquote_command_len ' 2 9 0 0 0 +par_--shellquote_command_len ' 2 10 0 0 0 +par_--shellquote_command_len ' 3 1 1 2 10 +par_--shellquote_command_len ' 3 2 1 2 16 +par_--shellquote_command_len ' 3 3 1 2 34 +par_--shellquote_command_len ' 3 4 1 2 88 +par_--shellquote_command_len ' 3 5 1 2 250 +par_--shellquote_command_len ' 3 6 1 2 736 +par_--shellquote_command_len ' 3 7 0 0 0 +par_--shellquote_command_len ' 3 8 0 0 0 +par_--shellquote_command_len ' 3 9 0 0 0 +par_--shellquote_command_len ' 3 10 0 0 0 +par_--shellquote_command_len ' 4 1 1 2 12 +par_--shellquote_command_len ' 4 2 1 2 18 +par_--shellquote_command_len ' 4 3 1 2 36 +par_--shellquote_command_len ' 4 4 1 2 90 +par_--shellquote_command_len ' 4 5 1 2 252 +par_--shellquote_command_len ' 4 6 1 2 738 +par_--shellquote_command_len ' 4 7 0 0 0 +par_--shellquote_command_len ' 4 8 0 0 0 +par_--shellquote_command_len ' 4 9 0 0 0 +par_--shellquote_command_len ' 4 10 0 0 0 +par_--shellquote_command_len ' 5 1 1 2 14 +par_--shellquote_command_len ' 5 2 1 2 20 +par_--shellquote_command_len ' 5 3 1 2 38 +par_--shellquote_command_len ' 5 4 1 2 92 +par_--shellquote_command_len ' 5 5 1 2 254 +par_--shellquote_command_len ' 5 6 1 2 740 +par_--shellquote_command_len ' 5 7 0 0 0 +par_--shellquote_command_len ' 5 8 0 0 0 +par_--shellquote_command_len ' 5 9 0 0 0 +par_--shellquote_command_len ' 5 10 0 0 0 +par_--shellquote_command_len ' 6 1 1 2 16 +par_--shellquote_command_len ' 6 2 1 2 22 +par_--shellquote_command_len ' 6 3 1 2 40 +par_--shellquote_command_len ' 6 4 1 2 94 +par_--shellquote_command_len ' 6 5 1 2 256 +par_--shellquote_command_len ' 6 6 1 2 742 +par_--shellquote_command_len ' 6 7 0 0 0 +par_--shellquote_command_len ' 6 8 0 0 0 +par_--shellquote_command_len ' 6 9 0 0 0 +par_--shellquote_command_len ' 6 10 0 0 0 +par_--shellquote_command_len ' 7 1 1 2 18 +par_--shellquote_command_len ' 7 2 1 2 24 +par_--shellquote_command_len ' 7 3 1 2 42 +par_--shellquote_command_len ' 7 4 1 2 96 +par_--shellquote_command_len ' 7 5 1 2 258 +par_--shellquote_command_len ' 7 6 1 2 744 +par_--shellquote_command_len ' 7 7 0 0 0 +par_--shellquote_command_len ' 7 8 0 0 0 +par_--shellquote_command_len ' 7 9 0 0 0 +par_--shellquote_command_len ' 7 10 0 0 0 +par_--shellquote_command_len ' 8 1 1 2 20 +par_--shellquote_command_len ' 8 2 1 2 26 +par_--shellquote_command_len ' 8 3 1 2 44 +par_--shellquote_command_len ' 8 4 1 2 98 +par_--shellquote_command_len ' 8 5 1 2 260 +par_--shellquote_command_len ' 8 6 1 2 746 +par_--shellquote_command_len ' 8 7 0 0 0 +par_--shellquote_command_len ' 8 8 0 0 0 +par_--shellquote_command_len ' 8 9 0 0 0 +par_--shellquote_command_len ' 8 10 0 0 0 +par_--shellquote_command_len ' 9 1 1 2 22 +par_--shellquote_command_len ' 9 2 1 2 28 +par_--shellquote_command_len ' 9 3 1 2 46 +par_--shellquote_command_len ' 9 4 1 2 100 +par_--shellquote_command_len ' 9 5 1 2 262 +par_--shellquote_command_len ' 9 6 0 0 0 +par_--shellquote_command_len ' 9 7 0 0 0 +par_--shellquote_command_len ' 9 8 0 0 0 +par_--shellquote_command_len ' 9 9 0 0 0 +par_--shellquote_command_len ' 9 10 0 0 0 +par_--shellquote_command_len ' 10 1 1 2 24 +par_--shellquote_command_len ' 10 2 1 2 30 +par_--shellquote_command_len ' 10 3 1 2 48 +par_--shellquote_command_len ' 10 4 1 2 102 +par_--shellquote_command_len ' 10 5 1 2 264 +par_--shellquote_command_len ' 10 6 0 0 0 +par_--shellquote_command_len ' 10 7 0 0 0 +par_--shellquote_command_len ' 10 8 0 0 0 +par_--shellquote_command_len ' 10 9 0 0 0 +par_--shellquote_command_len ' 10 10 0 0 0 +par_--shellquote_command_len " 1 8 parallel: Error: Command line too long (65xxx >= 63xxx) at input 0: " +par_--shellquote_command_len " 1 9 parallel: Error: Command line too long (196xxx >= 63xxx) at input 0: " +par_--shellquote_command_len " 1 10 parallel: Error: Command line too long (590xxx >= 63xxx) at input 0: " +par_--shellquote_command_len " 2 8 parallel: Error: Command line too long (131xxx >= 63xxx) at input 0: " +par_--shellquote_command_len " 2 9 parallel: Error: Command line too long (393xxx >= 63xxx) at input 0: " +par_--shellquote_command_len " 2 10 parallel: Error: Command line too long (1180xxx >= 63xxx) at input 0: " +par_--shellquote_command_len " 3 7 parallel: Error: Command line too long (65xxx >= 63xxx) at input 0: " +par_--shellquote_command_len " 3 8 parallel: Error: Command line too long (196xxx >= 63xxx) at input 0: " +par_--shellquote_command_len " 3 9 parallel: Error: Command line too long (590xxx >= 63xxx) at input 0: " +par_--shellquote_command_len " 3 10 parallel: Error: Command line too long (1771xxx >= 63xxx) at input 0: " +par_--shellquote_command_len " 4 7 parallel: Error: Command line too long (87xxx >= 63xxx) at input 0: " +par_--shellquote_command_len " 4 8 parallel: Error: Command line too long (262xxx >= 63xxx) at input 0: " +par_--shellquote_command_len " 4 9 parallel: Error: Command line too long (787xxx >= 63xxx) at input 0: " +par_--shellquote_command_len " 4 10 parallel: Error: Command line too long (2361xxx >= 63xxx) at input 0: " +par_--shellquote_command_len " 5 7 parallel: Error: Command line too long (109xxx >= 63xxx) at input 0: " +par_--shellquote_command_len " 5 8 parallel: Error: Command line too long (328xxx >= 63xxx) at input 0: " +par_--shellquote_command_len " 5 9 parallel: Error: Command line too long (984xxx >= 63xxx) at input 0: " +par_--shellquote_command_len " 5 10 parallel: Error: Command line too long (2952xxx >= 63xxx) at input 0: " +par_--shellquote_command_len " 6 7 parallel: Error: Command line too long (131xxx >= 63xxx) at input 0: " +par_--shellquote_command_len " 6 8 parallel: Error: Command line too long (393xxx >= 63xxx) at input 0: " +par_--shellquote_command_len " 6 9 parallel: Error: Command line too long (1180xxx >= 63xxx) at input 0: " +par_--shellquote_command_len " 6 10 parallel: Error: Command line too long (3542xxx >= 63xxx) at input 0: " +par_--shellquote_command_len " 7 7 parallel: Error: Command line too long (153xxx >= 63xxx) at input 0: " +par_--shellquote_command_len " 7 8 parallel: Error: Command line too long (459xxx >= 63xxx) at input 0: " +par_--shellquote_command_len " 7 9 parallel: Error: Command line too long (1377xxx >= 63xxx) at input 0: " +par_--shellquote_command_len " 7 10 parallel: Error: Command line too long (4133xxx >= 63xxx) at input 0: " +par_--shellquote_command_len " 8 7 parallel: Error: Command line too long (174xxx >= 63xxx) at input 0: " +par_--shellquote_command_len " 8 8 parallel: Error: Command line too long (524xxx >= 63xxx) at input 0: " +par_--shellquote_command_len " 8 9 parallel: Error: Command line too long (1574xxx >= 63xxx) at input 0: " +par_--shellquote_command_len " 8 10 parallel: Error: Command line too long (4723xxx >= 63xxx) at input 0: " +par_--shellquote_command_len " 9 6 parallel: Error: Command line too long (65xxx >= 63xxx) at input 0: " +par_--shellquote_command_len " 9 7 parallel: Error: Command line too long (196xxx >= 63xxx) at input 0: " +par_--shellquote_command_len " 9 8 parallel: Error: Command line too long (590xxx >= 63xxx) at input 0: " +par_--shellquote_command_len " 9 9 parallel: Error: Command line too long (1771xxx >= 63xxx) at input 0: " +par_--shellquote_command_len " 9 10 parallel: Error: Command line too long (5314xxx >= 63xxx) at input 0: " +par_--shellquote_command_len " 10 6 parallel: Error: Command line too long (72xxx >= 63xxx) at input 0: " +par_--shellquote_command_len " 10 7 parallel: Error: Command line too long (218xxx >= 63xxx) at input 0: " +par_--shellquote_command_len " 10 8 parallel: Error: Command line too long (656xxx >= 63xxx) at input 0: " +par_--shellquote_command_len " 10 9 parallel: Error: Command line too long (1968xxx >= 63xxx) at input 0: " +par_--shellquote_command_len " 10 10 parallel: Error: Command line too long (5904xxx >= 63xxx) at input 0: " +par_--shellquote_command_len ' 1 8 parallel: Error: Command line too long (65xxx >= 63xxx) at input 0: ' +par_--shellquote_command_len ' 1 9 parallel: Error: Command line too long (196xxx >= 63xxx) at input 0: ' +par_--shellquote_command_len ' 1 10 parallel: Error: Command line too long (590xxx >= 63xxx) at input 0: ' +par_--shellquote_command_len ' 2 8 parallel: Error: Command line too long (131xxx >= 63xxx) at input 0: '' +par_--shellquote_command_len ' 2 9 parallel: Error: Command line too long (393xxx >= 63xxx) at input 0: '' +par_--shellquote_command_len ' 2 10 parallel: Error: Command line too long (1180xxx >= 63xxx) at input 0: '' +par_--shellquote_command_len ' 3 7 parallel: Error: Command line too long (65xxx >= 63xxx) at input 0: ''' +par_--shellquote_command_len ' 3 8 parallel: Error: Command line too long (196xxx >= 63xxx) at input 0: ''' +par_--shellquote_command_len ' 3 9 parallel: Error: Command line too long (590xxx >= 63xxx) at input 0: ''' +par_--shellquote_command_len ' 3 10 parallel: Error: Command line too long (1771xxx >= 63xxx) at input 0: ''' +par_--shellquote_command_len ' 4 7 parallel: Error: Command line too long (87xxx >= 63xxx) at input 0: '''' +par_--shellquote_command_len ' 4 8 parallel: Error: Command line too long (262xxx >= 63xxx) at input 0: '''' +par_--shellquote_command_len ' 4 9 parallel: Error: Command line too long (787xxx >= 63xxx) at input 0: '''' +par_--shellquote_command_len ' 4 10 parallel: Error: Command line too long (2361xxx >= 63xxx) at input 0: '''' +par_--shellquote_command_len ' 5 7 parallel: Error: Command line too long (109xxx >= 63xxx) at input 0: ''''' +par_--shellquote_command_len ' 5 8 parallel: Error: Command line too long (328xxx >= 63xxx) at input 0: ''''' +par_--shellquote_command_len ' 5 9 parallel: Error: Command line too long (984xxx >= 63xxx) at input 0: ''''' +par_--shellquote_command_len ' 5 10 parallel: Error: Command line too long (2952xxx >= 63xxx) at input 0: ''''' +par_--shellquote_command_len ' 6 7 parallel: Error: Command line too long (131xxx >= 63xxx) at input 0: '''''' +par_--shellquote_command_len ' 6 8 parallel: Error: Command line too long (393xxx >= 63xxx) at input 0: '''''' +par_--shellquote_command_len ' 6 9 parallel: Error: Command line too long (1180xxx >= 63xxx) at input 0: '''''' +par_--shellquote_command_len ' 6 10 parallel: Error: Command line too long (3542xxx >= 63xxx) at input 0: '''''' +par_--shellquote_command_len ' 7 7 parallel: Error: Command line too long (153xxx >= 63xxx) at input 0: ''''''' +par_--shellquote_command_len ' 7 8 parallel: Error: Command line too long (459xxx >= 63xxx) at input 0: ''''''' +par_--shellquote_command_len ' 7 9 parallel: Error: Command line too long (1377xxx >= 63xxx) at input 0: ''''''' +par_--shellquote_command_len ' 7 10 parallel: Error: Command line too long (4133xxx >= 63xxx) at input 0: ''''''' +par_--shellquote_command_len ' 8 7 parallel: Error: Command line too long (174xxx >= 63xxx) at input 0: '''''''' +par_--shellquote_command_len ' 8 8 parallel: Error: Command line too long (524xxx >= 63xxx) at input 0: '''''''' +par_--shellquote_command_len ' 8 9 parallel: Error: Command line too long (1574xxx >= 63xxx) at input 0: '''''''' +par_--shellquote_command_len ' 8 10 parallel: Error: Command line too long (4723xxx >= 63xxx) at input 0: '''''''' +par_--shellquote_command_len ' 9 6 parallel: Error: Command line too long (65xxx >= 63xxx) at input 0: ''''''''' +par_--shellquote_command_len ' 9 7 parallel: Error: Command line too long (196xxx >= 63xxx) at input 0: ''''''''' +par_--shellquote_command_len ' 9 8 parallel: Error: Command line too long (590xxx >= 63xxx) at input 0: ''''''''' +par_--shellquote_command_len ' 9 9 parallel: Error: Command line too long (1771xxx >= 63xxx) at input 0: ''''''''' +par_--shellquote_command_len ' 9 10 parallel: Error: Command line too long (5314xxx >= 63xxx) at input 0: ''''''''' +par_--shellquote_command_len ' 10 6 parallel: Error: Command line too long (72xxx >= 63xxx) at input 0: '''''''''' +par_--shellquote_command_len ' 10 7 parallel: Error: Command line too long (218xxx >= 63xxx) at input 0: '''''''''' +par_--shellquote_command_len ' 10 8 parallel: Error: Command line too long (656xxx >= 63xxx) at input 0: '''''''''' +par_--shellquote_command_len ' 10 9 parallel: Error: Command line too long (1968xxx >= 63xxx) at input 0: '''''''''' +par_--shellquote_command_len ' 10 10 parallel: Error: Command line too long (5904xxx >= 63xxx) at input 0: '''''''''' +par_--controlmaster_eats bug #36707: --controlmaster eats jobs +par_--controlmaster_eats OK1 +par_--controlmaster_eats OK2 diff --git a/testsuite/wanted-results/parallel-local-ssh6 b/testsuite/wanted-results/parallel-local-ssh6 index 475bb7e2..dbba9688 100644 --- a/testsuite/wanted-results/parallel-local-ssh6 +++ b/testsuite/wanted-results/parallel-local-ssh6 @@ -18,6 +18,18 @@ par_onall_basefile_cleanup tmp/onall--basefile--clean par_onall_basefile_cleanup tmp/onall--basefile--clean par_onall_basefile_cleanup rm: cannot remove 'tmp/onall--basefile--clean': No such file or directory par_onall_basefile_cleanup rm: cannot remove 'tmp/onall--basefile--clean': No such file or directory +par_onall_timeout ### --timeout --onall on remote machines: 2*slept 1, 2 jobs failed +par_onall_timeout slept 1 +par_onall_timeout parallel: Warning: This job was killed because it timed out: +par_onall_timeout parallel: Warning: sleep 8; echo slept 8 +par_onall_timeout parallel: Warning: This job was killed because it timed out: +par_onall_timeout parallel: Warning: sleep 9; echo slept 9 +par_onall_timeout slept 1 +par_onall_timeout parallel: Warning: This job was killed because it timed out: +par_onall_timeout parallel: Warning: sleep 8; echo slept 8 +par_onall_timeout parallel: Warning: This job was killed because it timed out: +par_onall_timeout parallel: Warning: sleep 9; echo slept 9 +par_onall_timeout jobs failed: 2 par_read_sshloginfile_from_stdin ### Test read sshloginfile from STDIN par_read_sshloginfile_from_stdin /home/csh par_read_sshloginfile_from_stdin /home/parallel @@ -127,18 +139,6 @@ par_test_pipe_onall parallel@lo 3 par_test_pipe_onall parallel@lo 1 par_test_pipe_onall parallel@lo 2 par_test_pipe_onall parallel@lo 3 -par_timeout_onall ### --timeout --onall on remote machines: 2*slept 1, 2 jobs failed -par_timeout_onall slept 1 -par_timeout_onall parallel: Warning: This job was killed because it timed out: -par_timeout_onall parallel: Warning: sleep 8; echo slept 8 -par_timeout_onall parallel: Warning: This job was killed because it timed out: -par_timeout_onall parallel: Warning: sleep 9; echo slept 9 -par_timeout_onall slept 1 -par_timeout_onall parallel: Warning: This job was killed because it timed out: -par_timeout_onall parallel: Warning: sleep 8; echo slept 8 -par_timeout_onall parallel: Warning: This job was killed because it timed out: -par_timeout_onall parallel: Warning: sleep 9; echo slept 9 -par_timeout_onall jobs failed: 2 par_wd_braces ### Test --wd {} par_wd_braces wd1 par_wd_braces wd2 diff --git a/testsuite/wanted-results/parallel-local-ssh7 b/testsuite/wanted-results/parallel-local-ssh7 index 7d2174ed..5d64795f 100644 --- a/testsuite/wanted-results/parallel-local-ssh7 +++ b/testsuite/wanted-results/parallel-local-ssh7 @@ -1,2344 +1,2344 @@ ### test --env _, env_parallel for different shells -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 zsh:1: command not found: myfunc -par_zsh_underscore OK if no .^^^^^^^^^^^^^^^^^^^^^^^^^ myfunc -par_zsh_underscore script:2: 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_parset Exit value 2 = 2 -par_zsh_parset Exit value 2 = 2 -par_zsh_man ### zsh -par_zsh_man ### From man env_parallel -par_zsh_man aliases with = & " ! ' work -par_zsh_man aliases with = & " ! ' work -par_zsh_man aliases with = & " ! ' work -par_zsh_man aliases with = & " ! ' work -par_zsh_man aliases with = & " ! ' work -par_zsh_man multiline -par_zsh_man aliases with = & " ! ' work -par_zsh_man multiline -par_zsh_man aliases with = & " ! ' work -par_zsh_man multiline -par_zsh_man aliases with = & " ! ' work -par_zsh_man multiline -par_zsh_man aliases with = & " ! ' work -par_zsh_man multiline -par_zsh_man aliases with = & " ! ' work -par_zsh_man functions with = & " ! ' work -par_zsh_man functions with = & " ! ' work -par_zsh_man functions with = & " ! ' work -par_zsh_man functions with = & " ! ' work -par_zsh_man functions with = & " ! ' work -par_zsh_man variables with = & " ! ' work -par_zsh_man variables with = & " ! ' work -par_zsh_man variables with = & " ! ' work -par_zsh_man variables with = & " ! ' work -par_zsh_man variables with = & " ! ' work -par_zsh_man multiline -par_zsh_man variables with = & " ! ' work -par_zsh_man multiline -par_zsh_man variables with = & " ! ' work -par_zsh_man multiline -par_zsh_man variables with = & " ! ' work -par_zsh_man multiline -par_zsh_man variables with = & " ! ' work -par_zsh_man multiline -par_zsh_man variables with = & " ! ' work -par_zsh_man arrays with = & " ! ' work, too -par_zsh_man arrays -par_zsh_man with = & " ! ' -par_zsh_man work, -par_zsh_man too -par_zsh_man arrays -par_zsh_man with = & " ! ' -par_zsh_man work, -par_zsh_man too -par_zsh_man arrays -par_zsh_man with = & " ! ' -par_zsh_man work, -par_zsh_man too -par_zsh_man arrays -par_zsh_man with = & " ! ' -par_zsh_man work, -par_zsh_man too -par_zsh_man multi -par_zsh_man level -par_zsh_man env_parallel -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 C-] !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~M-M-]-funky -par_zsh_funky par_zsh_funky C-] !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~M-M-]-funky -par_zsh_funky space 6 -par_zsh_funky space 6 -par_zsh_funky ' ' -par_zsh_funky ' par_zsh_funky  !"#$%&'"'"'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~' -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 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 _which_PAR:XXX: argument list too long: perl -par_zsh_environment_too_big env_parallel: Error: Your environment is too big. -par_zsh_environment_too_big env_parallel: Error: You can try 3 different approaches: -par_zsh_environment_too_big env_parallel: Error: 1. Run 'env_parallel --session' before you set -par_zsh_environment_too_big env_parallel: Error: variables or define functions. -par_zsh_environment_too_big env_parallel: Error: 2. Use --env and only mention the names to copy. -par_zsh_environment_too_big env_parallel: Error: 3. Try running this in a clean environment once: -par_zsh_environment_too_big env_parallel: Error: env_parallel --record-env -par_zsh_environment_too_big env_parallel: Error: And then use '--env _' -par_zsh_environment_too_big env_parallel: Error: For details see: man env_parallel -par_zsh_environment_too_big _which_PAR:XXX: argument list too long: perl -par_zsh_environment_too_big env_parallel: Error: Your environment is too big. -par_zsh_environment_too_big env_parallel: Error: You can try 3 different approaches: -par_zsh_environment_too_big env_parallel: Error: 1. Run 'env_parallel --session' before you set -par_zsh_environment_too_big env_parallel: Error: variables or define functions. -par_zsh_environment_too_big env_parallel: Error: 2. Use --env and only mention the names to copy. -par_zsh_environment_too_big env_parallel: Error: 3. Try running this in a clean environment once: -par_zsh_environment_too_big env_parallel: Error: env_parallel --record-env -par_zsh_environment_too_big env_parallel: Error: And then use '--env _' -par_zsh_environment_too_big env_parallel: Error: For details see: man env_parallel -par_zsh_environment_too_big _which_PAR:XXX: argument list too long: perl -par_zsh_environment_too_big env_parallel: Error: Your environment is too big. -par_zsh_environment_too_big env_parallel: Error: You can try 3 different approaches: -par_zsh_environment_too_big env_parallel: Error: 1. Run 'env_parallel --session' before you set -par_zsh_environment_too_big env_parallel: Error: variables or define functions. -par_zsh_environment_too_big env_parallel: Error: 2. Use --env and only mention the names to copy. -par_zsh_environment_too_big env_parallel: Error: 3. Try running this in a clean environment once: -par_zsh_environment_too_big env_parallel: Error: env_parallel --record-env -par_zsh_environment_too_big env_parallel: Error: And then use '--env _' -par_zsh_environment_too_big env_parallel: Error: For details see: man env_parallel -par_zsh_environment_too_big _which_PAR:XXX: argument list too long: perl -par_zsh_environment_too_big env_parallel: Error: Your environment is too big. -par_zsh_environment_too_big env_parallel: Error: You can try 3 different approaches: -par_zsh_environment_too_big env_parallel: Error: 1. Run 'env_parallel --session' before you set -par_zsh_environment_too_big env_parallel: Error: variables or define functions. -par_zsh_environment_too_big env_parallel: Error: 2. Use --env and only mention the names to copy. -par_zsh_environment_too_big env_parallel: Error: 3. Try running this in a clean environment once: -par_zsh_environment_too_big env_parallel: Error: env_parallel --record-env -par_zsh_environment_too_big env_parallel: Error: And then use '--env _' -par_zsh_environment_too_big env_parallel: Error: For details see: man env_parallel -par_zsh_environment_too_big _which_PAR:XXX: argument list too long: perl -par_zsh_environment_too_big env_parallel: Error: Your environment is too big. -par_zsh_environment_too_big env_parallel: Error: You can try 3 different approaches: -par_zsh_environment_too_big env_parallel: Error: 1. Run 'env_parallel --session' before you set -par_zsh_environment_too_big env_parallel: Error: variables or define functions. -par_zsh_environment_too_big env_parallel: Error: 2. Use --env and only mention the names to copy. -par_zsh_environment_too_big env_parallel: Error: 3. Try running this in a clean environment once: -par_zsh_environment_too_big env_parallel: Error: env_parallel --record-env -par_zsh_environment_too_big env_parallel: Error: And then use '--env _' -par_zsh_environment_too_big env_parallel: Error: For details see: man env_parallel -par_zsh_environment_too_big _which_PAR:XXX: argument list too long: perl -par_zsh_environment_too_big env_parallel: Error: Your environment is too big. -par_zsh_environment_too_big env_parallel: Error: You can try 3 different approaches: -par_zsh_environment_too_big env_parallel: Error: 1. Run 'env_parallel --session' before you set -par_zsh_environment_too_big env_parallel: Error: variables or define functions. -par_zsh_environment_too_big env_parallel: Error: 2. Use --env and only mention the names to copy. -par_zsh_environment_too_big env_parallel: Error: 3. Try running this in a clean environment once: -par_zsh_environment_too_big env_parallel: Error: env_parallel --record-env -par_zsh_environment_too_big env_parallel: Error: And then use '--env _' -par_zsh_environment_too_big env_parallel: Error: For details see: man env_parallel -par_zsh_environment_too_big _which_PAR:XXX: argument list too long: perl -par_zsh_environment_too_big env_parallel: Error: Your environment is too big. -par_zsh_environment_too_big env_parallel: Error: You can try 3 different approaches: -par_zsh_environment_too_big env_parallel: Error: 1. Run 'env_parallel --session' before you set -par_zsh_environment_too_big env_parallel: Error: variables or define functions. -par_zsh_environment_too_big env_parallel: Error: 2. Use --env and only mention the names to copy. -par_zsh_environment_too_big env_parallel: Error: 3. Try running this in a clean environment once: -par_zsh_environment_too_big env_parallel: Error: env_parallel --record-env -par_zsh_environment_too_big env_parallel: Error: And then use '--env _' -par_zsh_environment_too_big env_parallel: Error: For details see: man env_parallel -par_zsh_environment_too_big _which_PAR:XXX: argument list too long: perl -par_zsh_environment_too_big env_parallel: Error: Your environment is too big. -par_zsh_environment_too_big env_parallel: Error: You can try 3 different approaches: -par_zsh_environment_too_big env_parallel: Error: 1. Run 'env_parallel --session' before you set -par_zsh_environment_too_big env_parallel: Error: variables or define functions. -par_zsh_environment_too_big env_parallel: Error: 2. Use --env and only mention the names to copy. -par_zsh_environment_too_big env_parallel: Error: 3. Try running this in a clean environment once: -par_zsh_environment_too_big env_parallel: Error: env_parallel --record-env -par_zsh_environment_too_big env_parallel: Error: And then use '--env _' -par_zsh_environment_too_big env_parallel: Error: For details see: man env_parallel -par_zsh_env_parallel_session ### Test env_parallel --session -par_zsh_env_parallel_session ### level0 should be hidden, level1 should be transferred -par_zsh_env_parallel_session -par_zsh_env_parallel_session fail -par_zsh_env_parallel_session (eval):1: command not found: level0func -par_zsh_env_parallel_session (eval):1: command not found: level0alias -par_zsh_env_parallel_session -par_zsh_env_parallel_session fail -par_zsh_env_parallel_session (eval):1: command not found: level0func -par_zsh_env_parallel_session (eval):1: command not found: level0alias -par_zsh_env_parallel_session l1var -par_zsh_env_parallel_session l1func -par_zsh_env_parallel_session l1alias -par_zsh_env_parallel_session level1 array OK -par_zsh_env_parallel_session l1var -par_zsh_env_parallel_session l1func -par_zsh_env_parallel_session l1alias -par_zsh_env_parallel_session level1 array OK -par_zsh_env_parallel_session ### level0+1 should be hidden, level2 should be transferred -par_zsh_env_parallel_session -par_zsh_env_parallel_session fail -par_zsh_env_parallel_session (eval):1: command not found: level0func -par_zsh_env_parallel_session (eval):1: command not found: level0alias -par_zsh_env_parallel_session -par_zsh_env_parallel_session fail -par_zsh_env_parallel_session (eval):1: command not found: level0func -par_zsh_env_parallel_session (eval):1: command not found: level0alias -par_zsh_env_parallel_session -par_zsh_env_parallel_session fail -par_zsh_env_parallel_session (eval):1: command not found: level1func -par_zsh_env_parallel_session (eval):1: command not found: level1alias -par_zsh_env_parallel_session -par_zsh_env_parallel_session fail -par_zsh_env_parallel_session (eval):1: command not found: level1func -par_zsh_env_parallel_session (eval):1: command not found: level1alias -par_zsh_env_parallel_session l2var -par_zsh_env_parallel_session l2func -par_zsh_env_parallel_session l2alias -par_zsh_env_parallel_session level2 array OK -par_zsh_env_parallel_session l2var -par_zsh_env_parallel_session l2func -par_zsh_env_parallel_session l2alias -par_zsh_env_parallel_session level2 array OK -par_zsh_env_parallel_session ### level0 should be hidden, level1+2 should be transferred -par_zsh_env_parallel_session -par_zsh_env_parallel_session fail -par_zsh_env_parallel_session (eval):1: command not found: level0func -par_zsh_env_parallel_session (eval):1: command not found: level0alias -par_zsh_env_parallel_session -par_zsh_env_parallel_session fail -par_zsh_env_parallel_session (eval):1: command not found: level0func -par_zsh_env_parallel_session (eval):1: command not found: level0alias -par_zsh_env_parallel_session l1var -par_zsh_env_parallel_session l1func -par_zsh_env_parallel_session l1alias -par_zsh_env_parallel_session level1 array OK -par_zsh_env_parallel_session l1var -par_zsh_env_parallel_session l1func -par_zsh_env_parallel_session l1alias -par_zsh_env_parallel_session level1 array OK -par_zsh_env_parallel_session l2var -par_zsh_env_parallel_session l2func -par_zsh_env_parallel_session l2alias -par_zsh_env_parallel_session level2 array OK -par_zsh_env_parallel_session l2var -par_zsh_env_parallel_session l2func -par_zsh_env_parallel_session l2alias -par_zsh_env_parallel_session level2 array OK -par_zsh_env_parallel_session ### level0+1+2 should be transferred -par_zsh_env_parallel_session l0var -par_zsh_env_parallel_session l0func -par_zsh_env_parallel_session l0alias -par_zsh_env_parallel_session level0 array OK -par_zsh_env_parallel_session l0var -par_zsh_env_parallel_session l0func -par_zsh_env_parallel_session l0alias -par_zsh_env_parallel_session level0 array OK -par_zsh_env_parallel_session l1var -par_zsh_env_parallel_session l1func -par_zsh_env_parallel_session l1alias -par_zsh_env_parallel_session level1 array OK -par_zsh_env_parallel_session l1var -par_zsh_env_parallel_session l1func -par_zsh_env_parallel_session l1alias -par_zsh_env_parallel_session level1 array OK -par_zsh_env_parallel_session l2var -par_zsh_env_parallel_session l2func -par_zsh_env_parallel_session l2alias -par_zsh_env_parallel_session level2 array OK -par_zsh_env_parallel_session l2var -par_zsh_env_parallel_session l2func -par_zsh_env_parallel_session l2alias -par_zsh_env_parallel_session level2 array OK -par_zsh_env_parallel_session zsh:1: command not found: aliasbefore -par_zsh_env_parallel_session script:2: command not found: aliasbefore -par_zsh_env_parallel_session zsh:1: command not found: funcbefore -par_zsh_env_parallel_session script:2: command not found: funcbefore -par_zsh_env_parallel_session no_before -par_zsh_env_parallel_session no_before -par_zsh_env_parallel_session no_before -par_zsh_env_parallel_session no_before -par_zsh_env_parallel_session after aliasafter_OK -par_zsh_env_parallel_session after aliasafter_OK -par_zsh_env_parallel_session after funcafter_OK -par_zsh_env_parallel_session after funcafter_OK -par_zsh_env_parallel_session after varafter_OK -par_zsh_env_parallel_session after varafter_OK -par_zsh_env_parallel_session array after arrayafter_OK -par_zsh_env_parallel_session array after arrayafter_OK -par_zsh_env_parallel OK -par_zsh_env_parallel OK -par_zsh_env_parallel alias line 1 -par_zsh_env_parallel alias line 1 -par_zsh_env_parallel alias line 2 -par_zsh_env_parallel alias line 2 -par_zsh_env_parallel alias line 3 -par_zsh_env_parallel alias line 3 -par_zsh_env_parallel alias2 line 1 -par_zsh_env_parallel alias2 line 1 -par_zsh_env_parallel alias2 line 2 -par_zsh_env_parallel alias2 line 2 -par_zsh_env_parallel bug #50435: Remote fifo broke in 20150522 -par_zsh_env_parallel bug #52534: Tail of multiline alias is ignored -par_zsh_env_parallel data from stdin -par_zsh_env_parallel data from stdin -par_tcsh_underscore ### tcsh -par_tcsh_underscore ### Testing of --env _ par_tcsh_underscore -par_tcsh_underscore #: Command not found. par_tcsh_underscore -par_tcsh_underscore variables and arrays in aliases work par_tcsh_underscore -par_tcsh_underscore variables and arrays in aliases work par_tcsh_underscore -par_tcsh_underscore variables and arrays in aliases work par_tcsh_underscore -par_tcsh_underscore variables and arrays in aliases work par_tcsh_underscore -par_tcsh_underscore variables and arrays in aliases work par_tcsh_underscore -par_tcsh_underscore variables and arrays in aliases work par_tcsh_underscore -par_tcsh_underscore myvar: Undefined variable. par_tcsh_underscore -par_tcsh_underscore myvar: Undefined variable. par_tcsh_underscore -par_tcsh_underscore myarray: Undefined variable. par_tcsh_underscore -par_tcsh_underscore myarray: Undefined variable. par_tcsh_underscore -par_tcsh_underscore myecho: Command not found. par_tcsh_underscore -par_tcsh_underscore OK ^^^^^^^^^^^^^^^^^ if no myecho par_tcsh_underscore -par_tcsh_underscore myecho: Command not found. par_tcsh_underscore -par_tcsh_underscore OK ^^^^^^^^^^^^^^^^^ if no myecho par_tcsh_underscore -par_tcsh_underscore Connection to lo closed. par_tcsh_underscore -par_tcsh_parset Not implemented -par_tcsh_man ### tcsh -par_tcsh_man ### From man env_parallel par_tcsh_man -par_tcsh_man #: Command not found. par_tcsh_man -par_tcsh_man aliases with = & " work par_tcsh_man -par_tcsh_man aliases with = & " work par_tcsh_man -par_tcsh_man aliases with = & " work par_tcsh_man -par_tcsh_man aliases with = & " work par_tcsh_man -par_tcsh_man Functions not supported par_tcsh_man -par_tcsh_man #: Command not found. par_tcsh_man -par_tcsh_man #: Command not found. par_tcsh_man -par_tcsh_man variables with = & " work par_tcsh_man -par_tcsh_man variables with = & " work par_tcsh_man -par_tcsh_man variables with = & " work par_tcsh_man -par_tcsh_man variables with = & " work par_tcsh_man -par_tcsh_man #: Command not found. par_tcsh_man -par_tcsh_man arrays par_tcsh_man -par_tcsh_man with=&"' par_tcsh_man -par_tcsh_man work, par_tcsh_man -par_tcsh_man too par_tcsh_man -par_tcsh_man arrays par_tcsh_man -par_tcsh_man with=&"' par_tcsh_man -par_tcsh_man work, par_tcsh_man -par_tcsh_man too par_tcsh_man -par_tcsh_man arrays par_tcsh_man -par_tcsh_man with=&"' par_tcsh_man -par_tcsh_man work, par_tcsh_man -par_tcsh_man too par_tcsh_man -par_tcsh_man arrays par_tcsh_man -par_tcsh_man with=&"' par_tcsh_man -par_tcsh_man work, par_tcsh_man -par_tcsh_man too par_tcsh_man -par_tcsh_man Segmentation faults? Are you running bsd-csh version 20110502-3? par_tcsh_man -par_tcsh_man multi par_tcsh_man -par_tcsh_man level par_tcsh_man -par_tcsh_man env_parallel par_tcsh_man -par_tcsh_man exit value 2 should be 2 par_tcsh_man -par_tcsh_man Unknown option: no-such-option par_tcsh_man -par_tcsh_man Usage: par_tcsh_man -par_tcsh_man par_tcsh_man -par_tcsh_man parallel [options] [command [arguments]] < list_of_arguments par_tcsh_man -par_tcsh_man parallel [options] [command [arguments]] (::: arguments|:::: argfile(s))... par_tcsh_man -par_tcsh_man cat ... | parallel --pipe [options] [command [arguments]] par_tcsh_man -par_tcsh_man par_tcsh_man -par_tcsh_man -j n Run n jobs in parallel par_tcsh_man -par_tcsh_man -k Keep same order par_tcsh_man -par_tcsh_man -X Multiple arguments with context replace par_tcsh_man -par_tcsh_man --colsep regexp Split input on regexp for positional replacements par_tcsh_man -par_tcsh_man {} {.} {/} {/.} {#} {%} {= perl code =} Replacement strings par_tcsh_man -par_tcsh_man {3} {3.} {3/} {3/.} {=3 perl code =} Positional replacement strings par_tcsh_man -par_tcsh_man With --plus: {} = {+/}/{/} = {.}.{+.} = {+/}/{/.}.{+.} = {..}.{+..} = par_tcsh_man -par_tcsh_man {+/}/{/..}.{+..} = {...}.{+...} = {+/}/{/...}.{+...} par_tcsh_man -par_tcsh_man par_tcsh_man -par_tcsh_man -S sshlogin Example: foo@server.example.com par_tcsh_man -par_tcsh_man --slf .. Use ~/.parallel/sshloginfile as the list of sshlogins par_tcsh_man -par_tcsh_man --trc {}.bar Shorthand for --transfer --return {}.bar --cleanup par_tcsh_man -par_tcsh_man --onall Run the given command with argument on all sshlogins par_tcsh_man -par_tcsh_man --nonall Run the given command with no arguments on all sshlogins par_tcsh_man -par_tcsh_man par_tcsh_man -par_tcsh_man --pipe Split stdin (standard input) to multiple jobs. par_tcsh_man -par_tcsh_man --recend str Record end separator for --pipe. par_tcsh_man -par_tcsh_man --recstart str Record start separator for --pipe. par_tcsh_man -par_tcsh_man par_tcsh_man -par_tcsh_man GNU Parallel can do much more. See 'man parallel' for details par_tcsh_man -par_tcsh_man par_tcsh_man -par_tcsh_man Academic tradition requires you to cite works you base your article on. par_tcsh_man -par_tcsh_man If you use programs that use GNU Parallel to process data for an article in a par_tcsh_man -par_tcsh_man scientific publication, please cite: par_tcsh_man -par_tcsh_man par_tcsh_man +par_--env_underscore_ash ### ash +par_--env_underscore_ash ### Testing of --env _ +par_--env_underscore_ash variables in aliases work +par_--env_underscore_ash variables in aliases work +par_--env_underscore_ash variables in aliases work +par_--env_underscore_ash variables in aliases work +par_--env_underscore_ash script: 4: not_copied_alias: not found +par_--env_underscore_ash error=OK +par_--env_underscore_ash aliases work +par_--env_underscore_ash aliases work +par_--env_underscore_ash /bin/ash: 1: myecho: not found +par_--env_underscore_ash OK if no myecho ^^^^^^^^^^^^^^^^^ +par_--env_underscore_ash script: 2: myecho: not found +par_--env_underscore_ash OK if no myecho ^^^^^^^^^^^^^^^^^ +par_--env_underscore_bash ### bash +par_--env_underscore_bash ### Testing of --env _ +par_--env_underscore_bash variables in aliases in and arrays in functions work +par_--env_underscore_bash variables in aliases in and arrays in functions work +par_--env_underscore_bash variables in aliases in and arrays in functions work +par_--env_underscore_bash variables in aliases in and arrays in functions work +par_--env_underscore_bash variables in aliases in and arrays in functions work +par_--env_underscore_bash variables in aliases in and arrays in functions work +par_--env_underscore_bash script: line XXX: not_copied_alias: command not found +par_--env_underscore_bash script: line XXX: not_copied_func: command not found +par_--env_underscore_bash error=OK +par_--env_underscore_bash error=OK +par_--env_underscore_bash aliases in and arrays in functions work +par_--env_underscore_bash aliases in and arrays in functions work +par_--env_underscore_bash aliases in functions work +par_--env_underscore_bash aliases in functions work +par_--env_underscore_bash environment: line XXX: myecho: command not found +par_--env_underscore_bash OK if no myecho ^^^^^^^^^^^^^^^^^^^^^^^^^ +par_--env_underscore_bash script: line XXX: myecho: command not found +par_--env_underscore_bash OK if no myecho ^^^^^^^^^^^^^^^^^^^^^^^^^ +par_--env_underscore_bash /bin/bash: line XXX: myfunc: command not found +par_--env_underscore_bash OK if no myfunc ^^^^^^^^^^^^^^^^^^^^^^^^^ +par_--env_underscore_bash script: line XXX: myfunc: command not found +par_--env_underscore_bash OK if no myfunc ^^^^^^^^^^^^^^^^^^^^^^^^^ +par_--env_underscore_csh ### csh +par_--env_underscore_csh ### Testing of --env _ par_--env_underscore_csh +par_--env_underscore_csh #: Command not found. par_--env_underscore_csh +par_--env_underscore_csh variables and arrays in aliases work par_--env_underscore_csh +par_--env_underscore_csh variables and arrays in aliases work par_--env_underscore_csh +par_--env_underscore_csh variables and arrays in aliases work par_--env_underscore_csh +par_--env_underscore_csh variables and arrays in aliases work par_--env_underscore_csh +par_--env_underscore_csh variables and arrays in aliases work par_--env_underscore_csh +par_--env_underscore_csh variables and arrays in aliases work par_--env_underscore_csh +par_--env_underscore_csh myvar: Undefined variable. par_--env_underscore_csh +par_--env_underscore_csh myvar: Undefined variable. par_--env_underscore_csh +par_--env_underscore_csh myarray: Undefined variable. par_--env_underscore_csh +par_--env_underscore_csh myarray: Undefined variable. par_--env_underscore_csh +par_--env_underscore_csh myecho: Command not found. par_--env_underscore_csh +par_--env_underscore_csh OK ^^^^^^^^^^^^^^^^^ if no myecho par_--env_underscore_csh +par_--env_underscore_csh myecho: Command not found. par_--env_underscore_csh +par_--env_underscore_csh OK ^^^^^^^^^^^^^^^^^ if no myecho par_--env_underscore_csh +par_--env_underscore_csh Connection to lo closed. par_--env_underscore_csh +par_--env_underscore_dash ### dash +par_--env_underscore_dash ### Testing of --env _ +par_--env_underscore_dash variables in aliases work +par_--env_underscore_dash variables in aliases work +par_--env_underscore_dash variables in aliases work +par_--env_underscore_dash variables in aliases work +par_--env_underscore_dash script: 4: not_copied_alias: not found +par_--env_underscore_dash error=OK +par_--env_underscore_dash aliases work +par_--env_underscore_dash aliases work +par_--env_underscore_dash /bin/dash: 1: myecho: not found +par_--env_underscore_dash OK if no myecho ^^^^^^^^^^^^^^^^^ +par_--env_underscore_dash script: 2: myecho: not found +par_--env_underscore_dash OK if no myecho ^^^^^^^^^^^^^^^^^ +par_--env_underscore_fish ### fish +par_--env_underscore_fish Fish is broken +par_--env_underscore_fish ### Testing of --env _ +par_--env_underscore_fish Test copying +par_--env_underscore_fish variables in aliases and arrays in functions work +par_--env_underscore_fish variables in aliases and arrays in functions work +par_--env_underscore_fish variables in aliases and arrays in functions work +par_--env_underscore_fish variables in aliases and arrays in functions work +par_--env_underscore_fish variables in aliases and arrays in functions work +par_--env_underscore_fish variables in aliases and arrays in functions work +par_--env_underscore_fish Test ignoring +par_--env_underscore_fish script (line XXX): +par_--env_underscore_fish not_copied_alias 'error=OK' +par_--env_underscore_fish ^ +par_--env_underscore_fish script (line XXX): +par_--env_underscore_fish not_copied_func 'error=OK' +par_--env_underscore_fish ^ +par_--env_underscore_fish error=OK +par_--env_underscore_fish error=OK +par_--env_underscore_fish Test single ignoring +par_--env_underscore_fish aliases and arrays in functions work +par_--env_underscore_fish aliases and arrays in functions work +par_--env_underscore_fish aliases functions work +par_--env_underscore_fish aliases functions work +par_--env_underscore_fish myecho $myarray functions $argv +par_--env_underscore_fish ^ +par_--env_underscore_fish in function 'myfunc' with arguments 'work' +par_--env_underscore_fish OK if ^^^^^^^^^^^^^^^^^ no myecho +par_--env_underscore_fish script (line 4): +par_--env_underscore_fish myecho $myarray functions $argv +par_--env_underscore_fish ^ +par_--env_underscore_fish in function 'myfunc' with arguments 'work' +par_--env_underscore_fish called on line XXX of file script +par_--env_underscore_fish OK if ^^^^^^^^^^^^^^^^^ no myecho +par_--env_underscore_fish myfunc work +par_--env_underscore_fish ^ +par_--env_underscore_fish OK if ^^^^^^^^^^^^^^^^^ no myfunc +par_--env_underscore_fish script (line 6): +par_--env_underscore_fish myfunc work +par_--env_underscore_fish ^ +par_--env_underscore_fish OK if ^^^^^^^^^^^^^^^^^ no myfunc +par_--env_underscore_ksh ### ksh +par_--env_underscore_ksh ### Testing of --env _ +par_--env_underscore_ksh variables in aliases in and arrays in functions work +par_--env_underscore_ksh variables in aliases in and arrays in functions work +par_--env_underscore_ksh variables in aliases in and arrays in functions work +par_--env_underscore_ksh variables in aliases in and arrays in functions work +par_--env_underscore_ksh variables in aliases in and arrays in functions work +par_--env_underscore_ksh variables in aliases in and arrays in functions work +par_--env_underscore_ksh script: line 5: not_copied_alias: not found +par_--env_underscore_ksh script: line 5: not_copied_func: not found +par_--env_underscore_ksh error=OK +par_--env_underscore_ksh error=OK +par_--env_underscore_ksh aliases in and arrays in functions work +par_--env_underscore_ksh aliases in and arrays in functions work +par_--env_underscore_ksh aliases in functions work +par_--env_underscore_ksh aliases in functions work +par_--env_underscore_ksh /bin/ksh: myecho: not found +par_--env_underscore_ksh OK if no myecho ^^^^^^^^^^^^^^^^^ +par_--env_underscore_ksh script[9]: myecho: not found +par_--env_underscore_ksh OK if no myecho ^^^^^^^^^^^^^^^^^ +par_--env_underscore_ksh /bin/ksh: myfunc: not found +par_--env_underscore_ksh OK if no myfunc ^^^^^^^^^^^^^^^^^ +par_--env_underscore_ksh script: line 2: myfunc: not found +par_--env_underscore_ksh OK if no myfunc ^^^^^^^^^^^^^^^^^ +par_--env_underscore_mksh ### mksh +par_--env_underscore_mksh ### Testing of --env _ +par_--env_underscore_mksh variables in aliases in and arrays in functions work +par_--env_underscore_mksh variables in aliases in and arrays in functions work +par_--env_underscore_mksh variables in aliases in and arrays in functions work +par_--env_underscore_mksh variables in aliases in and arrays in functions work +par_--env_underscore_mksh variables in aliases in and arrays in functions work +par_--env_underscore_mksh variables in aliases in and arrays in functions work +par_--env_underscore_mksh W: script[9]: not_copied_alias: inaccessible or not found +par_--env_underscore_mksh W: script[9]: not_copied_func: inaccessible or not found +par_--env_underscore_mksh error=OK +par_--env_underscore_mksh error=OK +par_--env_underscore_mksh aliases in and arrays in functions work +par_--env_underscore_mksh aliases in and arrays in functions work +par_--env_underscore_mksh aliases in functions work +par_--env_underscore_mksh aliases in functions work +par_--env_underscore_mksh aliases in functions work +par_--env_underscore_mksh OK if no myecho ^^^^^^^^^^^^^^^^^ +par_--env_underscore_mksh aliases in functions work +par_--env_underscore_mksh OK if no myecho ^^^^^^^^^^^^^^^^^ +par_--env_underscore_mksh W: /bin/mksh: myfunc: inaccessible or not found +par_--env_underscore_mksh OK if no myfunc ^^^^^^^^^^^^^^^^^ +par_--env_underscore_mksh W: script[9]: myfunc: inaccessible or not found +par_--env_underscore_mksh OK if no myfunc ^^^^^^^^^^^^^^^^^ +par_--env_underscore_sh ### sh +par_--env_underscore_sh ### Testing of --env _ +par_--env_underscore_sh variables in aliases work +par_--env_underscore_sh variables in aliases work +par_--env_underscore_sh variables in aliases work +par_--env_underscore_sh variables in aliases work +par_--env_underscore_sh script: 4: not_copied_alias: not found +par_--env_underscore_sh error=OK +par_--env_underscore_sh aliases work +par_--env_underscore_sh aliases work +par_--env_underscore_sh /bin/sh: 1: myecho: not found +par_--env_underscore_sh OK if no myecho ^^^^^^^^^^^^^^^^^ +par_--env_underscore_sh script: 2: myecho: not found +par_--env_underscore_sh OK if no myecho ^^^^^^^^^^^^^^^^^ +par_--env_underscore_tcsh ### tcsh +par_--env_underscore_tcsh ### Testing of --env _ par_--env_underscore_tcsh +par_--env_underscore_tcsh #: Command not found. par_--env_underscore_tcsh +par_--env_underscore_tcsh variables and arrays in aliases work par_--env_underscore_tcsh +par_--env_underscore_tcsh variables and arrays in aliases work par_--env_underscore_tcsh +par_--env_underscore_tcsh variables and arrays in aliases work par_--env_underscore_tcsh +par_--env_underscore_tcsh variables and arrays in aliases work par_--env_underscore_tcsh +par_--env_underscore_tcsh variables and arrays in aliases work par_--env_underscore_tcsh +par_--env_underscore_tcsh variables and arrays in aliases work par_--env_underscore_tcsh +par_--env_underscore_tcsh myvar: Undefined variable. par_--env_underscore_tcsh +par_--env_underscore_tcsh myvar: Undefined variable. par_--env_underscore_tcsh +par_--env_underscore_tcsh myarray: Undefined variable. par_--env_underscore_tcsh +par_--env_underscore_tcsh myarray: Undefined variable. par_--env_underscore_tcsh +par_--env_underscore_tcsh myecho: Command not found. par_--env_underscore_tcsh +par_--env_underscore_tcsh OK ^^^^^^^^^^^^^^^^^ if no myecho par_--env_underscore_tcsh +par_--env_underscore_tcsh myecho: Command not found. par_--env_underscore_tcsh +par_--env_underscore_tcsh OK ^^^^^^^^^^^^^^^^^ if no myecho par_--env_underscore_tcsh +par_--env_underscore_tcsh Connection to lo closed. par_--env_underscore_tcsh +par_--env_underscore_zsh ### zsh +par_--env_underscore_zsh ### Testing of --env _ +par_--env_underscore_zsh variables in aliases in and arrays in functions work +par_--env_underscore_zsh variables in aliases in and arrays in functions work +par_--env_underscore_zsh variables in aliases in and arrays in functions work +par_--env_underscore_zsh variables in aliases in and arrays in functions work +par_--env_underscore_zsh variables in aliases in and arrays in functions work +par_--env_underscore_zsh variables in aliases in and arrays in functions work +par_--env_underscore_zsh (eval):1: command not found: not_copied_alias +par_--env_underscore_zsh (eval):1: command not found: not_copied_func +par_--env_underscore_zsh BAD error=OK +par_--env_underscore_zsh error=OK +par_--env_underscore_zsh aliases in and arrays in functions work +par_--env_underscore_zsh aliases in and arrays in functions work +par_--env_underscore_zsh aliases in functions work +par_--env_underscore_zsh aliases in functions work +par_--env_underscore_zsh (eval):1: command not found: myecho +par_--env_underscore_zsh OK if no .^^^^^^^^^^^^^^^^^^^^^^^^^ myecho +par_--env_underscore_zsh (eval):1: command not found: myecho +par_--env_underscore_zsh OK if no .^^^^^^^^^^^^^^^^^^^^^^^^^ myecho +par_--env_underscore_zsh zsh:1: command not found: myfunc +par_--env_underscore_zsh OK if no .^^^^^^^^^^^^^^^^^^^^^^^^^ myfunc +par_--env_underscore_zsh script:2: command not found: myfunc +par_--env_underscore_zsh OK if no .^^^^^^^^^^^^^^^^^^^^^^^^^ myfunc +par__man_ash ### ash +par__man_ash ### From man env_parallel +par__man_ash aliases with = & " ! ' work +par__man_ash aliases with = & " ! ' work +par__man_ash aliases with = & " ! ' work +par__man_ash aliases with = & " ! ' work +par__man_ash aliases with = & " ! ' work +par__man_ash multiline +par__man_ash aliases with = & " ! ' work +par__man_ash multiline +par__man_ash aliases with = & " ! ' work +par__man_ash multiline +par__man_ash aliases with = & " ! ' work +par__man_ash multiline +par__man_ash aliases with = & " ! ' work +par__man_ash multiline +par__man_ash aliases with = & " ! ' work +par__man_ash variables with = & " ! ' work +par__man_ash variables with = & " ! ' work +par__man_ash variables with = & " ! ' work +par__man_ash variables with = & " ! ' work +par__man_ash variables with = & " ! ' work +par__man_ash multiline +par__man_ash variables with = & " ! ' work +par__man_ash multiline +par__man_ash variables with = & " ! ' work +par__man_ash multiline +par__man_ash variables with = & " ! ' work +par__man_ash multiline +par__man_ash variables with = & " ! ' work +par__man_ash multiline +par__man_ash variables with = & " ! ' work +par__man_ash exit value 2 should be 2 +par__man_ash Unknown option: no-such-option +par__man_ash exit value 255 should be 255 +par__man_bash ### bash +par__man_bash ### From man env_parallel +par__man_bash aliases with = & " ! ' work +par__man_bash aliases with = & " ! ' work +par__man_bash aliases with = & " ! ' work +par__man_bash aliases with = & " ! ' work +par__man_bash aliases with = & " ! ' work +par__man_bash multiline +par__man_bash aliases with = & " ! ' work +par__man_bash env_parallel: Warning: Alias 'multiline' contains newline. +par__man_bash env_parallel: Warning: Make sure the command has at least one newline after 'multiline'. +par__man_bash env_parallel: Warning: See BUGS in 'man env_parallel'. +par__man_bash multiline +par__man_bash aliases with = & " ! ' work +par__man_bash but only when followed by a newline +par__man_bash env_parallel: Warning: Alias 'multiline' contains newline. +par__man_bash env_parallel: Warning: Make sure the command has at least one newline after 'multiline'. +par__man_bash env_parallel: Warning: See BUGS in 'man env_parallel'. +par__man_bash multiline +par__man_bash aliases with = & " ! ' work +par__man_bash but only when followed by a newline +par__man_bash env_parallel: Warning: Alias 'multiline' contains newline. +par__man_bash env_parallel: Warning: Make sure the command has at least one newline after 'multiline'. +par__man_bash env_parallel: Warning: See BUGS in 'man env_parallel'. +par__man_bash multiline +par__man_bash aliases with = & " ! ' work +par__man_bash but only when followed by a newline +par__man_bash env_parallel: Warning: Alias 'multiline' contains newline. +par__man_bash env_parallel: Warning: Make sure the command has at least one newline after 'multiline'. +par__man_bash env_parallel: Warning: See BUGS in 'man env_parallel'. +par__man_bash multiline +par__man_bash aliases with = & " ! ' work +par__man_bash but only when followed by a newline +par__man_bash functions with = & " ! ' work +par__man_bash functions with = & " ! ' work +par__man_bash functions with = & " ! ' work +par__man_bash functions with = & " ! ' work +par__man_bash functions with = & " ! ' work +par__man_bash variables with = & " ! ' work +par__man_bash variables with = & " ! ' work +par__man_bash variables with = & " ! ' work +par__man_bash variables with = & " ! ' work +par__man_bash variables with = & " ! ' work +par__man_bash multiline +par__man_bash variables with = & " ! ' work +par__man_bash multiline +par__man_bash variables with = & " ! ' work +par__man_bash multiline +par__man_bash variables with = & " ! ' work +par__man_bash multiline +par__man_bash variables with = & " ! ' work +par__man_bash multiline +par__man_bash variables with = & " ! ' work +par__man_bash arrays with = & " ! ' work, too +par__man_bash arrays +par__man_bash with = & " ! ' +par__man_bash work, +par__man_bash too +par__man_bash arrays +par__man_bash with = & " ! ' +par__man_bash work, +par__man_bash too +par__man_bash arrays +par__man_bash with = & " ! ' +par__man_bash work, +par__man_bash too +par__man_bash arrays +par__man_bash with = & " ! ' +par__man_bash work, +par__man_bash too +par__man_bash multi +par__man_bash level +par__man_bash env_parallel +par__man_bash exit value 2 should be 2 +par__man_bash Unknown option: no-such-option +par__man_bash exit value 255 should be 255 +par__man_csh ### csh +par__man_csh +par__man_csh +par__man_csh +par__man_csh +par__man_csh +par__man_csh +par__man_csh +par__man_csh +par__man_csh +par__man_csh {+/}/{/..}.{+..} = {...}.{+...} = {+/}/{/...}.{+...} -par_tcsh_man par_tcsh_man -par_tcsh_man This helps funding further development; AND IT WON'T COST YOU A CENT. par_tcsh_man -par_tcsh_man If you pay 10000 EUR you should feel free to use GNU Parallel without citing. par_tcsh_man -par_tcsh_man par_tcsh_man -par_tcsh_man exit value 255 should be 255 par_tcsh_man -par_tcsh_man Connection to lo closed. par_tcsh_man -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- par_tcsh_funky  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~-funky alias_var_works -par_tcsh_funky Funky- par_tcsh_funky  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~-funky alias_var_works_over_ssh -par_tcsh_funky \\\\\\\\ \ \ \ \ 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_session Not implemented -par_tcsh_env_parallel OK -par_tcsh_env_parallel OK -par_tcsh_env_parallel bug #50435: Remote fifo broke in 20150522 -par_tcsh_env_parallel data from stdin -par_tcsh_env_parallel data from stdin -par_sh_underscore ### sh -par_sh_underscore ### Testing of --env _ -par_sh_underscore variables in aliases work -par_sh_underscore variables in aliases work -par_sh_underscore variables in aliases work -par_sh_underscore variables in aliases work -par_sh_underscore script: 4: not_copied_alias: not found -par_sh_underscore error=OK -par_sh_underscore aliases work -par_sh_underscore aliases work -par_sh_underscore /bin/sh: 1: myecho: not found -par_sh_underscore OK if no myecho ^^^^^^^^^^^^^^^^^ -par_sh_underscore script: 2: myecho: not found -par_sh_underscore OK if no myecho ^^^^^^^^^^^^^^^^^ -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_parset Exit value 2 = 2 -par_sh_parset Exit value 2 = 2 -par_sh_man ### sh -par_sh_man ### From man env_parallel -par_sh_man aliases with = & " ! ' work -par_sh_man aliases with = & " ! ' work -par_sh_man aliases with = & " ! ' work -par_sh_man aliases with = & " ! ' work -par_sh_man aliases with = & " ! ' work -par_sh_man multiline -par_sh_man aliases with = & " ! ' work -par_sh_man multiline -par_sh_man aliases with = & " ! ' work -par_sh_man multiline -par_sh_man aliases with = & " ! ' work -par_sh_man multiline -par_sh_man aliases with = & " ! ' work -par_sh_man multiline -par_sh_man aliases with = & " ! ' work -par_sh_man variables with = & " ! ' work -par_sh_man variables with = & " ! ' work -par_sh_man variables with = & " ! ' work -par_sh_man variables with = & " ! ' work -par_sh_man variables with = & " ! ' work -par_sh_man multiline -par_sh_man variables with = & " ! ' work -par_sh_man multiline -par_sh_man variables with = & " ! ' work -par_sh_man multiline -par_sh_man variables with = & " ! ' work -par_sh_man multiline -par_sh_man variables with = & " ! ' work -par_sh_man multiline -par_sh_man variables with = & " ! ' work -par_sh_man exit value 2 should be 2 -par_sh_man Unknown option: no-such-option -par_sh_man exit value 255 should be 255 -par_sh_funky -par_sh_funky ' ' -par_sh_funky ' par_sh_funky  !"#$%&'"'"'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~' -par_sh_funky 3 arg alias_works -par_sh_funky 3 arg alias_works_over_ssh -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 OK_bigfunc -par_sh_environment_too_big OK_bigfunc_remote -par_sh_environment_too_big OK_bigfunc_quote -par_sh_environment_too_big OK_bigfunc_quote_remote -par_sh_environment_too_big Rest should fail - functions not supported in sh -par_sh_environment_too_big parallel: Error: Command line too long (XXX >= XXX) at input 0: fail_bigvar -par_sh_environment_too_big parallel: Error: Command line too long (XXX >= XXX) at input 0: fail_bigvar_remote -par_sh_environment_too_big parallel: Error: Command line too long (XXX >= XXX) at input 0: fail_bigvar_quote -par_sh_environment_too_big parallel: Error: Command line too long (XXX >= XXX) at input 0: fail_bigvar_quote_remote -par_sh_environment_too_big fail_bigfunc-not-supported -par_sh_environment_too_big fail_bigfunc_remote-not-supported -par_sh_environment_too_big fail_bigfunc_quote-not-supported -par_sh_environment_too_big fail_bigfunc_quote_remote-not-supported -par_sh_env_parallel_session ### Test env_parallel --session -par_sh_env_parallel_session ### level0 should be hidden, level1 should be transferred -par_sh_env_parallel_session -par_sh_env_parallel_session script: 30: level0func: not found -par_sh_env_parallel_session script: 30: level0alias: not found -par_sh_env_parallel_session script: 30: Bad substitution -par_sh_env_parallel_session -par_sh_env_parallel_session /bin/sh: XXX: level0func: not found -par_sh_env_parallel_session /bin/sh: XXX: level0alias: not found -par_sh_env_parallel_session /bin/sh: XXX: Bad substitution -par_sh_env_parallel_session l1var -par_sh_env_parallel_session script: 30: level1func: not found -par_sh_env_parallel_session script: 30: level1alias: not found -par_sh_env_parallel_session script: 30: Bad substitution -par_sh_env_parallel_session l1var -par_sh_env_parallel_session /bin/sh: XXX: level1func: not found -par_sh_env_parallel_session /bin/sh: XXX: level1alias: not found -par_sh_env_parallel_session /bin/sh: XXX: Bad substitution -par_sh_env_parallel_session ### level0+1 should be hidden, level2 should be transferred -par_sh_env_parallel_session -par_sh_env_parallel_session script: 3: level0func: not found -par_sh_env_parallel_session script: 3: level0alias: not found -par_sh_env_parallel_session script: 3: Bad substitution -par_sh_env_parallel_session -par_sh_env_parallel_session /bin/sh: 2: level0func: not found -par_sh_env_parallel_session /bin/sh: 2: level0alias: not found -par_sh_env_parallel_session /bin/sh: 2: Bad substitution -par_sh_env_parallel_session -par_sh_env_parallel_session script: 3: level1func: not found -par_sh_env_parallel_session script: 3: level1alias: not found -par_sh_env_parallel_session script: 3: Bad substitution -par_sh_env_parallel_session -par_sh_env_parallel_session /bin/sh: 2: level1func: not found -par_sh_env_parallel_session /bin/sh: 2: level1alias: not found -par_sh_env_parallel_session /bin/sh: 2: Bad substitution -par_sh_env_parallel_session l2var -par_sh_env_parallel_session script: 3: level2func: not found -par_sh_env_parallel_session script: 3: level2alias: not found -par_sh_env_parallel_session script: 3: Bad substitution -par_sh_env_parallel_session l2var -par_sh_env_parallel_session /bin/sh: 2: level2func: not found -par_sh_env_parallel_session /bin/sh: 2: level2alias: not found -par_sh_env_parallel_session /bin/sh: 2: Bad substitution -par_sh_env_parallel_session ### level0 should be hidden, level1+2 should be transferred -par_sh_env_parallel_session -par_sh_env_parallel_session script: 31: level0func: not found -par_sh_env_parallel_session script: 31: level0alias: not found -par_sh_env_parallel_session script: 31: Bad substitution -par_sh_env_parallel_session -par_sh_env_parallel_session /bin/sh: XXX: level0func: not found -par_sh_env_parallel_session /bin/sh: XXX: level0alias: not found -par_sh_env_parallel_session /bin/sh: XXX: Bad substitution -par_sh_env_parallel_session l1var -par_sh_env_parallel_session script: 31: level1func: not found -par_sh_env_parallel_session script: 31: level1alias: not found -par_sh_env_parallel_session script: 31: Bad substitution -par_sh_env_parallel_session l1var -par_sh_env_parallel_session /bin/sh: XXX: level1func: not found -par_sh_env_parallel_session /bin/sh: XXX: level1alias: not found -par_sh_env_parallel_session /bin/sh: XXX: Bad substitution -par_sh_env_parallel_session l2var -par_sh_env_parallel_session script: 31: level2func: not found -par_sh_env_parallel_session script: 31: level2alias: not found -par_sh_env_parallel_session script: 31: Bad substitution -par_sh_env_parallel_session l2var -par_sh_env_parallel_session /bin/sh: XXX: level2func: not found -par_sh_env_parallel_session /bin/sh: XXX: level2alias: not found -par_sh_env_parallel_session /bin/sh: XXX: Bad substitution -par_sh_env_parallel_session ### level0+1+2 should be transferred -par_sh_env_parallel_session l0var -par_sh_env_parallel_session script: 27: level0func: not found -par_sh_env_parallel_session script: 27: level0alias: not found -par_sh_env_parallel_session script: 27: Bad substitution -par_sh_env_parallel_session l0var -par_sh_env_parallel_session /bin/sh: XXX: level0func: not found -par_sh_env_parallel_session /bin/sh: XXX: level0alias: not found -par_sh_env_parallel_session /bin/sh: XXX: Bad substitution -par_sh_env_parallel_session l1var -par_sh_env_parallel_session script: 27: level1func: not found -par_sh_env_parallel_session script: 27: level1alias: not found -par_sh_env_parallel_session script: 27: Bad substitution -par_sh_env_parallel_session l1var -par_sh_env_parallel_session /bin/sh: XXX: level1func: not found -par_sh_env_parallel_session /bin/sh: XXX: level1alias: not found -par_sh_env_parallel_session /bin/sh: XXX: Bad substitution -par_sh_env_parallel_session l2var -par_sh_env_parallel_session script: 27: level2func: not found -par_sh_env_parallel_session script: 27: level2alias: not found -par_sh_env_parallel_session script: 27: Bad substitution -par_sh_env_parallel_session l2var -par_sh_env_parallel_session /bin/sh: XXX: level2func: not found -par_sh_env_parallel_session /bin/sh: XXX: level2alias: not found -par_sh_env_parallel_session /bin/sh: XXX: Bad substitution -par_sh_env_parallel_session /bin/sh: 1: aliasbefore: not found -par_sh_env_parallel_session script: 2: aliasbefore: not found -par_sh_env_parallel_session /bin/sh: 1: funcbefore: not found -par_sh_env_parallel_session script: 2: funcbefore: not found -par_sh_env_parallel_session no_before -par_sh_env_parallel_session no_before -par_sh_env_parallel_session after aliasafter_OK -par_sh_env_parallel_session after aliasafter_OK -par_sh_env_parallel_session /bin/sh: 3: funcafter: not found -par_sh_env_parallel_session script: 4: funcafter: not found -par_sh_env_parallel_session after varafter_OK -par_sh_env_parallel_session after varafter_OK -par_sh_env_parallel OK -par_sh_env_parallel OK -par_sh_env_parallel alias line 1 -par_sh_env_parallel alias line 1 -par_sh_env_parallel alias line 2 -par_sh_env_parallel alias line 2 -par_sh_env_parallel alias line 3 -par_sh_env_parallel alias line 3 -par_sh_env_parallel alias2 line 1 -par_sh_env_parallel alias2 line 1 -par_sh_env_parallel alias2 line 2 -par_sh_env_parallel alias2 line 2 -par_sh_env_parallel bug #50435: Remote fifo broke in 20150522 -par_sh_env_parallel bug #52534: Tail of multiline alias is ignored -par_sh_env_parallel data from stdin -par_sh_env_parallel data from stdin -par_mksh_underscore ### mksh -par_mksh_underscore ### Testing of --env _ -par_mksh_underscore variables in aliases in and arrays in functions work -par_mksh_underscore variables in aliases in and arrays in functions work -par_mksh_underscore variables in aliases in and arrays in functions work -par_mksh_underscore variables in aliases in and arrays in functions work -par_mksh_underscore variables in aliases in and arrays in functions work -par_mksh_underscore variables in aliases in and arrays in functions work -par_mksh_underscore W: script[9]: not_copied_alias: inaccessible or not found -par_mksh_underscore W: script[9]: not_copied_func: inaccessible or not found -par_mksh_underscore error=OK -par_mksh_underscore error=OK -par_mksh_underscore aliases in and arrays in functions work -par_mksh_underscore aliases in and arrays in functions work -par_mksh_underscore aliases in functions work -par_mksh_underscore aliases in functions work -par_mksh_underscore aliases in functions work -par_mksh_underscore OK if no myecho ^^^^^^^^^^^^^^^^^ -par_mksh_underscore aliases in functions work -par_mksh_underscore OK if no myecho ^^^^^^^^^^^^^^^^^ -par_mksh_underscore W: /bin/mksh: myfunc: inaccessible or not found -par_mksh_underscore OK if no myfunc ^^^^^^^^^^^^^^^^^ -par_mksh_underscore W: script[9]: myfunc: inaccessible or not found -par_mksh_underscore OK if no myfunc ^^^^^^^^^^^^^^^^^ -par_mksh_parset parset -par_mksh_parset ### parset into array -par_mksh_parset foo bar baz -par_mksh_parset ### parset into vars with comma -par_mksh_parset foo bar baz -par_mksh_parset ### parset into vars with space -par_mksh_parset foo bar baz -par_mksh_parset ### parset with newlines -par_mksh_parset 1 -par_mksh_parset 1 -par_mksh_parset 2 -par_mksh_parset 1 -par_mksh_parset 2 -par_mksh_parset 3 -par_mksh_parset ### parset into indexed array vars -par_mksh_parset foo bar baz -par_mksh_parset foo bar baz -par_mksh_parset ### env_parset -par_mksh_parset myecho myvar myarr 1 myfun foo myecho myvar myarr 1 myfun bar myecho myvar myarr 1 myfun baz -par_mksh_parset myecho myvar myarr 1 myfun foo myecho myvar myarr 1 myfun bar myecho myvar myarr 1 myfun baz -par_mksh_parset myecho myvar myarr 1 myfun foo myecho myvar myarr 1 myfun bar myecho myvar myarr 1 myfun baz -par_mksh_parset newline1 -par_mksh_parset newline2 -par_mksh_parset 1 -par_mksh_parset newline1 -par_mksh_parset newline2 -par_mksh_parset 1 -par_mksh_parset 2 -par_mksh_parset newline1 -par_mksh_parset newline2 -par_mksh_parset 1 -par_mksh_parset 2 -par_mksh_parset 3 -par_mksh_parset myecho myvar myarr 1 myfun foo myecho myvar myarr 1 myfun bar myecho myvar myarr 1 myfun baz -par_mksh_parset myecho myvar myarr 1 myfun foo myecho myvar myarr 1 myfun bar myecho myvar myarr 1 myfun baz -par_mksh_parset Exit value 2 = 2 -par_mksh_parset Exit value 2 = 2 -par_mksh_man ### mksh -par_mksh_man ### From man env_parallel -par_mksh_man aliases with = & " ! ' work -par_mksh_man aliases with = & " ! ' work -par_mksh_man aliases with = & " ! ' work -par_mksh_man aliases with = & " ! ' work -par_mksh_man aliases with = & " ! ' work -par_mksh_man multiline -par_mksh_man aliases with = & " ! ' work -par_mksh_man env_parallel: Warning: Alias "multiline" contains newline. -par_mksh_man env_parallel: Warning: Make sure the command has at least one newline after "multiline". -par_mksh_man env_parallel: Warning: See BUGS in "man env_parallel". -par_mksh_man multiline -par_mksh_man aliases with = & " ! ' work -par_mksh_man env_parallel: Warning: Alias "multiline" contains newline. -par_mksh_man env_parallel: Warning: Make sure the command has at least one newline after "multiline". -par_mksh_man env_parallel: Warning: See BUGS in "man env_parallel". -par_mksh_man multiline -par_mksh_man aliases with = & " ! ' work -par_mksh_man env_parallel: Warning: Alias "multiline" contains newline. -par_mksh_man env_parallel: Warning: Make sure the command has at least one newline after "multiline". -par_mksh_man env_parallel: Warning: See BUGS in "man env_parallel". -par_mksh_man multiline -par_mksh_man aliases with = & " ! ' work -par_mksh_man env_parallel: Warning: Alias "multiline" contains newline. -par_mksh_man env_parallel: Warning: Make sure the command has at least one newline after "multiline". -par_mksh_man env_parallel: Warning: See BUGS in "man env_parallel". -par_mksh_man multiline -par_mksh_man aliases with = & " ! ' work -par_mksh_man functions with = & " ! ' work -par_mksh_man functions with = & " ! ' work -par_mksh_man functions with = & " ! ' work -par_mksh_man functions with = & " ! ' work -par_mksh_man functions with = & " ! ' work -par_mksh_man variables with = & " ! ' work -par_mksh_man variables with = & " ! ' work -par_mksh_man variables with = & " ! ' work -par_mksh_man variables with = & " ! ' work -par_mksh_man variables with = & " ! ' work -par_mksh_man multiline -par_mksh_man variables with = & " ! ' work -par_mksh_man multiline -par_mksh_man variables with = & " ! ' work -par_mksh_man multiline -par_mksh_man variables with = & " ! ' work -par_mksh_man multiline -par_mksh_man variables with = & " ! ' work -par_mksh_man multiline -par_mksh_man variables with = & " ! ' work -par_mksh_man arrays with = & " ! ' work, too -par_mksh_man arrays -par_mksh_man with = & " ! ' -par_mksh_man work, -par_mksh_man too -par_mksh_man arrays -par_mksh_man with = & " ! ' -par_mksh_man work, -par_mksh_man too -par_mksh_man arrays -par_mksh_man with = & " ! ' -par_mksh_man work, -par_mksh_man too -par_mksh_man arrays -par_mksh_man with = & " ! ' -par_mksh_man work, -par_mksh_man too -par_mksh_man multi -par_mksh_man level -par_mksh_man env_parallel -par_mksh_man exit value 2 should be 2 -par_mksh_man Unknown option: no-such-option -par_mksh_man exit value 255 should be 255 -par_mksh_funky -par_mksh_funky par_mksh_funky  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~-funky -par_mksh_funky par_mksh_funky  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~-funky -par_mksh_funky space 6 -par_mksh_funky space 6 -par_mksh_funky ' ' -par_mksh_funky ' par_mksh_funky  !"#$%&'"'"'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~' -par_mksh_funky 3 arg alias_works -par_mksh_funky 3 arg alias_works_over_ssh -par_mksh_funky Funky- -par_mksh_funky Funky- -par_mksh_funky function_works -par_mksh_funky function_works_over_ssh -par_mksh_funky myvar works -par_mksh_funky myvar works -par_mksh_environment_too_big bug #50815: env_parallel should warn if the environment is too big -par_mksh_environment_too_big OK_bigvar -par_mksh_environment_too_big OK_bigvar_remote -par_mksh_environment_too_big OK_bigvar_quote -par_mksh_environment_too_big OK_bigvar_quote_remote -par_mksh_environment_too_big OK_bigfunc -par_mksh_environment_too_big OK_bigfunc_remote -par_mksh_environment_too_big OK_bigfunc_quote -par_mksh_environment_too_big OK_bigfunc_quote_remote -par_mksh_environment_too_big Rest should fail -par_mksh_environment_too_big parallel: Error: Command line too long (XXX >= XXX) at input 0: fail_bigvar -par_mksh_environment_too_big parallel: Error: Command line too long (XXX >= XXX) at input 0: fail_bigvar_remote -par_mksh_environment_too_big parallel: Error: Command line too long (XXX >= XXX) at input 0: fail_bigvar_quote -par_mksh_environment_too_big parallel: Error: Command line too long (XXX >= XXX) at input 0: fail_bigvar_quote_remote -par_mksh_environment_too_big parallel: Error: Command line too long (XXX >= XXX) at input 0: fail_bigfunc -par_mksh_environment_too_big parallel: Error: Command line too long (XXX >= XXX) at input 0: fail_bigfunc_remote -par_mksh_environment_too_big parallel: Error: Command line too long (XXX >= XXX) at input 0: fail_bigfunc_quote -par_mksh_environment_too_big parallel: Error: Command line too long (XXX >= XXX) at input 0: fail_bigfunc_quote_remote -par_mksh_env_parallel_session ### Test env_parallel --session -par_mksh_env_parallel_session ### level0 should be hidden, level1 should be transferred -par_mksh_env_parallel_session -par_mksh_env_parallel_session fail -par_mksh_env_parallel_session W: script[9]: level0func: inaccessible or not found -par_mksh_env_parallel_session W: script[9]: level0alias: inaccessible or not found -par_mksh_env_parallel_session -par_mksh_env_parallel_session fail -par_mksh_env_parallel_session W: /bin/mksh: level0func: inaccessible or not found -par_mksh_env_parallel_session W: /bin/mksh: level0alias: inaccessible or not found -par_mksh_env_parallel_session l1var -par_mksh_env_parallel_session l1func -par_mksh_env_parallel_session l1alias -par_mksh_env_parallel_session level1 array OK -par_mksh_env_parallel_session l1var -par_mksh_env_parallel_session l1func -par_mksh_env_parallel_session l1alias -par_mksh_env_parallel_session level1 array OK -par_mksh_env_parallel_session ### level0+1 should be hidden, level2 should be transferred -par_mksh_env_parallel_session -par_mksh_env_parallel_session fail -par_mksh_env_parallel_session W: script[9]: level0func: inaccessible or not found -par_mksh_env_parallel_session W: script[9]: level0alias: inaccessible or not found -par_mksh_env_parallel_session -par_mksh_env_parallel_session fail -par_mksh_env_parallel_session W: /bin/mksh: level0func: inaccessible or not found -par_mksh_env_parallel_session W: /bin/mksh: level0alias: inaccessible or not found -par_mksh_env_parallel_session -par_mksh_env_parallel_session fail -par_mksh_env_parallel_session W: script[9]: level1func: inaccessible or not found -par_mksh_env_parallel_session W: script[9]: level1alias: inaccessible or not found -par_mksh_env_parallel_session -par_mksh_env_parallel_session fail -par_mksh_env_parallel_session W: /bin/mksh: level1func: inaccessible or not found -par_mksh_env_parallel_session W: /bin/mksh: level1alias: inaccessible or not found -par_mksh_env_parallel_session l2var -par_mksh_env_parallel_session l2func -par_mksh_env_parallel_session l2alias -par_mksh_env_parallel_session level2 array OK -par_mksh_env_parallel_session l2var -par_mksh_env_parallel_session l2func -par_mksh_env_parallel_session l2alias -par_mksh_env_parallel_session level2 array OK -par_mksh_env_parallel_session ### level0 should be hidden, level1+2 should be transferred -par_mksh_env_parallel_session -par_mksh_env_parallel_session fail -par_mksh_env_parallel_session W: script[9]: level0func: inaccessible or not found -par_mksh_env_parallel_session W: script[9]: level0alias: inaccessible or not found -par_mksh_env_parallel_session -par_mksh_env_parallel_session fail -par_mksh_env_parallel_session W: /bin/mksh: level0func: inaccessible or not found -par_mksh_env_parallel_session W: /bin/mksh: level0alias: inaccessible or not found -par_mksh_env_parallel_session l1var -par_mksh_env_parallel_session l1func -par_mksh_env_parallel_session l1alias -par_mksh_env_parallel_session level1 array OK -par_mksh_env_parallel_session l1var -par_mksh_env_parallel_session l1func -par_mksh_env_parallel_session l1alias -par_mksh_env_parallel_session level1 array OK -par_mksh_env_parallel_session l2var -par_mksh_env_parallel_session l2func -par_mksh_env_parallel_session l2alias -par_mksh_env_parallel_session level2 array OK -par_mksh_env_parallel_session l2var -par_mksh_env_parallel_session l2func -par_mksh_env_parallel_session l2alias -par_mksh_env_parallel_session level2 array OK -par_mksh_env_parallel_session ### level0+1+2 should be transferred -par_mksh_env_parallel_session l0var -par_mksh_env_parallel_session l0func -par_mksh_env_parallel_session l0alias -par_mksh_env_parallel_session level0 array OK -par_mksh_env_parallel_session l0var -par_mksh_env_parallel_session l0func -par_mksh_env_parallel_session l0alias -par_mksh_env_parallel_session level0 array OK -par_mksh_env_parallel_session l1var -par_mksh_env_parallel_session l1func -par_mksh_env_parallel_session l1alias -par_mksh_env_parallel_session level1 array OK -par_mksh_env_parallel_session l1var -par_mksh_env_parallel_session l1func -par_mksh_env_parallel_session l1alias -par_mksh_env_parallel_session level1 array OK -par_mksh_env_parallel_session l2var -par_mksh_env_parallel_session l2func -par_mksh_env_parallel_session l2alias -par_mksh_env_parallel_session level2 array OK -par_mksh_env_parallel_session l2var -par_mksh_env_parallel_session l2func -par_mksh_env_parallel_session l2alias -par_mksh_env_parallel_session level2 array OK -par_mksh_env_parallel_session W: /bin/mksh: aliasbefore: inaccessible or not found -par_mksh_env_parallel_session W: script[9]: aliasbefore: inaccessible or not found -par_mksh_env_parallel_session W: /bin/mksh: funcbefore: inaccessible or not found -par_mksh_env_parallel_session W: script[9]: funcbefore: inaccessible or not found -par_mksh_env_parallel_session no_before -par_mksh_env_parallel_session no_before -par_mksh_env_parallel_session no_before -par_mksh_env_parallel_session no_before -par_mksh_env_parallel_session after aliasafter_OK -par_mksh_env_parallel_session after aliasafter_OK -par_mksh_env_parallel_session after funcafter_OK -par_mksh_env_parallel_session after funcafter_OK -par_mksh_env_parallel_session after varafter_OK -par_mksh_env_parallel_session after varafter_OK -par_mksh_env_parallel_session array after arrayafter_OK -par_mksh_env_parallel_session array after arrayafter_OK -par_mksh_env_parallel OK -par_mksh_env_parallel OK -par_mksh_env_parallel alias line 1 -par_mksh_env_parallel alias line 1 -par_mksh_env_parallel alias line 2 -par_mksh_env_parallel alias line 2 -par_mksh_env_parallel alias line 3 -par_mksh_env_parallel alias line 3 -par_mksh_env_parallel alias2 line 1 -par_mksh_env_parallel alias2 line 1 -par_mksh_env_parallel alias2 line 2 -par_mksh_env_parallel alias2 line 2 -par_mksh_env_parallel bug #50435: Remote fifo broke in 20150522 -par_mksh_env_parallel bug #52534: Tail of multiline alias is ignored -par_mksh_env_parallel data from stdin -par_mksh_env_parallel data from stdin -par_mksh_env_parallel env_parallel: Warning: Alias "myalias" contains newline. -par_mksh_env_parallel env_parallel: Warning: Alias "myalias" contains newline. -par_mksh_env_parallel env_parallel: Warning: Alias "myalias2" contains newline. -par_mksh_env_parallel env_parallel: Warning: Alias "myalias2" contains newline. -par_mksh_env_parallel env_parallel: Warning: Make sure the command has at least one newline after "myalias". -par_mksh_env_parallel env_parallel: Warning: Make sure the command has at least one newline after "myalias". -par_mksh_env_parallel env_parallel: Warning: Make sure the command has at least one newline after "myalias2". -par_mksh_env_parallel env_parallel: Warning: Make sure the command has at least one newline after "myalias2". -par_mksh_env_parallel env_parallel: Warning: See BUGS in "man env_parallel". -par_mksh_env_parallel env_parallel: Warning: See BUGS in "man env_parallel". -par_mksh_env_parallel env_parallel: Warning: See BUGS in "man env_parallel". -par_mksh_env_parallel env_parallel: Warning: See BUGS in "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 script: line 5: not_copied_alias: not found -par_ksh_underscore script: 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 /bin/ksh: myecho: not found -par_ksh_underscore OK if no myecho ^^^^^^^^^^^^^^^^^ -par_ksh_underscore script[9]: myecho: not found -par_ksh_underscore OK if no myecho ^^^^^^^^^^^^^^^^^ -par_ksh_underscore /bin/ksh: myfunc: not found -par_ksh_underscore OK if no myfunc ^^^^^^^^^^^^^^^^^ -par_ksh_underscore script: 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 myecho myvar myarr 1 myfun foo myecho myvar myarr 1 myfun bar myecho myvar myarr 1 myfun baz -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_parset Exit value 2 = 2 -par_ksh_parset Exit value 2 = 2 -par_ksh_man ### ksh -par_ksh_man ### From man env_parallel -par_ksh_man aliases with = & " ! ' work -par_ksh_man aliases with = & " ! ' work -par_ksh_man aliases with = & " ! ' work -par_ksh_man aliases with = & " ! ' work -par_ksh_man aliases with = & " ! ' work -par_ksh_man multiline -par_ksh_man aliases with = & " ! ' work -par_ksh_man env_parallel: Warning: Alias "multiline" contains newline. -par_ksh_man env_parallel: Warning: Make sure the command has at least one newline after "multiline". -par_ksh_man env_parallel: Warning: See BUGS in "man env_parallel". -par_ksh_man multiline -par_ksh_man aliases with = & " ! ' work -par_ksh_man env_parallel: Warning: Alias "multiline" contains newline. -par_ksh_man env_parallel: Warning: Make sure the command has at least one newline after "multiline". -par_ksh_man env_parallel: Warning: See BUGS in "man env_parallel". -par_ksh_man multiline -par_ksh_man aliases with = & " ! ' work -par_ksh_man env_parallel: Warning: Alias "multiline" contains newline. -par_ksh_man env_parallel: Warning: Make sure the command has at least one newline after "multiline". -par_ksh_man env_parallel: Warning: See BUGS in "man env_parallel". -par_ksh_man multiline -par_ksh_man aliases with = & " ! ' work -par_ksh_man env_parallel: Warning: Alias "multiline" contains newline. -par_ksh_man env_parallel: Warning: Make sure the command has at least one newline after "multiline". -par_ksh_man env_parallel: Warning: See BUGS in "man env_parallel". -par_ksh_man multiline -par_ksh_man aliases with = & " ! ' work -par_ksh_man functions with = & " ! ' work -par_ksh_man functions with = & " ! ' work -par_ksh_man functions with = & " ! ' work -par_ksh_man functions with = & " ! ' work -par_ksh_man functions with = & " ! ' work -par_ksh_man variables with = & " ! ' work -par_ksh_man variables with = & " ! ' work -par_ksh_man variables with = & " ! ' work -par_ksh_man variables with = & " ! ' work -par_ksh_man variables with = & " ! ' work -par_ksh_man multiline -par_ksh_man variables with = & " ! ' work -par_ksh_man multiline -par_ksh_man variables with = & " ! ' work -par_ksh_man multiline -par_ksh_man variables with = & " ! ' work -par_ksh_man multiline -par_ksh_man variables with = & " ! ' work -par_ksh_man multiline -par_ksh_man variables with = & " ! ' work -par_ksh_man arrays with = & " ! ' work, too -par_ksh_man arrays -par_ksh_man with = & " ! ' -par_ksh_man work, -par_ksh_man too -par_ksh_man arrays -par_ksh_man with = & " ! ' -par_ksh_man work, -par_ksh_man too -par_ksh_man arrays -par_ksh_man with = & " ! ' -par_ksh_man work, -par_ksh_man too -par_ksh_man arrays -par_ksh_man with = & " ! ' -par_ksh_man work, -par_ksh_man too -par_ksh_man This may never work -par_ksh_man https://unix.stackexchange.com/questions/457031/extract-full-function-definitions -par_ksh_man /bin/ksh: line 3: syntax error at line XXX: `{' unmatched -par_ksh_man /bin/ksh: line 3: syntax error at line XXX: `{' unmatched -par_ksh_man /bin/ksh: line 3: syntax error at line XXX: `{' unmatched -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 par_ksh_funky  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~-funky -par_ksh_funky space 6 -par_ksh_funky space 6 -par_ksh_funky ' ' -par_ksh_funky ' par_ksh_funky  !"#$%&'"'"'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~' -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 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 parallel: Error: Command line too long (XXX >= XXX) at input 0: fail_bigvar -par_ksh_environment_too_big parallel: Error: Command line too long (XXX >= XXX) at input 0: fail_bigvar_remote -par_ksh_environment_too_big parallel: Error: Command line too long (XXX >= XXX) at input 0: fail_bigvar_quote -par_ksh_environment_too_big parallel: Error: Command line too long (XXX >= XXX) at input 0: fail_bigvar_quote_remote -par_ksh_environment_too_big parallel: Error: Command line too long (XXX >= XXX) at input 0: fail_bigfunc -par_ksh_environment_too_big parallel: Error: Command line too long (XXX >= XXX) at input 0: fail_bigfunc_remote -par_ksh_environment_too_big parallel: Error: Command line too long (XXX >= XXX) at input 0: fail_bigfunc_quote -par_ksh_environment_too_big parallel: Error: Command line too long (XXX >= XXX) at input 0: fail_bigfunc_quote_remote -par_ksh_env_parallel_session ### Test env_parallel --session -par_ksh_env_parallel_session ### level0 should be hidden, level1 should be transferred -par_ksh_env_parallel_session -par_ksh_env_parallel_session fail -par_ksh_env_parallel_session script[9]: level0func: not found -par_ksh_env_parallel_session script[9]: level0alias: not found -par_ksh_env_parallel_session -par_ksh_env_parallel_session fail -par_ksh_env_parallel_session /bin/ksh[XXX]: level0func: not found -par_ksh_env_parallel_session /bin/ksh[XXX]: level0alias: not found -par_ksh_env_parallel_session l1var -par_ksh_env_parallel_session l1func -par_ksh_env_parallel_session l1alias -par_ksh_env_parallel_session level1 array OK -par_ksh_env_parallel_session l1var -par_ksh_env_parallel_session l1func -par_ksh_env_parallel_session l1alias -par_ksh_env_parallel_session level1 array OK -par_ksh_env_parallel_session ### level0+1 should be hidden, level2 should be transferred -par_ksh_env_parallel_session -par_ksh_env_parallel_session fail -par_ksh_env_parallel_session script[9]: level0func: not found -par_ksh_env_parallel_session script[9]: level0alias: not found -par_ksh_env_parallel_session -par_ksh_env_parallel_session fail -par_ksh_env_parallel_session /bin/ksh[XXX]: level0func: not found -par_ksh_env_parallel_session /bin/ksh[XXX]: level0alias: not found -par_ksh_env_parallel_session -par_ksh_env_parallel_session fail -par_ksh_env_parallel_session script[9]: level1func: not found -par_ksh_env_parallel_session script[9]: level1alias: not found -par_ksh_env_parallel_session -par_ksh_env_parallel_session fail -par_ksh_env_parallel_session /bin/ksh[XXX]: level1func: not found -par_ksh_env_parallel_session /bin/ksh[XXX]: level1alias: not found -par_ksh_env_parallel_session l2var -par_ksh_env_parallel_session l2func -par_ksh_env_parallel_session l2alias -par_ksh_env_parallel_session level2 array OK -par_ksh_env_parallel_session l2var -par_ksh_env_parallel_session l2func -par_ksh_env_parallel_session l2alias -par_ksh_env_parallel_session level2 array OK -par_ksh_env_parallel_session ### level0 should be hidden, level1+2 should be transferred -par_ksh_env_parallel_session -par_ksh_env_parallel_session fail -par_ksh_env_parallel_session script[9]: level0func: not found -par_ksh_env_parallel_session script[9]: level0alias: not found -par_ksh_env_parallel_session -par_ksh_env_parallel_session fail -par_ksh_env_parallel_session /bin/ksh[XXX]: level0func: not found -par_ksh_env_parallel_session /bin/ksh[XXX]: level0alias: not found -par_ksh_env_parallel_session l1var -par_ksh_env_parallel_session l1func -par_ksh_env_parallel_session l1alias -par_ksh_env_parallel_session level1 array OK -par_ksh_env_parallel_session l1var -par_ksh_env_parallel_session l1func -par_ksh_env_parallel_session l1alias -par_ksh_env_parallel_session level1 array OK -par_ksh_env_parallel_session l2var -par_ksh_env_parallel_session l2func -par_ksh_env_parallel_session l2alias -par_ksh_env_parallel_session level2 array OK -par_ksh_env_parallel_session l2var -par_ksh_env_parallel_session l2func -par_ksh_env_parallel_session l2alias -par_ksh_env_parallel_session level2 array OK -par_ksh_env_parallel_session ### level0+1+2 should be transferred -par_ksh_env_parallel_session l0var -par_ksh_env_parallel_session l0func -par_ksh_env_parallel_session l0alias -par_ksh_env_parallel_session level0 array OK -par_ksh_env_parallel_session l0var -par_ksh_env_parallel_session l0func -par_ksh_env_parallel_session l0alias -par_ksh_env_parallel_session level0 array OK -par_ksh_env_parallel_session l1var -par_ksh_env_parallel_session l1func -par_ksh_env_parallel_session l1alias -par_ksh_env_parallel_session level1 array OK -par_ksh_env_parallel_session l1var -par_ksh_env_parallel_session l1func -par_ksh_env_parallel_session l1alias -par_ksh_env_parallel_session level1 array OK -par_ksh_env_parallel_session l2var -par_ksh_env_parallel_session l2func -par_ksh_env_parallel_session l2alias -par_ksh_env_parallel_session level2 array OK -par_ksh_env_parallel_session l2var -par_ksh_env_parallel_session l2func -par_ksh_env_parallel_session l2alias -par_ksh_env_parallel_session level2 array OK -par_ksh_env_parallel_session /bin/ksh: line 3: aliasbefore: not found -par_ksh_env_parallel_session script: line 4: aliasbefore: not found -par_ksh_env_parallel_session /bin/ksh: line 3: funcbefore: not found -par_ksh_env_parallel_session script: line 4: funcbefore: not found -par_ksh_env_parallel_session no_before -par_ksh_env_parallel_session no_before -par_ksh_env_parallel_session no_before -par_ksh_env_parallel_session no_before -par_ksh_env_parallel_session after aliasafter_OK -par_ksh_env_parallel_session after aliasafter_OK -par_ksh_env_parallel_session after funcafter_OK -par_ksh_env_parallel_session after funcafter_OK -par_ksh_env_parallel_session after varafter_OK -par_ksh_env_parallel_session after varafter_OK -par_ksh_env_parallel_session array after arrayafter_OK -par_ksh_env_parallel_session array after arrayafter_OK -par_ksh_env_parallel OK -par_ksh_env_parallel OK -par_ksh_env_parallel alias line 1 -par_ksh_env_parallel alias line 1 -par_ksh_env_parallel alias line 2 -par_ksh_env_parallel alias line 2 -par_ksh_env_parallel alias line 3 -par_ksh_env_parallel alias line 3 -par_ksh_env_parallel alias2 line 1 -par_ksh_env_parallel alias2 line 1 -par_ksh_env_parallel bug #50435: Remote fifo broke in 20150522 -par_ksh_env_parallel bug #52534: Tail of multiline alias is ignored -par_ksh_env_parallel data from stdin -par_ksh_env_parallel data from stdin -par_ksh_env_parallel env_parallel: Warning: Alias "myalias" contains newline. -par_ksh_env_parallel env_parallel: Warning: Alias "myalias" contains newline. -par_ksh_env_parallel env_parallel: Warning: Alias "myalias2" contains newline. -par_ksh_env_parallel env_parallel: Warning: Alias "myalias2" contains newline. -par_ksh_env_parallel env_parallel: Warning: Make sure the command has at least one newline after "myalias". -par_ksh_env_parallel env_parallel: Warning: Make sure the command has at least one newline after "myalias". -par_ksh_env_parallel env_parallel: Warning: Make sure the command has at least one newline after "myalias2". -par_ksh_env_parallel env_parallel: Warning: Make sure the command has at least one newline after "myalias2". -par_ksh_env_parallel env_parallel: Warning: See BUGS in "man env_parallel". -par_ksh_env_parallel env_parallel: Warning: See BUGS in "man env_parallel". -par_ksh_env_parallel env_parallel: Warning: See BUGS in "man env_parallel". -par_ksh_env_parallel env_parallel: Warning: See BUGS in "man env_parallel". -par_fish_underscore ### fish -par_fish_underscore Fish is broken -par_fish_underscore ### Testing of --env _ -par_fish_underscore Test copying -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 Test ignoring -par_fish_underscore script (line XXX): -par_fish_underscore not_copied_alias 'error=OK' -par_fish_underscore ^ -par_fish_underscore script (line XXX): -par_fish_underscore not_copied_func 'error=OK' -par_fish_underscore ^ -par_fish_underscore error=OK -par_fish_underscore error=OK -par_fish_underscore Test single ignoring -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 myecho $myarray functions $argv -par_fish_underscore ^ -par_fish_underscore in function 'myfunc' with arguments 'work' -par_fish_underscore OK if ^^^^^^^^^^^^^^^^^ no myecho -par_fish_underscore script (line 4): -par_fish_underscore myecho $myarray functions $argv -par_fish_underscore ^ -par_fish_underscore in function 'myfunc' with arguments 'work' -par_fish_underscore called on line XXX of file script -par_fish_underscore OK if ^^^^^^^^^^^^^^^^^ no myecho -par_fish_underscore myfunc work -par_fish_underscore ^ -par_fish_underscore OK if ^^^^^^^^^^^^^^^^^ no myfunc -par_fish_underscore script (line 6): -par_fish_underscore myfunc work -par_fish_underscore ^ -par_fish_underscore OK if ^^^^^^^^^^^^^^^^^ no myfunc -par_fish_parset Not implemented -par_fish_man ### fish -par_fish_man Unknown option: no-such-option -par_fish_man variables with = & " ! ' work -par_fish_man variables with = & " ! ' work -par_fish_man variables with = & " ! ' work -par_fish_man variables with = & " ! ' work -par_fish_man variables with = & " ! ' work -par_fish_man ### From man env_parallel -par_fish_man aliases with = & " ! ' work -par_fish_man aliases with = & " ! ' work -par_fish_man aliases with = & " ! ' work -par_fish_man aliases with = & " ! ' work -par_fish_man aliases with = & " ! ' work -par_fish_man arrays -par_fish_man arrays -par_fish_man arrays -par_fish_man arrays -par_fish_man arrays with = & " ! ' work, too -par_fish_man env_parallel -par_fish_man exit value 2 should be 2 -par_fish_man exit value 255 should be 255 `sleep 1` -par_fish_man functions with = & " ! ' work -par_fish_man functions with = & " ! ' work -par_fish_man functions with = & " ! ' work -par_fish_man functions with = & " ! ' work -par_fish_man functions with = & " ! ' work -par_fish_man level -par_fish_man multi -par_fish_man multiline -par_fish_man multiline -par_fish_man multiline -par_fish_man multiline -par_fish_man multiline -par_fish_man too -par_fish_man too -par_fish_man too -par_fish_man too -par_fish_man variables with = & " ! ' work -par_fish_man variables with = & " ! ' work -par_fish_man variables with = & " ! ' work -par_fish_man variables with = & " ! ' work -par_fish_man variables with = & " ! ' work -par_fish_man with = & " ! ' -par_fish_man with = & " ! ' -par_fish_man with = & " ! ' -par_fish_man with = & " ! ' -par_fish_man work, -par_fish_man work, -par_fish_man work, -par_fish_man work, -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- par_fish_funky  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~-funky -par_fish_funky Funkyenv- par_fish_funky  !"#$%&'()*+,-./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- par_fish_funky  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~-funky -par_fish_funky Funkyenv- par_fish_funky  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~-funkyenv -par_fish_funky -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_session ### Test env_parallel --session -par_fish_env_parallel_session fish: Unknown command: aliasbefore -par_fish_env_parallel_session fish: -par_fish_env_parallel_session aliasbefore must_fail -par_fish_env_parallel_session ^ -par_fish_env_parallel_session fish: Unknown command: aliasbefore -par_fish_env_parallel_session script (line 6): -par_fish_env_parallel_session aliasbefore must_fail -par_fish_env_parallel_session ^ -par_fish_env_parallel_session fish: Unknown command: funcbefore -par_fish_env_parallel_session fish: -par_fish_env_parallel_session funcbefore must_fail -par_fish_env_parallel_session ^ -par_fish_env_parallel_session fish: Unknown command: funcbefore -par_fish_env_parallel_session script (line 6): -par_fish_env_parallel_session funcbefore must_fail -par_fish_env_parallel_session ^ -par_fish_env_parallel_session no_before -par_fish_env_parallel_session no_before -par_fish_env_parallel_session no_before -par_fish_env_parallel_session no_before -par_fish_env_parallel_session after aliasafter_OK -par_fish_env_parallel_session after aliasafter_OK -par_fish_env_parallel_session after funcafter_OK -par_fish_env_parallel_session after funcafter_OK -par_fish_env_parallel_session after varafter_OK -par_fish_env_parallel_session after varafter_OK -par_fish_env_parallel_session array after arrayafter_OK -par_fish_env_parallel_session array after arrayafter_OK -par_fish_env_parallel bug #50435: Remote fifo broke in 20150522 -par_fish_env_parallel data from stdin -par_fish_env_parallel OK -par_fish_env_parallel data from stdin -par_fish_env_parallel OK -par_fish_env_parallel OK: 0==0 -par_fish_env_parallel ### Test failing command with --cat -par_fish_env_parallel data from stdin -par_fish_env_parallel OK: 1==1 -par_fish_env_parallel data from stdin -par_fish_env_parallel OK: 1==1 -par_dash_underscore ### dash -par_dash_underscore ### Testing of --env _ -par_dash_underscore variables in aliases work -par_dash_underscore variables in aliases work -par_dash_underscore variables in aliases work -par_dash_underscore variables in aliases work -par_dash_underscore script: 4: not_copied_alias: not found -par_dash_underscore error=OK -par_dash_underscore aliases work -par_dash_underscore aliases work -par_dash_underscore /bin/dash: 1: myecho: not found -par_dash_underscore OK if no myecho ^^^^^^^^^^^^^^^^^ -par_dash_underscore script: 2: myecho: not found -par_dash_underscore OK if no myecho ^^^^^^^^^^^^^^^^^ -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_parset Exit value 2 = 2 -par_dash_parset Exit value 2 = 2 -par_dash_man ### dash -par_dash_man ### From man env_parallel -par_dash_man aliases with = & " ! ' work -par_dash_man aliases with = & " ! ' work -par_dash_man aliases with = & " ! ' work -par_dash_man aliases with = & " ! ' work -par_dash_man aliases with = & " ! ' work -par_dash_man multiline -par_dash_man aliases with = & " ! ' work -par_dash_man multiline -par_dash_man aliases with = & " ! ' work -par_dash_man multiline -par_dash_man aliases with = & " ! ' work -par_dash_man multiline -par_dash_man aliases with = & " ! ' work -par_dash_man multiline -par_dash_man aliases with = & " ! ' work -par_dash_man variables with = & " ! ' work -par_dash_man variables with = & " ! ' work -par_dash_man variables with = & " ! ' work -par_dash_man variables with = & " ! ' work -par_dash_man variables with = & " ! ' work -par_dash_man multiline -par_dash_man variables with = & " ! ' work -par_dash_man multiline -par_dash_man variables with = & " ! ' work -par_dash_man multiline -par_dash_man variables with = & " ! ' work -par_dash_man multiline -par_dash_man variables with = & " ! ' work -par_dash_man multiline -par_dash_man variables with = & " ! ' work -par_dash_man exit value 2 should be 2 -par_dash_man Unknown option: no-such-option -par_dash_man exit value 255 should be 255 -par_dash_funky -par_dash_funky ' ' -par_dash_funky ' par_dash_funky  !"#$%&'"'"'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~' -par_dash_funky 3 arg alias_works -par_dash_funky 3 arg alias_works_over_ssh -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 OK_bigfunc -par_dash_environment_too_big OK_bigfunc_remote -par_dash_environment_too_big OK_bigfunc_quote -par_dash_environment_too_big OK_bigfunc_quote_remote -par_dash_environment_too_big Rest should fail - functions not supported in dash -par_dash_environment_too_big parallel: Error: Command line too long (XXX >= XXX) at input 0: fail_bigvar -par_dash_environment_too_big parallel: Error: Command line too long (XXX >= XXX) at input 0: fail_bigvar_remote -par_dash_environment_too_big parallel: Error: Command line too long (XXX >= XXX) at input 0: fail_bigvar_quote -par_dash_environment_too_big parallel: Error: Command line too long (XXX >= XXX) at input 0: fail_bigvar_quote_remote -par_dash_environment_too_big fail_bigfunc-not-supported -par_dash_environment_too_big fail_bigfunc_remote-not-supported -par_dash_environment_too_big fail_bigfunc_quote-not-supported -par_dash_environment_too_big fail_bigfunc_quote_remote-not-supported -par_dash_env_parallel_session ### Test env_parallel --session -par_dash_env_parallel_session ### level0 should be hidden, level1 should be transferred -par_dash_env_parallel_session -par_dash_env_parallel_session script: 33: level0func: not found -par_dash_env_parallel_session script: 33: level0alias: not found -par_dash_env_parallel_session script: 33: Bad substitution -par_dash_env_parallel_session -par_dash_env_parallel_session /bin/dash: XXX: level0func: not found -par_dash_env_parallel_session /bin/dash: XXX: level0alias: not found -par_dash_env_parallel_session /bin/dash: XXX: Bad substitution -par_dash_env_parallel_session l1var -par_dash_env_parallel_session l1alias -par_dash_env_parallel_session script: 33: level1func: not found -par_dash_env_parallel_session script: 33: Bad substitution -par_dash_env_parallel_session l1var -par_dash_env_parallel_session l1alias -par_dash_env_parallel_session /bin/dash: XXX: level1func: not found -par_dash_env_parallel_session /bin/dash: XXX: Bad substitution -par_dash_env_parallel_session ### level0+1 should be hidden, level2 should be transferred -par_dash_env_parallel_session -par_dash_env_parallel_session script: 4: level0func: not found -par_dash_env_parallel_session script: 4: level0alias: not found -par_dash_env_parallel_session script: 4: Bad substitution -par_dash_env_parallel_session -par_dash_env_parallel_session /bin/dash: 3: level0func: not found -par_dash_env_parallel_session /bin/dash: 3: level0alias: not found -par_dash_env_parallel_session /bin/dash: 3: Bad substitution -par_dash_env_parallel_session -par_dash_env_parallel_session script: 4: level1func: not found -par_dash_env_parallel_session script: 4: level1alias: not found -par_dash_env_parallel_session script: 4: Bad substitution -par_dash_env_parallel_session -par_dash_env_parallel_session /bin/dash: 3: level1func: not found -par_dash_env_parallel_session /bin/dash: 3: level1alias: not found -par_dash_env_parallel_session /bin/dash: 3: Bad substitution -par_dash_env_parallel_session l2var -par_dash_env_parallel_session l2alias -par_dash_env_parallel_session script: 4: level2func: not found -par_dash_env_parallel_session script: 4: Bad substitution -par_dash_env_parallel_session l2var -par_dash_env_parallel_session l2alias -par_dash_env_parallel_session /bin/dash: 3: level2func: not found -par_dash_env_parallel_session /bin/dash: 3: Bad substitution -par_dash_env_parallel_session ### level0 should be hidden, level1+2 should be transferred -par_dash_env_parallel_session -par_dash_env_parallel_session script: 35: level0func: not found -par_dash_env_parallel_session script: 35: level0alias: not found -par_dash_env_parallel_session script: 35: Bad substitution -par_dash_env_parallel_session -par_dash_env_parallel_session /bin/dash: XXX: level0func: not found -par_dash_env_parallel_session /bin/dash: XXX: level0alias: not found -par_dash_env_parallel_session /bin/dash: XXX: Bad substitution -par_dash_env_parallel_session l1var -par_dash_env_parallel_session l1alias -par_dash_env_parallel_session script: 35: level1func: not found -par_dash_env_parallel_session script: 35: Bad substitution -par_dash_env_parallel_session l1var -par_dash_env_parallel_session l1alias -par_dash_env_parallel_session /bin/dash: XXX: level1func: not found -par_dash_env_parallel_session /bin/dash: XXX: Bad substitution -par_dash_env_parallel_session l2var -par_dash_env_parallel_session l2alias -par_dash_env_parallel_session script: 35: level2func: not found -par_dash_env_parallel_session script: 35: Bad substitution -par_dash_env_parallel_session l2var -par_dash_env_parallel_session l2alias -par_dash_env_parallel_session /bin/dash: XXX: level2func: not found -par_dash_env_parallel_session /bin/dash: XXX: Bad substitution -par_dash_env_parallel_session ### level0+1+2 should be transferred -par_dash_env_parallel_session l0var -par_dash_env_parallel_session l0alias -par_dash_env_parallel_session script: 30: level0func: not found -par_dash_env_parallel_session script: 30: Bad substitution -par_dash_env_parallel_session l0var -par_dash_env_parallel_session l0alias -par_dash_env_parallel_session /bin/dash: XXX: level0func: not found -par_dash_env_parallel_session /bin/dash: XXX: Bad substitution -par_dash_env_parallel_session l1var -par_dash_env_parallel_session l1alias -par_dash_env_parallel_session script: 30: level1func: not found -par_dash_env_parallel_session script: 30: Bad substitution -par_dash_env_parallel_session l1var -par_dash_env_parallel_session l1alias -par_dash_env_parallel_session /bin/dash: XXX: level1func: not found -par_dash_env_parallel_session /bin/dash: XXX: Bad substitution -par_dash_env_parallel_session l2var -par_dash_env_parallel_session l2alias -par_dash_env_parallel_session script: 30: level2func: not found -par_dash_env_parallel_session script: 30: Bad substitution -par_dash_env_parallel_session l2var -par_dash_env_parallel_session l2alias -par_dash_env_parallel_session /bin/dash: XXX: level2func: not found -par_dash_env_parallel_session /bin/dash: XXX: Bad substitution -par_dash_env_parallel_session /bin/dash: 1: aliasbefore: not found -par_dash_env_parallel_session script: 2: aliasbefore: not found -par_dash_env_parallel_session no_before -par_dash_env_parallel_session no_before -par_dash_env_parallel_session after aliasafter_OK -par_dash_env_parallel_session after aliasafter_OK -par_dash_env_parallel_session after varafter_OK -par_dash_env_parallel_session after varafter_OK -par_dash_env_parallel OK -par_dash_env_parallel OK -par_dash_env_parallel alias line 1 -par_dash_env_parallel alias line 1 -par_dash_env_parallel alias line 2 -par_dash_env_parallel alias line 2 -par_dash_env_parallel alias line 3 -par_dash_env_parallel alias line 3 -par_dash_env_parallel alias2 line 1 -par_dash_env_parallel alias2 line 1 -par_dash_env_parallel alias2 line 2 -par_dash_env_parallel alias2 line 2 -par_dash_env_parallel bug #50435: Remote fifo broke in 20150522 -par_dash_env_parallel bug #52534: Tail of multiline alias is ignored -par_dash_env_parallel data from stdin -par_dash_env_parallel data from stdin -par_csh_underscore ### csh -par_csh_underscore ### Testing of --env _ par_csh_underscore -par_csh_underscore #: Command not found. par_csh_underscore -par_csh_underscore variables and arrays in aliases work par_csh_underscore -par_csh_underscore variables and arrays in aliases work par_csh_underscore -par_csh_underscore variables and arrays in aliases work par_csh_underscore -par_csh_underscore variables and arrays in aliases work par_csh_underscore -par_csh_underscore variables and arrays in aliases work par_csh_underscore -par_csh_underscore variables and arrays in aliases work par_csh_underscore -par_csh_underscore myvar: Undefined variable. par_csh_underscore -par_csh_underscore myvar: Undefined variable. par_csh_underscore -par_csh_underscore myarray: Undefined variable. par_csh_underscore -par_csh_underscore myarray: Undefined variable. par_csh_underscore -par_csh_underscore myecho: Command not found. par_csh_underscore -par_csh_underscore OK ^^^^^^^^^^^^^^^^^ if no myecho par_csh_underscore -par_csh_underscore myecho: Command not found. par_csh_underscore -par_csh_underscore OK ^^^^^^^^^^^^^^^^^ if no myecho par_csh_underscore -par_csh_underscore Connection to lo closed. par_csh_underscore -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__man_csh ### From man env_parallel +par__man_csh --colsep regexp Split input on regexp for positional replacements +par__man_csh --nonall Run the given command with no arguments on all sshlogins +par__man_csh --onall Run the given command with argument on all sshlogins +par__man_csh --pipe Split stdin (standard input) to multiple jobs. +par__man_csh --recend str Record end separator for --pipe. +par__man_csh --recstart str Record start separator for --pipe. +par__man_csh --slf .. Use ~/.parallel/sshloginfile as the list of sshlogins +par__man_csh --trc {}.bar Shorthand for --transfer --return {}.bar --cleanup +par__man_csh -S sshlogin Example: foo@server.example.com +par__man_csh -X Multiple arguments with context replace +par__man_csh -j n Run n jobs in parallel +par__man_csh -k Keep same order +par__man_csh Academic tradition requires you to cite works you base your article on. +par__man_csh GNU Parallel can do much more. See 'man parallel' for details +par__man_csh If you pay 10000 EUR you should feel free to use GNU Parallel without citing. +par__man_csh If you use programs that use GNU Parallel to process data for an article in a +par__man_csh This helps funding further development; AND IT WON'T COST YOU A CENT. +par__man_csh Unknown option: no-such-option +par__man_csh Usage: +par__man_csh With --plus: {} = {+/}/{/} = {.}.{+.} = {+/}/{/.}.{+.} = {..}.{+..} = +par__man_csh aliases with = & " work +par__man_csh aliases with = & " work +par__man_csh aliases with = & " work +par__man_csh aliases with = & " work +par__man_csh arrays +par__man_csh arrays +par__man_csh arrays +par__man_csh arrays +par__man_csh cat ... | parallel --pipe [options] [command [arguments]] +par__man_csh env_parallel +par__man_csh exit value 2 should be 2 +par__man_csh exit value 255 should be 255 +par__man_csh level +par__man_csh multi +par__man_csh parallel [options] [command [arguments]] (::: arguments|:::: argfile(s))... +par__man_csh parallel [options] [command [arguments]] < list_of_arguments +par__man_csh scientific publication, please cite: +par__man_csh too +par__man_csh too +par__man_csh too +par__man_csh too +par__man_csh variables with = & " work +par__man_csh variables with = & " work +par__man_csh variables with = & " work +par__man_csh variables with = & " work +par__man_csh with=&"' +par__man_csh with=&"' +par__man_csh with=&"' +par__man_csh with=&"' +par__man_csh work, +par__man_csh work, +par__man_csh work, +par__man_csh work, +par__man_csh {3} {3.} {3/} {3/.} {=3 perl code =} Positional replacement strings +par__man_csh {} {.} {/} {/.} {#} {%} {= perl code =} Replacement strings +par__man_dash ### dash +par__man_dash ### From man env_parallel +par__man_dash aliases with = & " ! ' work +par__man_dash aliases with = & " ! ' work +par__man_dash aliases with = & " ! ' work +par__man_dash aliases with = & " ! ' work +par__man_dash aliases with = & " ! ' work +par__man_dash multiline +par__man_dash aliases with = & " ! ' work +par__man_dash multiline +par__man_dash aliases with = & " ! ' work +par__man_dash multiline +par__man_dash aliases with = & " ! ' work +par__man_dash multiline +par__man_dash aliases with = & " ! ' work +par__man_dash multiline +par__man_dash aliases with = & " ! ' work +par__man_dash variables with = & " ! ' work +par__man_dash variables with = & " ! ' work +par__man_dash variables with = & " ! ' work +par__man_dash variables with = & " ! ' work +par__man_dash variables with = & " ! ' work +par__man_dash multiline +par__man_dash variables with = & " ! ' work +par__man_dash multiline +par__man_dash variables with = & " ! ' work +par__man_dash multiline +par__man_dash variables with = & " ! ' work +par__man_dash multiline +par__man_dash variables with = & " ! ' work +par__man_dash multiline +par__man_dash variables with = & " ! ' work +par__man_dash exit value 2 should be 2 +par__man_dash Unknown option: no-such-option +par__man_dash exit value 255 should be 255 +par__man_fish ### fish +par__man_fish Unknown option: no-such-option +par__man_fish variables with = & " ! ' work +par__man_fish variables with = & " ! ' work +par__man_fish variables with = & " ! ' work +par__man_fish variables with = & " ! ' work +par__man_fish variables with = & " ! ' work +par__man_fish ### From man env_parallel +par__man_fish aliases with = & " ! ' work +par__man_fish aliases with = & " ! ' work +par__man_fish aliases with = & " ! ' work +par__man_fish aliases with = & " ! ' work +par__man_fish aliases with = & " ! ' work +par__man_fish arrays +par__man_fish arrays +par__man_fish arrays +par__man_fish arrays +par__man_fish arrays with = & " ! ' work, too +par__man_fish env_parallel +par__man_fish exit value 2 should be 2 +par__man_fish exit value 255 should be 255 `sleep 1` +par__man_fish functions with = & " ! ' work +par__man_fish functions with = & " ! ' work +par__man_fish functions with = & " ! ' work +par__man_fish functions with = & " ! ' work +par__man_fish functions with = & " ! ' work +par__man_fish level +par__man_fish multi +par__man_fish multiline +par__man_fish multiline +par__man_fish multiline +par__man_fish multiline +par__man_fish multiline +par__man_fish too +par__man_fish too +par__man_fish too +par__man_fish too +par__man_fish variables with = & " ! ' work +par__man_fish variables with = & " ! ' work +par__man_fish variables with = & " ! ' work +par__man_fish variables with = & " ! ' work +par__man_fish variables with = & " ! ' work +par__man_fish with = & " ! ' +par__man_fish with = & " ! ' +par__man_fish with = & " ! ' +par__man_fish with = & " ! ' +par__man_fish work, +par__man_fish work, +par__man_fish work, +par__man_fish work, +par__man_ksh ### ksh +par__man_ksh ### From man env_parallel +par__man_ksh aliases with = & " ! ' work +par__man_ksh aliases with = & " ! ' work +par__man_ksh aliases with = & " ! ' work +par__man_ksh aliases with = & " ! ' work +par__man_ksh aliases with = & " ! ' work +par__man_ksh multiline +par__man_ksh aliases with = & " ! ' work +par__man_ksh env_parallel: Warning: Alias "multiline" contains newline. +par__man_ksh env_parallel: Warning: Make sure the command has at least one newline after "multiline". +par__man_ksh env_parallel: Warning: See BUGS in "man env_parallel". +par__man_ksh multiline +par__man_ksh aliases with = & " ! ' work +par__man_ksh env_parallel: Warning: Alias "multiline" contains newline. +par__man_ksh env_parallel: Warning: Make sure the command has at least one newline after "multiline". +par__man_ksh env_parallel: Warning: See BUGS in "man env_parallel". +par__man_ksh multiline +par__man_ksh aliases with = & " ! ' work +par__man_ksh env_parallel: Warning: Alias "multiline" contains newline. +par__man_ksh env_parallel: Warning: Make sure the command has at least one newline after "multiline". +par__man_ksh env_parallel: Warning: See BUGS in "man env_parallel". +par__man_ksh multiline +par__man_ksh aliases with = & " ! ' work +par__man_ksh env_parallel: Warning: Alias "multiline" contains newline. +par__man_ksh env_parallel: Warning: Make sure the command has at least one newline after "multiline". +par__man_ksh env_parallel: Warning: See BUGS in "man env_parallel". +par__man_ksh multiline +par__man_ksh aliases with = & " ! ' work +par__man_ksh functions with = & " ! ' work +par__man_ksh functions with = & " ! ' work +par__man_ksh functions with = & " ! ' work +par__man_ksh functions with = & " ! ' work +par__man_ksh functions with = & " ! ' work +par__man_ksh variables with = & " ! ' work +par__man_ksh variables with = & " ! ' work +par__man_ksh variables with = & " ! ' work +par__man_ksh variables with = & " ! ' work +par__man_ksh variables with = & " ! ' work +par__man_ksh multiline +par__man_ksh variables with = & " ! ' work +par__man_ksh multiline +par__man_ksh variables with = & " ! ' work +par__man_ksh multiline +par__man_ksh variables with = & " ! ' work +par__man_ksh multiline +par__man_ksh variables with = & " ! ' work +par__man_ksh multiline +par__man_ksh variables with = & " ! ' work +par__man_ksh arrays with = & " ! ' work, too +par__man_ksh arrays +par__man_ksh with = & " ! ' +par__man_ksh work, +par__man_ksh too +par__man_ksh arrays +par__man_ksh with = & " ! ' +par__man_ksh work, +par__man_ksh too +par__man_ksh arrays +par__man_ksh with = & " ! ' +par__man_ksh work, +par__man_ksh too +par__man_ksh arrays +par__man_ksh with = & " ! ' +par__man_ksh work, +par__man_ksh too +par__man_ksh This may never work +par__man_ksh https://unix.stackexchange.com/questions/457031/extract-full-function-definitions +par__man_ksh /bin/ksh: line 3: syntax error at line XXX: `{' unmatched +par__man_ksh /bin/ksh: line 3: syntax error at line XXX: `{' unmatched +par__man_ksh /bin/ksh: line 3: syntax error at line XXX: `{' unmatched +par__man_ksh exit value 2 should be 2 +par__man_ksh Unknown option: no-such-option +par__man_ksh exit value 255 should be 255 +par__man_mksh ### mksh +par__man_mksh ### From man env_parallel +par__man_mksh aliases with = & " ! ' work +par__man_mksh aliases with = & " ! ' work +par__man_mksh aliases with = & " ! ' work +par__man_mksh aliases with = & " ! ' work +par__man_mksh aliases with = & " ! ' work +par__man_mksh multiline +par__man_mksh aliases with = & " ! ' work +par__man_mksh env_parallel: Warning: Alias "multiline" contains newline. +par__man_mksh env_parallel: Warning: Make sure the command has at least one newline after "multiline". +par__man_mksh env_parallel: Warning: See BUGS in "man env_parallel". +par__man_mksh multiline +par__man_mksh aliases with = & " ! ' work +par__man_mksh env_parallel: Warning: Alias "multiline" contains newline. +par__man_mksh env_parallel: Warning: Make sure the command has at least one newline after "multiline". +par__man_mksh env_parallel: Warning: See BUGS in "man env_parallel". +par__man_mksh multiline +par__man_mksh aliases with = & " ! ' work +par__man_mksh env_parallel: Warning: Alias "multiline" contains newline. +par__man_mksh env_parallel: Warning: Make sure the command has at least one newline after "multiline". +par__man_mksh env_parallel: Warning: See BUGS in "man env_parallel". +par__man_mksh multiline +par__man_mksh aliases with = & " ! ' work +par__man_mksh env_parallel: Warning: Alias "multiline" contains newline. +par__man_mksh env_parallel: Warning: Make sure the command has at least one newline after "multiline". +par__man_mksh env_parallel: Warning: See BUGS in "man env_parallel". +par__man_mksh multiline +par__man_mksh aliases with = & " ! ' work +par__man_mksh functions with = & " ! ' work +par__man_mksh functions with = & " ! ' work +par__man_mksh functions with = & " ! ' work +par__man_mksh functions with = & " ! ' work +par__man_mksh functions with = & " ! ' work +par__man_mksh variables with = & " ! ' work +par__man_mksh variables with = & " ! ' work +par__man_mksh variables with = & " ! ' work +par__man_mksh variables with = & " ! ' work +par__man_mksh variables with = & " ! ' work +par__man_mksh multiline +par__man_mksh variables with = & " ! ' work +par__man_mksh multiline +par__man_mksh variables with = & " ! ' work +par__man_mksh multiline +par__man_mksh variables with = & " ! ' work +par__man_mksh multiline +par__man_mksh variables with = & " ! ' work +par__man_mksh multiline +par__man_mksh variables with = & " ! ' work +par__man_mksh arrays with = & " ! ' work, too +par__man_mksh arrays +par__man_mksh with = & " ! ' +par__man_mksh work, +par__man_mksh too +par__man_mksh arrays +par__man_mksh with = & " ! ' +par__man_mksh work, +par__man_mksh too +par__man_mksh arrays +par__man_mksh with = & " ! ' +par__man_mksh work, +par__man_mksh too +par__man_mksh arrays +par__man_mksh with = & " ! ' +par__man_mksh work, +par__man_mksh too +par__man_mksh multi +par__man_mksh level +par__man_mksh env_parallel +par__man_mksh exit value 2 should be 2 +par__man_mksh Unknown option: no-such-option +par__man_mksh exit value 255 should be 255 +par__man_sh ### sh +par__man_sh ### From man env_parallel +par__man_sh aliases with = & " ! ' work +par__man_sh aliases with = & " ! ' work +par__man_sh aliases with = & " ! ' work +par__man_sh aliases with = & " ! ' work +par__man_sh aliases with = & " ! ' work +par__man_sh multiline +par__man_sh aliases with = & " ! ' work +par__man_sh multiline +par__man_sh aliases with = & " ! ' work +par__man_sh multiline +par__man_sh aliases with = & " ! ' work +par__man_sh multiline +par__man_sh aliases with = & " ! ' work +par__man_sh multiline +par__man_sh aliases with = & " ! ' work +par__man_sh variables with = & " ! ' work +par__man_sh variables with = & " ! ' work +par__man_sh variables with = & " ! ' work +par__man_sh variables with = & " ! ' work +par__man_sh variables with = & " ! ' work +par__man_sh multiline +par__man_sh variables with = & " ! ' work +par__man_sh multiline +par__man_sh variables with = & " ! ' work +par__man_sh multiline +par__man_sh variables with = & " ! ' work +par__man_sh multiline +par__man_sh variables with = & " ! ' work +par__man_sh multiline +par__man_sh variables with = & " ! ' work +par__man_sh exit value 2 should be 2 +par__man_sh Unknown option: no-such-option +par__man_sh exit value 255 should be 255 +par__man_tcsh ### tcsh +par__man_tcsh ### From man env_parallel par__man_tcsh +par__man_tcsh #: Command not found. par__man_tcsh +par__man_tcsh aliases with = & " work par__man_tcsh +par__man_tcsh aliases with = & " work par__man_tcsh +par__man_tcsh aliases with = & " work par__man_tcsh +par__man_tcsh aliases with = & " work par__man_tcsh +par__man_tcsh Functions not supported par__man_tcsh +par__man_tcsh #: Command not found. par__man_tcsh +par__man_tcsh #: Command not found. par__man_tcsh +par__man_tcsh variables with = & " work par__man_tcsh +par__man_tcsh variables with = & " work par__man_tcsh +par__man_tcsh variables with = & " work par__man_tcsh +par__man_tcsh variables with = & " work par__man_tcsh +par__man_tcsh #: Command not found. par__man_tcsh +par__man_tcsh arrays par__man_tcsh +par__man_tcsh with=&"' par__man_tcsh +par__man_tcsh work, par__man_tcsh +par__man_tcsh too par__man_tcsh +par__man_tcsh arrays par__man_tcsh +par__man_tcsh with=&"' par__man_tcsh +par__man_tcsh work, par__man_tcsh +par__man_tcsh too par__man_tcsh +par__man_tcsh arrays par__man_tcsh +par__man_tcsh with=&"' par__man_tcsh +par__man_tcsh work, par__man_tcsh +par__man_tcsh too par__man_tcsh +par__man_tcsh arrays par__man_tcsh +par__man_tcsh with=&"' par__man_tcsh +par__man_tcsh work, par__man_tcsh +par__man_tcsh too par__man_tcsh +par__man_tcsh Segmentation faults? Are you running bsd-csh version 20110502-3? par__man_tcsh +par__man_tcsh multi par__man_tcsh +par__man_tcsh level par__man_tcsh +par__man_tcsh env_parallel par__man_tcsh +par__man_tcsh exit value 2 should be 2 par__man_tcsh +par__man_tcsh Unknown option: no-such-option par__man_tcsh +par__man_tcsh Usage: par__man_tcsh +par__man_tcsh par__man_tcsh +par__man_tcsh parallel [options] [command [arguments]] < list_of_arguments par__man_tcsh +par__man_tcsh parallel [options] [command [arguments]] (::: arguments|:::: argfile(s))... par__man_tcsh +par__man_tcsh cat ... | parallel --pipe [options] [command [arguments]] par__man_tcsh +par__man_tcsh par__man_tcsh +par__man_tcsh -j n Run n jobs in parallel par__man_tcsh +par__man_tcsh -k Keep same order par__man_tcsh +par__man_tcsh -X Multiple arguments with context replace par__man_tcsh +par__man_tcsh --colsep regexp Split input on regexp for positional replacements par__man_tcsh +par__man_tcsh {} {.} {/} {/.} {#} {%} {= perl code =} Replacement strings par__man_tcsh +par__man_tcsh {3} {3.} {3/} {3/.} {=3 perl code =} Positional replacement strings par__man_tcsh +par__man_tcsh With --plus: {} = {+/}/{/} = {.}.{+.} = {+/}/{/.}.{+.} = {..}.{+..} = par__man_tcsh +par__man_tcsh {+/}/{/..}.{+..} = {...}.{+...} = {+/}/{/...}.{+...} par__man_tcsh +par__man_tcsh par__man_tcsh +par__man_tcsh -S sshlogin Example: foo@server.example.com par__man_tcsh +par__man_tcsh --slf .. Use ~/.parallel/sshloginfile as the list of sshlogins par__man_tcsh +par__man_tcsh --trc {}.bar Shorthand for --transfer --return {}.bar --cleanup par__man_tcsh +par__man_tcsh --onall Run the given command with argument on all sshlogins par__man_tcsh +par__man_tcsh --nonall Run the given command with no arguments on all sshlogins par__man_tcsh +par__man_tcsh par__man_tcsh +par__man_tcsh --pipe Split stdin (standard input) to multiple jobs. par__man_tcsh +par__man_tcsh --recend str Record end separator for --pipe. par__man_tcsh +par__man_tcsh --recstart str Record start separator for --pipe. par__man_tcsh +par__man_tcsh par__man_tcsh +par__man_tcsh GNU Parallel can do much more. See 'man parallel' for details par__man_tcsh +par__man_tcsh par__man_tcsh +par__man_tcsh Academic tradition requires you to cite works you base your article on. par__man_tcsh +par__man_tcsh If you use programs that use GNU Parallel to process data for an article in a par__man_tcsh +par__man_tcsh scientific publication, please cite: par__man_tcsh +par__man_tcsh par__man_tcsh -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 GNU Parallel can do much more. See 'man parallel' for details -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 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 with = & " work -par_csh_man aliases with = & " work -par_csh_man aliases with = & " work -par_csh_man aliases with = & " 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 env_parallel -par_csh_man exit value 2 should be 2 -par_csh_man exit value 255 should be 255 -par_csh_man level -par_csh_man multi -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 with = & " work -par_csh_man variables with = & " work -par_csh_man variables with = & " work -par_csh_man variables with = & " work -par_csh_man with=&"' -par_csh_man with=&"' -par_csh_man with=&"' -par_csh_man with=&"' -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 -par_csh_funky -par_csh_funky -par_csh_funky 3 arg alias_works -par_csh_funky 3 arg alias_works_over_ssh -par_csh_funky Funky- par_csh_funky  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~-funky alias_var_works -par_csh_funky Funky- par_csh_funky  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~-funky alias_var_works_over_ssh -par_csh_funky \\\\\\\\ \ \ \ \ par_csh_funky \\\\\\\\\\\\\\ \!\"\#\$%\&\'\(\)\*+,-./0123456789:\;\<\=\>\?@ABCDEFGHIJKLMNOPQRSTUVWXYZ\[\\\]\^_\`abcdefghijklmnopqrstuvwxyz\{\|\}\~\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ -par_csh_funky func_echo: Command not found. -par_csh_funky func_echo: Command not found. -par_csh_funky myvar works -par_csh_funky myvar works -par_csh_funky space special chars problem -par_csh_funky space special chars problem -par_csh_environment_too_big Not implemented -par_csh_env_parallel_session Not implemented -par_csh_env_parallel bug #50435: Remote fifo broke in 20150522 -par_csh_env_parallel data from stdin -par_csh_env_parallel OK -par_csh_env_parallel data from stdin -par_csh_env_parallel 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 script: line XXX: not_copied_alias: command not found -par_bash_underscore script: line XXX: 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 environment: line XXX: myecho: command not found -par_bash_underscore OK if no myecho ^^^^^^^^^^^^^^^^^^^^^^^^^ -par_bash_underscore script: line XXX: myecho: command not found -par_bash_underscore OK if no myecho ^^^^^^^^^^^^^^^^^^^^^^^^^ -par_bash_underscore /bin/bash: line XXX: myfunc: command not found -par_bash_underscore OK if no myfunc ^^^^^^^^^^^^^^^^^^^^^^^^^ -par_bash_underscore script: line XXX: 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 myecho myvar myarr 1 myfun foo myecho myvar myarr 1 myfun bar myecho myvar myarr 1 myfun baz -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_parset Exit value 2 = 2 -par_bash_parset Exit value 2 = 2 -par_bash_man ### bash -par_bash_man ### From man env_parallel -par_bash_man aliases with = & " ! ' work -par_bash_man aliases with = & " ! ' work -par_bash_man aliases with = & " ! ' work -par_bash_man aliases with = & " ! ' work -par_bash_man aliases with = & " ! ' work -par_bash_man multiline -par_bash_man aliases with = & " ! ' work -par_bash_man env_parallel: Warning: Alias 'multiline' contains newline. -par_bash_man env_parallel: Warning: Make sure the command has at least one newline after 'multiline'. -par_bash_man env_parallel: Warning: See BUGS in 'man env_parallel'. -par_bash_man multiline -par_bash_man aliases with = & " ! ' work -par_bash_man but only when followed by a newline -par_bash_man env_parallel: Warning: Alias 'multiline' contains newline. -par_bash_man env_parallel: Warning: Make sure the command has at least one newline after 'multiline'. -par_bash_man env_parallel: Warning: See BUGS in 'man env_parallel'. -par_bash_man multiline -par_bash_man aliases with = & " ! ' work -par_bash_man but only when followed by a newline -par_bash_man env_parallel: Warning: Alias 'multiline' contains newline. -par_bash_man env_parallel: Warning: Make sure the command has at least one newline after 'multiline'. -par_bash_man env_parallel: Warning: See BUGS in 'man env_parallel'. -par_bash_man multiline -par_bash_man aliases with = & " ! ' work -par_bash_man but only when followed by a newline -par_bash_man env_parallel: Warning: Alias 'multiline' contains newline. -par_bash_man env_parallel: Warning: Make sure the command has at least one newline after 'multiline'. -par_bash_man env_parallel: Warning: See BUGS in 'man env_parallel'. -par_bash_man multiline -par_bash_man aliases with = & " ! ' work -par_bash_man but only when followed by a newline -par_bash_man functions with = & " ! ' work -par_bash_man functions with = & " ! ' work -par_bash_man functions with = & " ! ' work -par_bash_man functions with = & " ! ' work -par_bash_man functions with = & " ! ' work -par_bash_man variables with = & " ! ' work -par_bash_man variables with = & " ! ' work -par_bash_man variables with = & " ! ' work -par_bash_man variables with = & " ! ' work -par_bash_man variables with = & " ! ' work -par_bash_man multiline -par_bash_man variables with = & " ! ' work -par_bash_man multiline -par_bash_man variables with = & " ! ' work -par_bash_man multiline -par_bash_man variables with = & " ! ' work -par_bash_man multiline -par_bash_man variables with = & " ! ' work -par_bash_man multiline -par_bash_man variables with = & " ! ' work -par_bash_man arrays with = & " ! ' work, too -par_bash_man arrays -par_bash_man with = & " ! ' -par_bash_man work, -par_bash_man too -par_bash_man arrays -par_bash_man with = & " ! ' -par_bash_man work, -par_bash_man too -par_bash_man arrays -par_bash_man with = & " ! ' -par_bash_man work, -par_bash_man too -par_bash_man arrays -par_bash_man with = & " ! ' -par_bash_man work, -par_bash_man too -par_bash_man multi -par_bash_man level -par_bash_man env_parallel -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 -funkymultiline -par_bash_funky -funkymultiline -par_bash_funky space 6 -par_bash_funky space 6 -par_bash_funky ' ' -par_bash_funky ' ' -par_bash_funky ' par_bash_funky  !"#$%&'"'"'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~' -par_bash_funky 3 arg alias_works -par_bash_funky 3 arg alias_works_over_ssh -par_bash_funky Funkyline- par_bash_funky  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~-funkyline -par_bash_funky Funkyline- par_bash_funky  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~-funkyline -par_bash_funky Funkymultiline- -par_bash_funky Funkymultiline- -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_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 parallel: Error: Command line too long (XXX >= XXX) at input 0: fail_bigvar -par_bash_environment_too_big parallel: Error: Command line too long (XXX >= XXX) at input 0: fail_bigvar_remote -par_bash_environment_too_big parallel: Error: Command line too long (XXX >= XXX) at input 0: fail_bigvar_quote -par_bash_environment_too_big parallel: Error: Command line too long (XXX >= XXX) at input 0: fail_bigvar_quote_remote -par_bash_environment_too_big parallel: Error: Command line too long (XXX >= XXX) at input 0: fail_bigfunc -par_bash_environment_too_big parallel: Error: Command line too long (XXX >= XXX) at input 0: fail_bigfunc_remote -par_bash_environment_too_big parallel: Error: Command line too long (XXX >= XXX) at input 0: fail_bigfunc_quote -par_bash_environment_too_big parallel: Error: Command line too long (XXX >= XXX) at input 0: fail_bigfunc_quote_remote -par_bash_env_parallel_session ### Test env_parallel --session / --end-session -par_bash_env_parallel_session ### level0 should be hidden, level1 should be transferred -par_bash_env_parallel_session -par_bash_env_parallel_session fail -par_bash_env_parallel_session script: line XXX: level0func: command not found -par_bash_env_parallel_session script: line XXX: level0alias: command not found -par_bash_env_parallel_session -par_bash_env_parallel_session fail -par_bash_env_parallel_session /bin/bash: line XXX: level0func: command not found -par_bash_env_parallel_session /bin/bash: line XXX: level0alias: command not found -par_bash_env_parallel_session l1var -par_bash_env_parallel_session l1func -par_bash_env_parallel_session l1alias -par_bash_env_parallel_session level1 array OK -par_bash_env_parallel_session l1var -par_bash_env_parallel_session l1func -par_bash_env_parallel_session l1alias -par_bash_env_parallel_session level1 array OK -par_bash_env_parallel_session ### level0+1 should be hidden, level2 should be transferred -par_bash_env_parallel_session -par_bash_env_parallel_session fail -par_bash_env_parallel_session script: line XXX: level0func: command not found -par_bash_env_parallel_session script: line XXX: level0alias: command not found -par_bash_env_parallel_session -par_bash_env_parallel_session fail -par_bash_env_parallel_session /bin/bash: line XXX: level0func: command not found -par_bash_env_parallel_session /bin/bash: line XXX: level0alias: command not found -par_bash_env_parallel_session -par_bash_env_parallel_session fail -par_bash_env_parallel_session script: line XXX: level1func: command not found -par_bash_env_parallel_session script: line XXX: level1alias: command not found -par_bash_env_parallel_session -par_bash_env_parallel_session fail -par_bash_env_parallel_session /bin/bash: line XXX: level1func: command not found -par_bash_env_parallel_session /bin/bash: line XXX: level1alias: command not found -par_bash_env_parallel_session l2var -par_bash_env_parallel_session l2func -par_bash_env_parallel_session l2alias -par_bash_env_parallel_session level2 array OK -par_bash_env_parallel_session l2var -par_bash_env_parallel_session l2func -par_bash_env_parallel_session l2alias -par_bash_env_parallel_session level2 array OK -par_bash_env_parallel_session ### level0 should be hidden, level1+2 should be transferred -par_bash_env_parallel_session -par_bash_env_parallel_session fail -par_bash_env_parallel_session script: line XXX: level0func: command not found -par_bash_env_parallel_session script: line XXX: level0alias: command not found -par_bash_env_parallel_session -par_bash_env_parallel_session fail -par_bash_env_parallel_session /bin/bash: line XXX: level0func: command not found -par_bash_env_parallel_session /bin/bash: line XXX: level0alias: command not found -par_bash_env_parallel_session l1var -par_bash_env_parallel_session l1func -par_bash_env_parallel_session l1alias -par_bash_env_parallel_session level1 array OK -par_bash_env_parallel_session l1var -par_bash_env_parallel_session l1func -par_bash_env_parallel_session l1alias -par_bash_env_parallel_session level1 array OK -par_bash_env_parallel_session l2var -par_bash_env_parallel_session l2func -par_bash_env_parallel_session l2alias -par_bash_env_parallel_session level2 array OK -par_bash_env_parallel_session l2var -par_bash_env_parallel_session l2func -par_bash_env_parallel_session l2alias -par_bash_env_parallel_session level2 array OK -par_bash_env_parallel_session ### level0+1+2 should be transferred -par_bash_env_parallel_session l0var -par_bash_env_parallel_session l0func -par_bash_env_parallel_session l0alias -par_bash_env_parallel_session level0 array OK -par_bash_env_parallel_session l0var -par_bash_env_parallel_session l0func -par_bash_env_parallel_session l0alias -par_bash_env_parallel_session level0 array OK -par_bash_env_parallel_session l1var -par_bash_env_parallel_session l1func -par_bash_env_parallel_session l1alias -par_bash_env_parallel_session level1 array OK -par_bash_env_parallel_session l1var -par_bash_env_parallel_session l1func -par_bash_env_parallel_session l1alias -par_bash_env_parallel_session level1 array OK -par_bash_env_parallel_session l2var -par_bash_env_parallel_session l2func -par_bash_env_parallel_session l2alias -par_bash_env_parallel_session level2 array OK -par_bash_env_parallel_session l2var -par_bash_env_parallel_session l2func -par_bash_env_parallel_session l2alias -par_bash_env_parallel_session level2 array OK -par_bash_env_parallel_session /bin/bash: line XXX: aliasl0: command not found -par_bash_env_parallel_session script: line XXX: aliasl0: command not found -par_bash_env_parallel_session /bin/bash: line XXX: funcl0: command not found -par_bash_env_parallel_session script: line XXX: funcl0: command not found -par_bash_env_parallel_session no_before -par_bash_env_parallel_session no_before -par_bash_env_parallel_session no_before -par_bash_env_parallel_session no_before -par_bash_env_parallel_session l1 aliasl1_OK -par_bash_env_parallel_session l1 aliasl1_OK -par_bash_env_parallel_session l1 funcl1_OK -par_bash_env_parallel_session l1 funcl1_OK -par_bash_env_parallel_session l1 varl1_OK -par_bash_env_parallel_session l1 varl1_OK -par_bash_env_parallel_session array l1 arrayl1_OK -par_bash_env_parallel_session array l1 arrayl1_OK -par_bash_env_parallel OK -par_bash_env_parallel OK -par_bash_env_parallel alias line 1 -par_bash_env_parallel alias line 1 -par_bash_env_parallel alias line 2 -par_bash_env_parallel alias line 2 -par_bash_env_parallel alias line 3 -par_bash_env_parallel alias line 3 -par_bash_env_parallel alias2 line 1 -par_bash_env_parallel alias2 line 1 -par_bash_env_parallel alias2 line 2 -par_bash_env_parallel alias2 line 2 -par_bash_env_parallel bug #50435: Remote fifo broke in 20150522 -par_bash_env_parallel bug #52534: Tail of multiline alias is ignored -par_bash_env_parallel data from stdin -par_bash_env_parallel data from stdin -par_bash_env_parallel env_parallel: Warning: Alias 'myalias' contains newline. -par_bash_env_parallel env_parallel: Warning: Alias 'myalias' contains newline. -par_bash_env_parallel env_parallel: Warning: Alias 'myalias2' contains newline. -par_bash_env_parallel env_parallel: Warning: Alias 'myalias2' contains newline. -par_bash_env_parallel env_parallel: Warning: Make sure the command has at least one newline after 'myalias'. -par_bash_env_parallel env_parallel: Warning: Make sure the command has at least one newline after 'myalias'. -par_bash_env_parallel env_parallel: Warning: Make sure the command has at least one newline after 'myalias2'. -par_bash_env_parallel env_parallel: Warning: Make sure the command has at least one newline after 'myalias2'. -par_bash_env_parallel env_parallel: Warning: See BUGS in 'man env_parallel'. -par_bash_env_parallel env_parallel: Warning: See BUGS in 'man env_parallel'. -par_bash_env_parallel env_parallel: Warning: See BUGS in 'man env_parallel'. -par_bash_env_parallel env_parallel: Warning: See BUGS in 'man env_parallel'. -par_ash_underscore ### ash -par_ash_underscore ### Testing of --env _ -par_ash_underscore variables in aliases work -par_ash_underscore variables in aliases work -par_ash_underscore variables in aliases work -par_ash_underscore variables in aliases work -par_ash_underscore script: 4: not_copied_alias: not found -par_ash_underscore error=OK -par_ash_underscore aliases work -par_ash_underscore aliases work -par_ash_underscore /bin/ash: 1: myecho: not found -par_ash_underscore OK if no myecho ^^^^^^^^^^^^^^^^^ -par_ash_underscore script: 2: myecho: not found -par_ash_underscore OK if no myecho ^^^^^^^^^^^^^^^^^ -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_parset Exit value 2 = 2 -par_ash_parset Exit value 2 = 2 -par_ash_man ### ash -par_ash_man ### From man env_parallel -par_ash_man aliases with = & " ! ' work -par_ash_man aliases with = & " ! ' work -par_ash_man aliases with = & " ! ' work -par_ash_man aliases with = & " ! ' work -par_ash_man aliases with = & " ! ' work -par_ash_man multiline -par_ash_man aliases with = & " ! ' work -par_ash_man multiline -par_ash_man aliases with = & " ! ' work -par_ash_man multiline -par_ash_man aliases with = & " ! ' work -par_ash_man multiline -par_ash_man aliases with = & " ! ' work -par_ash_man multiline -par_ash_man aliases with = & " ! ' work -par_ash_man variables with = & " ! ' work -par_ash_man variables with = & " ! ' work -par_ash_man variables with = & " ! ' work -par_ash_man variables with = & " ! ' work -par_ash_man variables with = & " ! ' work -par_ash_man multiline -par_ash_man variables with = & " ! ' work -par_ash_man multiline -par_ash_man variables with = & " ! ' work -par_ash_man multiline -par_ash_man variables with = & " ! ' work -par_ash_man multiline -par_ash_man variables with = & " ! ' work -par_ash_man multiline -par_ash_man variables with = & " ! ' work -par_ash_man exit value 2 should be 2 -par_ash_man Unknown option: no-such-option -par_ash_man exit value 255 should be 255 -par_ash_funky -par_ash_funky ' ' -par_ash_funky ' par_ash_funky  !"#$%&'"'"'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~' -par_ash_funky 3 arg alias_works -par_ash_funky 3 arg alias_works_over_ssh -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 OK_bigfunc -par_ash_environment_too_big OK_bigfunc_remote -par_ash_environment_too_big OK_bigfunc_quote -par_ash_environment_too_big OK_bigfunc_quote_remote -par_ash_environment_too_big Rest should fail - functions not supported in ash -par_ash_environment_too_big parallel: Error: Command line too long (XXX >= XXX) at input 0: fail_bigvar -par_ash_environment_too_big parallel: Error: Command line too long (XXX >= XXX) at input 0: fail_bigvar_remote -par_ash_environment_too_big parallel: Error: Command line too long (XXX >= XXX) at input 0: fail_bigvar_quote -par_ash_environment_too_big parallel: Error: Command line too long (XXX >= XXX) at input 0: fail_bigvar_quote_remote -par_ash_environment_too_big fail_bigfunc-not-supported -par_ash_environment_too_big fail_bigfunc_remote-not-supported -par_ash_environment_too_big fail_bigfunc_quote-not-supported -par_ash_environment_too_big fail_bigfunc_quote_remote-not-supported -par_ash_env_parallel_session ### Test env_parallel --session -par_ash_env_parallel_session ### level0 should be hidden, level1 should be transferred -par_ash_env_parallel_session -par_ash_env_parallel_session script: 33: level0func: not found -par_ash_env_parallel_session script: 33: level0alias: not found -par_ash_env_parallel_session script: 33: Bad substitution -par_ash_env_parallel_session -par_ash_env_parallel_session /bin/ash: XXX: level0func: not found -par_ash_env_parallel_session /bin/ash: XXX: level0alias: not found -par_ash_env_parallel_session /bin/ash: XXX: Bad substitution -par_ash_env_parallel_session l1var -par_ash_env_parallel_session l1alias -par_ash_env_parallel_session script: 33: level1func: not found -par_ash_env_parallel_session script: 33: Bad substitution -par_ash_env_parallel_session l1var -par_ash_env_parallel_session l1alias -par_ash_env_parallel_session /bin/ash: XXX: level1func: not found -par_ash_env_parallel_session /bin/ash: XXX: Bad substitution -par_ash_env_parallel_session ### level0+1 should be hidden, level2 should be transferred -par_ash_env_parallel_session -par_ash_env_parallel_session script: 4: level0func: not found -par_ash_env_parallel_session script: 4: level0alias: not found -par_ash_env_parallel_session script: 4: Bad substitution -par_ash_env_parallel_session -par_ash_env_parallel_session /bin/ash: 3: level0func: not found -par_ash_env_parallel_session /bin/ash: 3: level0alias: not found -par_ash_env_parallel_session /bin/ash: 3: Bad substitution -par_ash_env_parallel_session -par_ash_env_parallel_session script: 4: level1func: not found -par_ash_env_parallel_session script: 4: level1alias: not found -par_ash_env_parallel_session script: 4: Bad substitution -par_ash_env_parallel_session -par_ash_env_parallel_session /bin/ash: 3: level1func: not found -par_ash_env_parallel_session /bin/ash: 3: level1alias: not found -par_ash_env_parallel_session /bin/ash: 3: Bad substitution -par_ash_env_parallel_session l2var -par_ash_env_parallel_session l2alias -par_ash_env_parallel_session script: 4: level2func: not found -par_ash_env_parallel_session script: 4: Bad substitution -par_ash_env_parallel_session l2var -par_ash_env_parallel_session l2alias -par_ash_env_parallel_session /bin/ash: 3: level2func: not found -par_ash_env_parallel_session /bin/ash: 3: Bad substitution -par_ash_env_parallel_session ### level0 should be hidden, level1+2 should be transferred -par_ash_env_parallel_session -par_ash_env_parallel_session script: 35: level0func: not found -par_ash_env_parallel_session script: 35: level0alias: not found -par_ash_env_parallel_session script: 35: Bad substitution -par_ash_env_parallel_session -par_ash_env_parallel_session /bin/ash: XXX: level0func: not found -par_ash_env_parallel_session /bin/ash: XXX: level0alias: not found -par_ash_env_parallel_session /bin/ash: XXX: Bad substitution -par_ash_env_parallel_session l1var -par_ash_env_parallel_session l1alias -par_ash_env_parallel_session script: 35: level1func: not found -par_ash_env_parallel_session script: 35: Bad substitution -par_ash_env_parallel_session l1var -par_ash_env_parallel_session l1alias -par_ash_env_parallel_session /bin/ash: XXX: level1func: not found -par_ash_env_parallel_session /bin/ash: XXX: Bad substitution -par_ash_env_parallel_session l2var -par_ash_env_parallel_session l2alias -par_ash_env_parallel_session script: 35: level2func: not found -par_ash_env_parallel_session script: 35: Bad substitution -par_ash_env_parallel_session l2var -par_ash_env_parallel_session l2alias -par_ash_env_parallel_session /bin/ash: XXX: level2func: not found -par_ash_env_parallel_session /bin/ash: XXX: Bad substitution -par_ash_env_parallel_session ### level0+1+2 should be transferred -par_ash_env_parallel_session l0var -par_ash_env_parallel_session l0alias -par_ash_env_parallel_session script: 30: level0func: not found -par_ash_env_parallel_session script: 30: Bad substitution -par_ash_env_parallel_session l0var -par_ash_env_parallel_session l0alias -par_ash_env_parallel_session /bin/ash: XXX: level0func: not found -par_ash_env_parallel_session /bin/ash: XXX: Bad substitution -par_ash_env_parallel_session l1var -par_ash_env_parallel_session l1alias -par_ash_env_parallel_session script: 30: level1func: not found -par_ash_env_parallel_session script: 30: Bad substitution -par_ash_env_parallel_session l1var -par_ash_env_parallel_session l1alias -par_ash_env_parallel_session /bin/ash: XXX: level1func: not found -par_ash_env_parallel_session /bin/ash: XXX: Bad substitution -par_ash_env_parallel_session l2var -par_ash_env_parallel_session l2alias -par_ash_env_parallel_session script: 30: level2func: not found -par_ash_env_parallel_session script: 30: Bad substitution -par_ash_env_parallel_session l2var -par_ash_env_parallel_session l2alias -par_ash_env_parallel_session /bin/ash: XXX: level2func: not found -par_ash_env_parallel_session /bin/ash: XXX: Bad substitution -par_ash_env_parallel_session /bin/ash: 1: aliasbefore: not found -par_ash_env_parallel_session script: 2: aliasbefore: not found -par_ash_env_parallel_session no_before -par_ash_env_parallel_session no_before -par_ash_env_parallel_session after aliasafter_OK -par_ash_env_parallel_session after aliasafter_OK -par_ash_env_parallel_session after varafter_OK -par_ash_env_parallel_session after varafter_OK -par_ash_env_parallel OK -par_ash_env_parallel OK -par_ash_env_parallel alias line 1 -par_ash_env_parallel alias line 1 -par_ash_env_parallel alias line 2 -par_ash_env_parallel alias line 2 -par_ash_env_parallel alias line 3 -par_ash_env_parallel alias line 3 -par_ash_env_parallel alias2 line 1 -par_ash_env_parallel alias2 line 1 -par_ash_env_parallel alias2 line 2 -par_ash_env_parallel alias2 line 2 -par_ash_env_parallel bug #50435: Remote fifo broke in 20150522 -par_ash_env_parallel bug #52534: Tail of multiline alias is ignored -par_ash_env_parallel data from stdin -par_ash_env_parallel data from stdin +par__man_tcsh par__man_tcsh +par__man_tcsh This helps funding further development; AND IT WON'T COST YOU A CENT. par__man_tcsh +par__man_tcsh If you pay 10000 EUR you should feel free to use GNU Parallel without citing. par__man_tcsh +par__man_tcsh par__man_tcsh +par__man_tcsh exit value 255 should be 255 par__man_tcsh +par__man_tcsh Connection to lo closed. par__man_tcsh +par__man_zsh ### zsh +par__man_zsh ### From man env_parallel +par__man_zsh aliases with = & " ! ' work +par__man_zsh aliases with = & " ! ' work +par__man_zsh aliases with = & " ! ' work +par__man_zsh aliases with = & " ! ' work +par__man_zsh aliases with = & " ! ' work +par__man_zsh multiline +par__man_zsh aliases with = & " ! ' work +par__man_zsh multiline +par__man_zsh aliases with = & " ! ' work +par__man_zsh multiline +par__man_zsh aliases with = & " ! ' work +par__man_zsh multiline +par__man_zsh aliases with = & " ! ' work +par__man_zsh multiline +par__man_zsh aliases with = & " ! ' work +par__man_zsh functions with = & " ! ' work +par__man_zsh functions with = & " ! ' work +par__man_zsh functions with = & " ! ' work +par__man_zsh functions with = & " ! ' work +par__man_zsh functions with = & " ! ' work +par__man_zsh variables with = & " ! ' work +par__man_zsh variables with = & " ! ' work +par__man_zsh variables with = & " ! ' work +par__man_zsh variables with = & " ! ' work +par__man_zsh variables with = & " ! ' work +par__man_zsh multiline +par__man_zsh variables with = & " ! ' work +par__man_zsh multiline +par__man_zsh variables with = & " ! ' work +par__man_zsh multiline +par__man_zsh variables with = & " ! ' work +par__man_zsh multiline +par__man_zsh variables with = & " ! ' work +par__man_zsh multiline +par__man_zsh variables with = & " ! ' work +par__man_zsh arrays with = & " ! ' work, too +par__man_zsh arrays +par__man_zsh with = & " ! ' +par__man_zsh work, +par__man_zsh too +par__man_zsh arrays +par__man_zsh with = & " ! ' +par__man_zsh work, +par__man_zsh too +par__man_zsh arrays +par__man_zsh with = & " ! ' +par__man_zsh work, +par__man_zsh too +par__man_zsh arrays +par__man_zsh with = & " ! ' +par__man_zsh work, +par__man_zsh too +par__man_zsh multi +par__man_zsh level +par__man_zsh env_parallel +par__man_zsh exit value 2 should be 2 +par__man_zsh Unknown option: no-such-option +par__man_zsh exit value 255 should be 255 +par_env_parallel_--session_ash ### Test env_parallel --session +par_env_parallel_--session_ash ### level0 should be hidden, level1 should be transferred +par_env_parallel_--session_ash +par_env_parallel_--session_ash script: 33: level0func: not found +par_env_parallel_--session_ash script: 33: level0alias: not found +par_env_parallel_--session_ash script: 33: Bad substitution +par_env_parallel_--session_ash +par_env_parallel_--session_ash /bin/ash: XXX: level0func: not found +par_env_parallel_--session_ash /bin/ash: XXX: level0alias: not found +par_env_parallel_--session_ash /bin/ash: XXX: Bad substitution +par_env_parallel_--session_ash l1var +par_env_parallel_--session_ash l1alias +par_env_parallel_--session_ash script: 33: level1func: not found +par_env_parallel_--session_ash script: 33: Bad substitution +par_env_parallel_--session_ash l1var +par_env_parallel_--session_ash l1alias +par_env_parallel_--session_ash /bin/ash: XXX: level1func: not found +par_env_parallel_--session_ash /bin/ash: XXX: Bad substitution +par_env_parallel_--session_ash ### level0+1 should be hidden, level2 should be transferred +par_env_parallel_--session_ash +par_env_parallel_--session_ash script: 4: level0func: not found +par_env_parallel_--session_ash script: 4: level0alias: not found +par_env_parallel_--session_ash script: 4: Bad substitution +par_env_parallel_--session_ash +par_env_parallel_--session_ash /bin/ash: 3: level0func: not found +par_env_parallel_--session_ash /bin/ash: 3: level0alias: not found +par_env_parallel_--session_ash /bin/ash: 3: Bad substitution +par_env_parallel_--session_ash +par_env_parallel_--session_ash script: 4: level1func: not found +par_env_parallel_--session_ash script: 4: level1alias: not found +par_env_parallel_--session_ash script: 4: Bad substitution +par_env_parallel_--session_ash +par_env_parallel_--session_ash /bin/ash: 3: level1func: not found +par_env_parallel_--session_ash /bin/ash: 3: level1alias: not found +par_env_parallel_--session_ash /bin/ash: 3: Bad substitution +par_env_parallel_--session_ash l2var +par_env_parallel_--session_ash l2alias +par_env_parallel_--session_ash script: 4: level2func: not found +par_env_parallel_--session_ash script: 4: Bad substitution +par_env_parallel_--session_ash l2var +par_env_parallel_--session_ash l2alias +par_env_parallel_--session_ash /bin/ash: 3: level2func: not found +par_env_parallel_--session_ash /bin/ash: 3: Bad substitution +par_env_parallel_--session_ash ### level0 should be hidden, level1+2 should be transferred +par_env_parallel_--session_ash +par_env_parallel_--session_ash script: 35: level0func: not found +par_env_parallel_--session_ash script: 35: level0alias: not found +par_env_parallel_--session_ash script: 35: Bad substitution +par_env_parallel_--session_ash +par_env_parallel_--session_ash /bin/ash: XXX: level0func: not found +par_env_parallel_--session_ash /bin/ash: XXX: level0alias: not found +par_env_parallel_--session_ash /bin/ash: XXX: Bad substitution +par_env_parallel_--session_ash l1var +par_env_parallel_--session_ash l1alias +par_env_parallel_--session_ash script: 35: level1func: not found +par_env_parallel_--session_ash script: 35: Bad substitution +par_env_parallel_--session_ash l1var +par_env_parallel_--session_ash l1alias +par_env_parallel_--session_ash /bin/ash: XXX: level1func: not found +par_env_parallel_--session_ash /bin/ash: XXX: Bad substitution +par_env_parallel_--session_ash l2var +par_env_parallel_--session_ash l2alias +par_env_parallel_--session_ash script: 35: level2func: not found +par_env_parallel_--session_ash script: 35: Bad substitution +par_env_parallel_--session_ash l2var +par_env_parallel_--session_ash l2alias +par_env_parallel_--session_ash /bin/ash: XXX: level2func: not found +par_env_parallel_--session_ash /bin/ash: XXX: Bad substitution +par_env_parallel_--session_ash ### level0+1+2 should be transferred +par_env_parallel_--session_ash l0var +par_env_parallel_--session_ash l0alias +par_env_parallel_--session_ash script: 30: level0func: not found +par_env_parallel_--session_ash script: 30: Bad substitution +par_env_parallel_--session_ash l0var +par_env_parallel_--session_ash l0alias +par_env_parallel_--session_ash /bin/ash: XXX: level0func: not found +par_env_parallel_--session_ash /bin/ash: XXX: Bad substitution +par_env_parallel_--session_ash l1var +par_env_parallel_--session_ash l1alias +par_env_parallel_--session_ash script: 30: level1func: not found +par_env_parallel_--session_ash script: 30: Bad substitution +par_env_parallel_--session_ash l1var +par_env_parallel_--session_ash l1alias +par_env_parallel_--session_ash /bin/ash: XXX: level1func: not found +par_env_parallel_--session_ash /bin/ash: XXX: Bad substitution +par_env_parallel_--session_ash l2var +par_env_parallel_--session_ash l2alias +par_env_parallel_--session_ash script: 30: level2func: not found +par_env_parallel_--session_ash script: 30: Bad substitution +par_env_parallel_--session_ash l2var +par_env_parallel_--session_ash l2alias +par_env_parallel_--session_ash /bin/ash: XXX: level2func: not found +par_env_parallel_--session_ash /bin/ash: XXX: Bad substitution +par_env_parallel_--session_ash /bin/ash: 1: aliasbefore: not found +par_env_parallel_--session_ash script: 2: aliasbefore: not found +par_env_parallel_--session_ash no_before +par_env_parallel_--session_ash no_before +par_env_parallel_--session_ash after aliasafter_OK +par_env_parallel_--session_ash after aliasafter_OK +par_env_parallel_--session_ash after varafter_OK +par_env_parallel_--session_ash after varafter_OK +par_env_parallel_--session_bash ### Test env_parallel --session / --end-session +par_env_parallel_--session_bash ### level0 should be hidden, level1 should be transferred +par_env_parallel_--session_bash +par_env_parallel_--session_bash fail +par_env_parallel_--session_bash script: line XXX: level0func: command not found +par_env_parallel_--session_bash script: line XXX: level0alias: command not found +par_env_parallel_--session_bash +par_env_parallel_--session_bash fail +par_env_parallel_--session_bash /bin/bash: line XXX: level0func: command not found +par_env_parallel_--session_bash /bin/bash: line XXX: level0alias: command not found +par_env_parallel_--session_bash l1var +par_env_parallel_--session_bash l1func +par_env_parallel_--session_bash l1alias +par_env_parallel_--session_bash level1 array OK +par_env_parallel_--session_bash l1var +par_env_parallel_--session_bash l1func +par_env_parallel_--session_bash l1alias +par_env_parallel_--session_bash level1 array OK +par_env_parallel_--session_bash ### level0+1 should be hidden, level2 should be transferred +par_env_parallel_--session_bash +par_env_parallel_--session_bash fail +par_env_parallel_--session_bash script: line XXX: level0func: command not found +par_env_parallel_--session_bash script: line XXX: level0alias: command not found +par_env_parallel_--session_bash +par_env_parallel_--session_bash fail +par_env_parallel_--session_bash /bin/bash: line XXX: level0func: command not found +par_env_parallel_--session_bash /bin/bash: line XXX: level0alias: command not found +par_env_parallel_--session_bash +par_env_parallel_--session_bash fail +par_env_parallel_--session_bash script: line XXX: level1func: command not found +par_env_parallel_--session_bash script: line XXX: level1alias: command not found +par_env_parallel_--session_bash +par_env_parallel_--session_bash fail +par_env_parallel_--session_bash /bin/bash: line XXX: level1func: command not found +par_env_parallel_--session_bash /bin/bash: line XXX: level1alias: command not found +par_env_parallel_--session_bash l2var +par_env_parallel_--session_bash l2func +par_env_parallel_--session_bash l2alias +par_env_parallel_--session_bash level2 array OK +par_env_parallel_--session_bash l2var +par_env_parallel_--session_bash l2func +par_env_parallel_--session_bash l2alias +par_env_parallel_--session_bash level2 array OK +par_env_parallel_--session_bash ### level0 should be hidden, level1+2 should be transferred +par_env_parallel_--session_bash +par_env_parallel_--session_bash fail +par_env_parallel_--session_bash script: line XXX: level0func: command not found +par_env_parallel_--session_bash script: line XXX: level0alias: command not found +par_env_parallel_--session_bash +par_env_parallel_--session_bash fail +par_env_parallel_--session_bash /bin/bash: line XXX: level0func: command not found +par_env_parallel_--session_bash /bin/bash: line XXX: level0alias: command not found +par_env_parallel_--session_bash l1var +par_env_parallel_--session_bash l1func +par_env_parallel_--session_bash l1alias +par_env_parallel_--session_bash level1 array OK +par_env_parallel_--session_bash l1var +par_env_parallel_--session_bash l1func +par_env_parallel_--session_bash l1alias +par_env_parallel_--session_bash level1 array OK +par_env_parallel_--session_bash l2var +par_env_parallel_--session_bash l2func +par_env_parallel_--session_bash l2alias +par_env_parallel_--session_bash level2 array OK +par_env_parallel_--session_bash l2var +par_env_parallel_--session_bash l2func +par_env_parallel_--session_bash l2alias +par_env_parallel_--session_bash level2 array OK +par_env_parallel_--session_bash ### level0+1+2 should be transferred +par_env_parallel_--session_bash l0var +par_env_parallel_--session_bash l0func +par_env_parallel_--session_bash l0alias +par_env_parallel_--session_bash level0 array OK +par_env_parallel_--session_bash l0var +par_env_parallel_--session_bash l0func +par_env_parallel_--session_bash l0alias +par_env_parallel_--session_bash level0 array OK +par_env_parallel_--session_bash l1var +par_env_parallel_--session_bash l1func +par_env_parallel_--session_bash l1alias +par_env_parallel_--session_bash level1 array OK +par_env_parallel_--session_bash l1var +par_env_parallel_--session_bash l1func +par_env_parallel_--session_bash l1alias +par_env_parallel_--session_bash level1 array OK +par_env_parallel_--session_bash l2var +par_env_parallel_--session_bash l2func +par_env_parallel_--session_bash l2alias +par_env_parallel_--session_bash level2 array OK +par_env_parallel_--session_bash l2var +par_env_parallel_--session_bash l2func +par_env_parallel_--session_bash l2alias +par_env_parallel_--session_bash level2 array OK +par_env_parallel_--session_bash /bin/bash: line XXX: aliasl0: command not found +par_env_parallel_--session_bash script: line XXX: aliasl0: command not found +par_env_parallel_--session_bash /bin/bash: line XXX: funcl0: command not found +par_env_parallel_--session_bash script: line XXX: funcl0: command not found +par_env_parallel_--session_bash no_before +par_env_parallel_--session_bash no_before +par_env_parallel_--session_bash no_before +par_env_parallel_--session_bash no_before +par_env_parallel_--session_bash l1 aliasl1_OK +par_env_parallel_--session_bash l1 aliasl1_OK +par_env_parallel_--session_bash l1 funcl1_OK +par_env_parallel_--session_bash l1 funcl1_OK +par_env_parallel_--session_bash l1 varl1_OK +par_env_parallel_--session_bash l1 varl1_OK +par_env_parallel_--session_bash array l1 arrayl1_OK +par_env_parallel_--session_bash array l1 arrayl1_OK +par_env_parallel_--session_csh Not implemented +par_env_parallel_--session_dash ### Test env_parallel --session +par_env_parallel_--session_dash ### level0 should be hidden, level1 should be transferred +par_env_parallel_--session_dash +par_env_parallel_--session_dash script: 33: level0func: not found +par_env_parallel_--session_dash script: 33: level0alias: not found +par_env_parallel_--session_dash script: 33: Bad substitution +par_env_parallel_--session_dash +par_env_parallel_--session_dash /bin/dash: XXX: level0func: not found +par_env_parallel_--session_dash /bin/dash: XXX: level0alias: not found +par_env_parallel_--session_dash /bin/dash: XXX: Bad substitution +par_env_parallel_--session_dash l1var +par_env_parallel_--session_dash l1alias +par_env_parallel_--session_dash script: 33: level1func: not found +par_env_parallel_--session_dash script: 33: Bad substitution +par_env_parallel_--session_dash l1var +par_env_parallel_--session_dash l1alias +par_env_parallel_--session_dash /bin/dash: XXX: level1func: not found +par_env_parallel_--session_dash /bin/dash: XXX: Bad substitution +par_env_parallel_--session_dash ### level0+1 should be hidden, level2 should be transferred +par_env_parallel_--session_dash +par_env_parallel_--session_dash script: 4: level0func: not found +par_env_parallel_--session_dash script: 4: level0alias: not found +par_env_parallel_--session_dash script: 4: Bad substitution +par_env_parallel_--session_dash +par_env_parallel_--session_dash /bin/dash: 3: level0func: not found +par_env_parallel_--session_dash /bin/dash: 3: level0alias: not found +par_env_parallel_--session_dash /bin/dash: 3: Bad substitution +par_env_parallel_--session_dash +par_env_parallel_--session_dash script: 4: level1func: not found +par_env_parallel_--session_dash script: 4: level1alias: not found +par_env_parallel_--session_dash script: 4: Bad substitution +par_env_parallel_--session_dash +par_env_parallel_--session_dash /bin/dash: 3: level1func: not found +par_env_parallel_--session_dash /bin/dash: 3: level1alias: not found +par_env_parallel_--session_dash /bin/dash: 3: Bad substitution +par_env_parallel_--session_dash l2var +par_env_parallel_--session_dash l2alias +par_env_parallel_--session_dash script: 4: level2func: not found +par_env_parallel_--session_dash script: 4: Bad substitution +par_env_parallel_--session_dash l2var +par_env_parallel_--session_dash l2alias +par_env_parallel_--session_dash /bin/dash: 3: level2func: not found +par_env_parallel_--session_dash /bin/dash: 3: Bad substitution +par_env_parallel_--session_dash ### level0 should be hidden, level1+2 should be transferred +par_env_parallel_--session_dash +par_env_parallel_--session_dash script: 35: level0func: not found +par_env_parallel_--session_dash script: 35: level0alias: not found +par_env_parallel_--session_dash script: 35: Bad substitution +par_env_parallel_--session_dash +par_env_parallel_--session_dash /bin/dash: XXX: level0func: not found +par_env_parallel_--session_dash /bin/dash: XXX: level0alias: not found +par_env_parallel_--session_dash /bin/dash: XXX: Bad substitution +par_env_parallel_--session_dash l1var +par_env_parallel_--session_dash l1alias +par_env_parallel_--session_dash script: 35: level1func: not found +par_env_parallel_--session_dash script: 35: Bad substitution +par_env_parallel_--session_dash l1var +par_env_parallel_--session_dash l1alias +par_env_parallel_--session_dash /bin/dash: XXX: level1func: not found +par_env_parallel_--session_dash /bin/dash: XXX: Bad substitution +par_env_parallel_--session_dash l2var +par_env_parallel_--session_dash l2alias +par_env_parallel_--session_dash script: 35: level2func: not found +par_env_parallel_--session_dash script: 35: Bad substitution +par_env_parallel_--session_dash l2var +par_env_parallel_--session_dash l2alias +par_env_parallel_--session_dash /bin/dash: XXX: level2func: not found +par_env_parallel_--session_dash /bin/dash: XXX: Bad substitution +par_env_parallel_--session_dash ### level0+1+2 should be transferred +par_env_parallel_--session_dash l0var +par_env_parallel_--session_dash l0alias +par_env_parallel_--session_dash script: 30: level0func: not found +par_env_parallel_--session_dash script: 30: Bad substitution +par_env_parallel_--session_dash l0var +par_env_parallel_--session_dash l0alias +par_env_parallel_--session_dash /bin/dash: XXX: level0func: not found +par_env_parallel_--session_dash /bin/dash: XXX: Bad substitution +par_env_parallel_--session_dash l1var +par_env_parallel_--session_dash l1alias +par_env_parallel_--session_dash script: 30: level1func: not found +par_env_parallel_--session_dash script: 30: Bad substitution +par_env_parallel_--session_dash l1var +par_env_parallel_--session_dash l1alias +par_env_parallel_--session_dash /bin/dash: XXX: level1func: not found +par_env_parallel_--session_dash /bin/dash: XXX: Bad substitution +par_env_parallel_--session_dash l2var +par_env_parallel_--session_dash l2alias +par_env_parallel_--session_dash script: 30: level2func: not found +par_env_parallel_--session_dash script: 30: Bad substitution +par_env_parallel_--session_dash l2var +par_env_parallel_--session_dash l2alias +par_env_parallel_--session_dash /bin/dash: XXX: level2func: not found +par_env_parallel_--session_dash /bin/dash: XXX: Bad substitution +par_env_parallel_--session_dash /bin/dash: 1: aliasbefore: not found +par_env_parallel_--session_dash script: 2: aliasbefore: not found +par_env_parallel_--session_dash no_before +par_env_parallel_--session_dash no_before +par_env_parallel_--session_dash after aliasafter_OK +par_env_parallel_--session_dash after aliasafter_OK +par_env_parallel_--session_dash after varafter_OK +par_env_parallel_--session_dash after varafter_OK +par_env_parallel_--session_fish ### Test env_parallel --session +par_env_parallel_--session_fish fish: Unknown command: aliasbefore +par_env_parallel_--session_fish fish: +par_env_parallel_--session_fish aliasbefore must_fail +par_env_parallel_--session_fish ^ +par_env_parallel_--session_fish fish: Unknown command: aliasbefore +par_env_parallel_--session_fish script (line 6): +par_env_parallel_--session_fish aliasbefore must_fail +par_env_parallel_--session_fish ^ +par_env_parallel_--session_fish fish: Unknown command: funcbefore +par_env_parallel_--session_fish fish: +par_env_parallel_--session_fish funcbefore must_fail +par_env_parallel_--session_fish ^ +par_env_parallel_--session_fish fish: Unknown command: funcbefore +par_env_parallel_--session_fish script (line 6): +par_env_parallel_--session_fish funcbefore must_fail +par_env_parallel_--session_fish ^ +par_env_parallel_--session_fish no_before +par_env_parallel_--session_fish no_before +par_env_parallel_--session_fish no_before +par_env_parallel_--session_fish no_before +par_env_parallel_--session_fish after aliasafter_OK +par_env_parallel_--session_fish after aliasafter_OK +par_env_parallel_--session_fish after funcafter_OK +par_env_parallel_--session_fish after funcafter_OK +par_env_parallel_--session_fish after varafter_OK +par_env_parallel_--session_fish after varafter_OK +par_env_parallel_--session_fish array after arrayafter_OK +par_env_parallel_--session_fish array after arrayafter_OK +par_env_parallel_--session_ksh ### Test env_parallel --session +par_env_parallel_--session_ksh ### level0 should be hidden, level1 should be transferred +par_env_parallel_--session_ksh +par_env_parallel_--session_ksh fail +par_env_parallel_--session_ksh script[9]: level0func: not found +par_env_parallel_--session_ksh script[9]: level0alias: not found +par_env_parallel_--session_ksh +par_env_parallel_--session_ksh fail +par_env_parallel_--session_ksh /bin/ksh[XXX]: level0func: not found +par_env_parallel_--session_ksh /bin/ksh[XXX]: level0alias: not found +par_env_parallel_--session_ksh l1var +par_env_parallel_--session_ksh l1func +par_env_parallel_--session_ksh l1alias +par_env_parallel_--session_ksh level1 array OK +par_env_parallel_--session_ksh l1var +par_env_parallel_--session_ksh l1func +par_env_parallel_--session_ksh l1alias +par_env_parallel_--session_ksh level1 array OK +par_env_parallel_--session_ksh ### level0+1 should be hidden, level2 should be transferred +par_env_parallel_--session_ksh +par_env_parallel_--session_ksh fail +par_env_parallel_--session_ksh script[9]: level0func: not found +par_env_parallel_--session_ksh script[9]: level0alias: not found +par_env_parallel_--session_ksh +par_env_parallel_--session_ksh fail +par_env_parallel_--session_ksh /bin/ksh[XXX]: level0func: not found +par_env_parallel_--session_ksh /bin/ksh[XXX]: level0alias: not found +par_env_parallel_--session_ksh +par_env_parallel_--session_ksh fail +par_env_parallel_--session_ksh script[9]: level1func: not found +par_env_parallel_--session_ksh script[9]: level1alias: not found +par_env_parallel_--session_ksh +par_env_parallel_--session_ksh fail +par_env_parallel_--session_ksh /bin/ksh[XXX]: level1func: not found +par_env_parallel_--session_ksh /bin/ksh[XXX]: level1alias: not found +par_env_parallel_--session_ksh l2var +par_env_parallel_--session_ksh l2func +par_env_parallel_--session_ksh l2alias +par_env_parallel_--session_ksh level2 array OK +par_env_parallel_--session_ksh l2var +par_env_parallel_--session_ksh l2func +par_env_parallel_--session_ksh l2alias +par_env_parallel_--session_ksh level2 array OK +par_env_parallel_--session_ksh ### level0 should be hidden, level1+2 should be transferred +par_env_parallel_--session_ksh +par_env_parallel_--session_ksh fail +par_env_parallel_--session_ksh script[9]: level0func: not found +par_env_parallel_--session_ksh script[9]: level0alias: not found +par_env_parallel_--session_ksh +par_env_parallel_--session_ksh fail +par_env_parallel_--session_ksh /bin/ksh[XXX]: level0func: not found +par_env_parallel_--session_ksh /bin/ksh[XXX]: level0alias: not found +par_env_parallel_--session_ksh l1var +par_env_parallel_--session_ksh l1func +par_env_parallel_--session_ksh l1alias +par_env_parallel_--session_ksh level1 array OK +par_env_parallel_--session_ksh l1var +par_env_parallel_--session_ksh l1func +par_env_parallel_--session_ksh l1alias +par_env_parallel_--session_ksh level1 array OK +par_env_parallel_--session_ksh l2var +par_env_parallel_--session_ksh l2func +par_env_parallel_--session_ksh l2alias +par_env_parallel_--session_ksh level2 array OK +par_env_parallel_--session_ksh l2var +par_env_parallel_--session_ksh l2func +par_env_parallel_--session_ksh l2alias +par_env_parallel_--session_ksh level2 array OK +par_env_parallel_--session_ksh ### level0+1+2 should be transferred +par_env_parallel_--session_ksh l0var +par_env_parallel_--session_ksh l0func +par_env_parallel_--session_ksh l0alias +par_env_parallel_--session_ksh level0 array OK +par_env_parallel_--session_ksh l0var +par_env_parallel_--session_ksh l0func +par_env_parallel_--session_ksh l0alias +par_env_parallel_--session_ksh level0 array OK +par_env_parallel_--session_ksh l1var +par_env_parallel_--session_ksh l1func +par_env_parallel_--session_ksh l1alias +par_env_parallel_--session_ksh level1 array OK +par_env_parallel_--session_ksh l1var +par_env_parallel_--session_ksh l1func +par_env_parallel_--session_ksh l1alias +par_env_parallel_--session_ksh level1 array OK +par_env_parallel_--session_ksh l2var +par_env_parallel_--session_ksh l2func +par_env_parallel_--session_ksh l2alias +par_env_parallel_--session_ksh level2 array OK +par_env_parallel_--session_ksh l2var +par_env_parallel_--session_ksh l2func +par_env_parallel_--session_ksh l2alias +par_env_parallel_--session_ksh level2 array OK +par_env_parallel_--session_ksh /bin/ksh: line 3: aliasbefore: not found +par_env_parallel_--session_ksh script: line 4: aliasbefore: not found +par_env_parallel_--session_ksh /bin/ksh: line 3: funcbefore: not found +par_env_parallel_--session_ksh script: line 4: funcbefore: not found +par_env_parallel_--session_ksh no_before +par_env_parallel_--session_ksh no_before +par_env_parallel_--session_ksh no_before +par_env_parallel_--session_ksh no_before +par_env_parallel_--session_ksh after aliasafter_OK +par_env_parallel_--session_ksh after aliasafter_OK +par_env_parallel_--session_ksh after funcafter_OK +par_env_parallel_--session_ksh after funcafter_OK +par_env_parallel_--session_ksh after varafter_OK +par_env_parallel_--session_ksh after varafter_OK +par_env_parallel_--session_ksh array after arrayafter_OK +par_env_parallel_--session_ksh array after arrayafter_OK +par_env_parallel_--session_mksh ### Test env_parallel --session +par_env_parallel_--session_mksh ### level0 should be hidden, level1 should be transferred +par_env_parallel_--session_mksh +par_env_parallel_--session_mksh fail +par_env_parallel_--session_mksh W: script[9]: level0func: inaccessible or not found +par_env_parallel_--session_mksh W: script[9]: level0alias: inaccessible or not found +par_env_parallel_--session_mksh +par_env_parallel_--session_mksh fail +par_env_parallel_--session_mksh W: /bin/mksh: level0func: inaccessible or not found +par_env_parallel_--session_mksh W: /bin/mksh: level0alias: inaccessible or not found +par_env_parallel_--session_mksh l1var +par_env_parallel_--session_mksh l1func +par_env_parallel_--session_mksh l1alias +par_env_parallel_--session_mksh level1 array OK +par_env_parallel_--session_mksh l1var +par_env_parallel_--session_mksh l1func +par_env_parallel_--session_mksh l1alias +par_env_parallel_--session_mksh level1 array OK +par_env_parallel_--session_mksh ### level0+1 should be hidden, level2 should be transferred +par_env_parallel_--session_mksh +par_env_parallel_--session_mksh fail +par_env_parallel_--session_mksh W: script[9]: level0func: inaccessible or not found +par_env_parallel_--session_mksh W: script[9]: level0alias: inaccessible or not found +par_env_parallel_--session_mksh +par_env_parallel_--session_mksh fail +par_env_parallel_--session_mksh W: /bin/mksh: level0func: inaccessible or not found +par_env_parallel_--session_mksh W: /bin/mksh: level0alias: inaccessible or not found +par_env_parallel_--session_mksh +par_env_parallel_--session_mksh fail +par_env_parallel_--session_mksh W: script[9]: level1func: inaccessible or not found +par_env_parallel_--session_mksh W: script[9]: level1alias: inaccessible or not found +par_env_parallel_--session_mksh +par_env_parallel_--session_mksh fail +par_env_parallel_--session_mksh W: /bin/mksh: level1func: inaccessible or not found +par_env_parallel_--session_mksh W: /bin/mksh: level1alias: inaccessible or not found +par_env_parallel_--session_mksh l2var +par_env_parallel_--session_mksh l2func +par_env_parallel_--session_mksh l2alias +par_env_parallel_--session_mksh level2 array OK +par_env_parallel_--session_mksh l2var +par_env_parallel_--session_mksh l2func +par_env_parallel_--session_mksh l2alias +par_env_parallel_--session_mksh level2 array OK +par_env_parallel_--session_mksh ### level0 should be hidden, level1+2 should be transferred +par_env_parallel_--session_mksh +par_env_parallel_--session_mksh fail +par_env_parallel_--session_mksh W: script[9]: level0func: inaccessible or not found +par_env_parallel_--session_mksh W: script[9]: level0alias: inaccessible or not found +par_env_parallel_--session_mksh +par_env_parallel_--session_mksh fail +par_env_parallel_--session_mksh W: /bin/mksh: level0func: inaccessible or not found +par_env_parallel_--session_mksh W: /bin/mksh: level0alias: inaccessible or not found +par_env_parallel_--session_mksh l1var +par_env_parallel_--session_mksh l1func +par_env_parallel_--session_mksh l1alias +par_env_parallel_--session_mksh level1 array OK +par_env_parallel_--session_mksh l1var +par_env_parallel_--session_mksh l1func +par_env_parallel_--session_mksh l1alias +par_env_parallel_--session_mksh level1 array OK +par_env_parallel_--session_mksh l2var +par_env_parallel_--session_mksh l2func +par_env_parallel_--session_mksh l2alias +par_env_parallel_--session_mksh level2 array OK +par_env_parallel_--session_mksh l2var +par_env_parallel_--session_mksh l2func +par_env_parallel_--session_mksh l2alias +par_env_parallel_--session_mksh level2 array OK +par_env_parallel_--session_mksh ### level0+1+2 should be transferred +par_env_parallel_--session_mksh l0var +par_env_parallel_--session_mksh l0func +par_env_parallel_--session_mksh l0alias +par_env_parallel_--session_mksh level0 array OK +par_env_parallel_--session_mksh l0var +par_env_parallel_--session_mksh l0func +par_env_parallel_--session_mksh l0alias +par_env_parallel_--session_mksh level0 array OK +par_env_parallel_--session_mksh l1var +par_env_parallel_--session_mksh l1func +par_env_parallel_--session_mksh l1alias +par_env_parallel_--session_mksh level1 array OK +par_env_parallel_--session_mksh l1var +par_env_parallel_--session_mksh l1func +par_env_parallel_--session_mksh l1alias +par_env_parallel_--session_mksh level1 array OK +par_env_parallel_--session_mksh l2var +par_env_parallel_--session_mksh l2func +par_env_parallel_--session_mksh l2alias +par_env_parallel_--session_mksh level2 array OK +par_env_parallel_--session_mksh l2var +par_env_parallel_--session_mksh l2func +par_env_parallel_--session_mksh l2alias +par_env_parallel_--session_mksh level2 array OK +par_env_parallel_--session_mksh W: /bin/mksh: aliasbefore: inaccessible or not found +par_env_parallel_--session_mksh W: script[9]: aliasbefore: inaccessible or not found +par_env_parallel_--session_mksh W: /bin/mksh: funcbefore: inaccessible or not found +par_env_parallel_--session_mksh W: script[9]: funcbefore: inaccessible or not found +par_env_parallel_--session_mksh no_before +par_env_parallel_--session_mksh no_before +par_env_parallel_--session_mksh no_before +par_env_parallel_--session_mksh no_before +par_env_parallel_--session_mksh after aliasafter_OK +par_env_parallel_--session_mksh after aliasafter_OK +par_env_parallel_--session_mksh after funcafter_OK +par_env_parallel_--session_mksh after funcafter_OK +par_env_parallel_--session_mksh after varafter_OK +par_env_parallel_--session_mksh after varafter_OK +par_env_parallel_--session_mksh array after arrayafter_OK +par_env_parallel_--session_mksh array after arrayafter_OK +par_env_parallel_--session_sh ### Test env_parallel --session +par_env_parallel_--session_sh ### level0 should be hidden, level1 should be transferred +par_env_parallel_--session_sh +par_env_parallel_--session_sh script: 30: level0func: not found +par_env_parallel_--session_sh script: 30: level0alias: not found +par_env_parallel_--session_sh script: 30: Bad substitution +par_env_parallel_--session_sh +par_env_parallel_--session_sh /bin/sh: XXX: level0func: not found +par_env_parallel_--session_sh /bin/sh: XXX: level0alias: not found +par_env_parallel_--session_sh /bin/sh: XXX: Bad substitution +par_env_parallel_--session_sh l1var +par_env_parallel_--session_sh script: 30: level1func: not found +par_env_parallel_--session_sh script: 30: level1alias: not found +par_env_parallel_--session_sh script: 30: Bad substitution +par_env_parallel_--session_sh l1var +par_env_parallel_--session_sh /bin/sh: XXX: level1func: not found +par_env_parallel_--session_sh /bin/sh: XXX: level1alias: not found +par_env_parallel_--session_sh /bin/sh: XXX: Bad substitution +par_env_parallel_--session_sh ### level0+1 should be hidden, level2 should be transferred +par_env_parallel_--session_sh +par_env_parallel_--session_sh script: 3: level0func: not found +par_env_parallel_--session_sh script: 3: level0alias: not found +par_env_parallel_--session_sh script: 3: Bad substitution +par_env_parallel_--session_sh +par_env_parallel_--session_sh /bin/sh: 2: level0func: not found +par_env_parallel_--session_sh /bin/sh: 2: level0alias: not found +par_env_parallel_--session_sh /bin/sh: 2: Bad substitution +par_env_parallel_--session_sh +par_env_parallel_--session_sh script: 3: level1func: not found +par_env_parallel_--session_sh script: 3: level1alias: not found +par_env_parallel_--session_sh script: 3: Bad substitution +par_env_parallel_--session_sh +par_env_parallel_--session_sh /bin/sh: 2: level1func: not found +par_env_parallel_--session_sh /bin/sh: 2: level1alias: not found +par_env_parallel_--session_sh /bin/sh: 2: Bad substitution +par_env_parallel_--session_sh l2var +par_env_parallel_--session_sh script: 3: level2func: not found +par_env_parallel_--session_sh script: 3: level2alias: not found +par_env_parallel_--session_sh script: 3: Bad substitution +par_env_parallel_--session_sh l2var +par_env_parallel_--session_sh /bin/sh: 2: level2func: not found +par_env_parallel_--session_sh /bin/sh: 2: level2alias: not found +par_env_parallel_--session_sh /bin/sh: 2: Bad substitution +par_env_parallel_--session_sh ### level0 should be hidden, level1+2 should be transferred +par_env_parallel_--session_sh +par_env_parallel_--session_sh script: 31: level0func: not found +par_env_parallel_--session_sh script: 31: level0alias: not found +par_env_parallel_--session_sh script: 31: Bad substitution +par_env_parallel_--session_sh +par_env_parallel_--session_sh /bin/sh: XXX: level0func: not found +par_env_parallel_--session_sh /bin/sh: XXX: level0alias: not found +par_env_parallel_--session_sh /bin/sh: XXX: Bad substitution +par_env_parallel_--session_sh l1var +par_env_parallel_--session_sh script: 31: level1func: not found +par_env_parallel_--session_sh script: 31: level1alias: not found +par_env_parallel_--session_sh script: 31: Bad substitution +par_env_parallel_--session_sh l1var +par_env_parallel_--session_sh /bin/sh: XXX: level1func: not found +par_env_parallel_--session_sh /bin/sh: XXX: level1alias: not found +par_env_parallel_--session_sh /bin/sh: XXX: Bad substitution +par_env_parallel_--session_sh l2var +par_env_parallel_--session_sh script: 31: level2func: not found +par_env_parallel_--session_sh script: 31: level2alias: not found +par_env_parallel_--session_sh script: 31: Bad substitution +par_env_parallel_--session_sh l2var +par_env_parallel_--session_sh /bin/sh: XXX: level2func: not found +par_env_parallel_--session_sh /bin/sh: XXX: level2alias: not found +par_env_parallel_--session_sh /bin/sh: XXX: Bad substitution +par_env_parallel_--session_sh ### level0+1+2 should be transferred +par_env_parallel_--session_sh l0var +par_env_parallel_--session_sh script: 27: level0func: not found +par_env_parallel_--session_sh script: 27: level0alias: not found +par_env_parallel_--session_sh script: 27: Bad substitution +par_env_parallel_--session_sh l0var +par_env_parallel_--session_sh /bin/sh: XXX: level0func: not found +par_env_parallel_--session_sh /bin/sh: XXX: level0alias: not found +par_env_parallel_--session_sh /bin/sh: XXX: Bad substitution +par_env_parallel_--session_sh l1var +par_env_parallel_--session_sh script: 27: level1func: not found +par_env_parallel_--session_sh script: 27: level1alias: not found +par_env_parallel_--session_sh script: 27: Bad substitution +par_env_parallel_--session_sh l1var +par_env_parallel_--session_sh /bin/sh: XXX: level1func: not found +par_env_parallel_--session_sh /bin/sh: XXX: level1alias: not found +par_env_parallel_--session_sh /bin/sh: XXX: Bad substitution +par_env_parallel_--session_sh l2var +par_env_parallel_--session_sh script: 27: level2func: not found +par_env_parallel_--session_sh script: 27: level2alias: not found +par_env_parallel_--session_sh script: 27: Bad substitution +par_env_parallel_--session_sh l2var +par_env_parallel_--session_sh /bin/sh: XXX: level2func: not found +par_env_parallel_--session_sh /bin/sh: XXX: level2alias: not found +par_env_parallel_--session_sh /bin/sh: XXX: Bad substitution +par_env_parallel_--session_sh /bin/sh: 1: aliasbefore: not found +par_env_parallel_--session_sh script: 2: aliasbefore: not found +par_env_parallel_--session_sh /bin/sh: 1: funcbefore: not found +par_env_parallel_--session_sh script: 2: funcbefore: not found +par_env_parallel_--session_sh no_before +par_env_parallel_--session_sh no_before +par_env_parallel_--session_sh after aliasafter_OK +par_env_parallel_--session_sh after aliasafter_OK +par_env_parallel_--session_sh /bin/sh: 3: funcafter: not found +par_env_parallel_--session_sh script: 4: funcafter: not found +par_env_parallel_--session_sh after varafter_OK +par_env_parallel_--session_sh after varafter_OK +par_env_parallel_--session_tcsh Not implemented +par_env_parallel_--session_zsh ### Test env_parallel --session +par_env_parallel_--session_zsh ### level0 should be hidden, level1 should be transferred +par_env_parallel_--session_zsh +par_env_parallel_--session_zsh fail +par_env_parallel_--session_zsh (eval):1: command not found: level0func +par_env_parallel_--session_zsh (eval):1: command not found: level0alias +par_env_parallel_--session_zsh +par_env_parallel_--session_zsh fail +par_env_parallel_--session_zsh (eval):1: command not found: level0func +par_env_parallel_--session_zsh (eval):1: command not found: level0alias +par_env_parallel_--session_zsh l1var +par_env_parallel_--session_zsh l1func +par_env_parallel_--session_zsh l1alias +par_env_parallel_--session_zsh level1 array OK +par_env_parallel_--session_zsh l1var +par_env_parallel_--session_zsh l1func +par_env_parallel_--session_zsh l1alias +par_env_parallel_--session_zsh level1 array OK +par_env_parallel_--session_zsh ### level0+1 should be hidden, level2 should be transferred +par_env_parallel_--session_zsh +par_env_parallel_--session_zsh fail +par_env_parallel_--session_zsh (eval):1: command not found: level0func +par_env_parallel_--session_zsh (eval):1: command not found: level0alias +par_env_parallel_--session_zsh +par_env_parallel_--session_zsh fail +par_env_parallel_--session_zsh (eval):1: command not found: level0func +par_env_parallel_--session_zsh (eval):1: command not found: level0alias +par_env_parallel_--session_zsh +par_env_parallel_--session_zsh fail +par_env_parallel_--session_zsh (eval):1: command not found: level1func +par_env_parallel_--session_zsh (eval):1: command not found: level1alias +par_env_parallel_--session_zsh +par_env_parallel_--session_zsh fail +par_env_parallel_--session_zsh (eval):1: command not found: level1func +par_env_parallel_--session_zsh (eval):1: command not found: level1alias +par_env_parallel_--session_zsh l2var +par_env_parallel_--session_zsh l2func +par_env_parallel_--session_zsh l2alias +par_env_parallel_--session_zsh level2 array OK +par_env_parallel_--session_zsh l2var +par_env_parallel_--session_zsh l2func +par_env_parallel_--session_zsh l2alias +par_env_parallel_--session_zsh level2 array OK +par_env_parallel_--session_zsh ### level0 should be hidden, level1+2 should be transferred +par_env_parallel_--session_zsh +par_env_parallel_--session_zsh fail +par_env_parallel_--session_zsh (eval):1: command not found: level0func +par_env_parallel_--session_zsh (eval):1: command not found: level0alias +par_env_parallel_--session_zsh +par_env_parallel_--session_zsh fail +par_env_parallel_--session_zsh (eval):1: command not found: level0func +par_env_parallel_--session_zsh (eval):1: command not found: level0alias +par_env_parallel_--session_zsh l1var +par_env_parallel_--session_zsh l1func +par_env_parallel_--session_zsh l1alias +par_env_parallel_--session_zsh level1 array OK +par_env_parallel_--session_zsh l1var +par_env_parallel_--session_zsh l1func +par_env_parallel_--session_zsh l1alias +par_env_parallel_--session_zsh level1 array OK +par_env_parallel_--session_zsh l2var +par_env_parallel_--session_zsh l2func +par_env_parallel_--session_zsh l2alias +par_env_parallel_--session_zsh level2 array OK +par_env_parallel_--session_zsh l2var +par_env_parallel_--session_zsh l2func +par_env_parallel_--session_zsh l2alias +par_env_parallel_--session_zsh level2 array OK +par_env_parallel_--session_zsh ### level0+1+2 should be transferred +par_env_parallel_--session_zsh l0var +par_env_parallel_--session_zsh l0func +par_env_parallel_--session_zsh l0alias +par_env_parallel_--session_zsh level0 array OK +par_env_parallel_--session_zsh l0var +par_env_parallel_--session_zsh l0func +par_env_parallel_--session_zsh l0alias +par_env_parallel_--session_zsh level0 array OK +par_env_parallel_--session_zsh l1var +par_env_parallel_--session_zsh l1func +par_env_parallel_--session_zsh l1alias +par_env_parallel_--session_zsh level1 array OK +par_env_parallel_--session_zsh l1var +par_env_parallel_--session_zsh l1func +par_env_parallel_--session_zsh l1alias +par_env_parallel_--session_zsh level1 array OK +par_env_parallel_--session_zsh l2var +par_env_parallel_--session_zsh l2func +par_env_parallel_--session_zsh l2alias +par_env_parallel_--session_zsh level2 array OK +par_env_parallel_--session_zsh l2var +par_env_parallel_--session_zsh l2func +par_env_parallel_--session_zsh l2alias +par_env_parallel_--session_zsh level2 array OK +par_env_parallel_--session_zsh zsh:1: command not found: aliasbefore +par_env_parallel_--session_zsh script:2: command not found: aliasbefore +par_env_parallel_--session_zsh zsh:1: command not found: funcbefore +par_env_parallel_--session_zsh script:2: command not found: funcbefore +par_env_parallel_--session_zsh no_before +par_env_parallel_--session_zsh no_before +par_env_parallel_--session_zsh no_before +par_env_parallel_--session_zsh no_before +par_env_parallel_--session_zsh after aliasafter_OK +par_env_parallel_--session_zsh after aliasafter_OK +par_env_parallel_--session_zsh after funcafter_OK +par_env_parallel_--session_zsh after funcafter_OK +par_env_parallel_--session_zsh after varafter_OK +par_env_parallel_--session_zsh after varafter_OK +par_env_parallel_--session_zsh array after arrayafter_OK +par_env_parallel_--session_zsh array after arrayafter_OK +par_env_parallel_ash OK +par_env_parallel_ash OK +par_env_parallel_ash alias line 1 +par_env_parallel_ash alias line 1 +par_env_parallel_ash alias line 2 +par_env_parallel_ash alias line 2 +par_env_parallel_ash alias line 3 +par_env_parallel_ash alias line 3 +par_env_parallel_ash alias2 line 1 +par_env_parallel_ash alias2 line 1 +par_env_parallel_ash alias2 line 2 +par_env_parallel_ash alias2 line 2 +par_env_parallel_ash bug #50435: Remote fifo broke in 20150522 +par_env_parallel_ash bug #52534: Tail of multiline alias is ignored +par_env_parallel_ash data from stdin +par_env_parallel_ash data from stdin +par_env_parallel_bash OK +par_env_parallel_bash OK +par_env_parallel_bash alias line 1 +par_env_parallel_bash alias line 1 +par_env_parallel_bash alias line 2 +par_env_parallel_bash alias line 2 +par_env_parallel_bash alias line 3 +par_env_parallel_bash alias line 3 +par_env_parallel_bash alias2 line 1 +par_env_parallel_bash alias2 line 1 +par_env_parallel_bash alias2 line 2 +par_env_parallel_bash alias2 line 2 +par_env_parallel_bash bug #50435: Remote fifo broke in 20150522 +par_env_parallel_bash bug #52534: Tail of multiline alias is ignored +par_env_parallel_bash data from stdin +par_env_parallel_bash data from stdin +par_env_parallel_bash env_parallel: Warning: Alias 'myalias' contains newline. +par_env_parallel_bash env_parallel: Warning: Alias 'myalias' contains newline. +par_env_parallel_bash env_parallel: Warning: Alias 'myalias2' contains newline. +par_env_parallel_bash env_parallel: Warning: Alias 'myalias2' contains newline. +par_env_parallel_bash env_parallel: Warning: Make sure the command has at least one newline after 'myalias'. +par_env_parallel_bash env_parallel: Warning: Make sure the command has at least one newline after 'myalias'. +par_env_parallel_bash env_parallel: Warning: Make sure the command has at least one newline after 'myalias2'. +par_env_parallel_bash env_parallel: Warning: Make sure the command has at least one newline after 'myalias2'. +par_env_parallel_bash env_parallel: Warning: See BUGS in 'man env_parallel'. +par_env_parallel_bash env_parallel: Warning: See BUGS in 'man env_parallel'. +par_env_parallel_bash env_parallel: Warning: See BUGS in 'man env_parallel'. +par_env_parallel_bash env_parallel: Warning: See BUGS in 'man env_parallel'. +par_env_parallel_csh bug #50435: Remote fifo broke in 20150522 +par_env_parallel_csh data from stdin +par_env_parallel_csh OK +par_env_parallel_csh data from stdin +par_env_parallel_csh OK +par_env_parallel_dash OK +par_env_parallel_dash OK +par_env_parallel_dash alias line 1 +par_env_parallel_dash alias line 1 +par_env_parallel_dash alias line 2 +par_env_parallel_dash alias line 2 +par_env_parallel_dash alias line 3 +par_env_parallel_dash alias line 3 +par_env_parallel_dash alias2 line 1 +par_env_parallel_dash alias2 line 1 +par_env_parallel_dash alias2 line 2 +par_env_parallel_dash alias2 line 2 +par_env_parallel_dash bug #50435: Remote fifo broke in 20150522 +par_env_parallel_dash bug #52534: Tail of multiline alias is ignored +par_env_parallel_dash data from stdin +par_env_parallel_dash data from stdin +par_env_parallel_fish bug #50435: Remote fifo broke in 20150522 +par_env_parallel_fish data from stdin +par_env_parallel_fish OK +par_env_parallel_fish data from stdin +par_env_parallel_fish OK +par_env_parallel_fish OK: 0==0 +par_env_parallel_fish ### Test failing command with --cat +par_env_parallel_fish data from stdin +par_env_parallel_fish OK: 1==1 +par_env_parallel_fish data from stdin +par_env_parallel_fish OK: 1==1 +par_env_parallel_ksh OK +par_env_parallel_ksh OK +par_env_parallel_ksh alias line 1 +par_env_parallel_ksh alias line 1 +par_env_parallel_ksh alias line 2 +par_env_parallel_ksh alias line 2 +par_env_parallel_ksh alias line 3 +par_env_parallel_ksh alias line 3 +par_env_parallel_ksh alias2 line 1 +par_env_parallel_ksh alias2 line 1 +par_env_parallel_ksh bug #50435: Remote fifo broke in 20150522 +par_env_parallel_ksh bug #52534: Tail of multiline alias is ignored +par_env_parallel_ksh data from stdin +par_env_parallel_ksh data from stdin +par_env_parallel_ksh env_parallel: Warning: Alias "myalias" contains newline. +par_env_parallel_ksh env_parallel: Warning: Alias "myalias" contains newline. +par_env_parallel_ksh env_parallel: Warning: Alias "myalias2" contains newline. +par_env_parallel_ksh env_parallel: Warning: Alias "myalias2" contains newline. +par_env_parallel_ksh env_parallel: Warning: Make sure the command has at least one newline after "myalias". +par_env_parallel_ksh env_parallel: Warning: Make sure the command has at least one newline after "myalias". +par_env_parallel_ksh env_parallel: Warning: Make sure the command has at least one newline after "myalias2". +par_env_parallel_ksh env_parallel: Warning: Make sure the command has at least one newline after "myalias2". +par_env_parallel_ksh env_parallel: Warning: See BUGS in "man env_parallel". +par_env_parallel_ksh env_parallel: Warning: See BUGS in "man env_parallel". +par_env_parallel_ksh env_parallel: Warning: See BUGS in "man env_parallel". +par_env_parallel_ksh env_parallel: Warning: See BUGS in "man env_parallel". +par_env_parallel_mksh OK +par_env_parallel_mksh OK +par_env_parallel_mksh alias line 1 +par_env_parallel_mksh alias line 1 +par_env_parallel_mksh alias line 2 +par_env_parallel_mksh alias line 2 +par_env_parallel_mksh alias line 3 +par_env_parallel_mksh alias line 3 +par_env_parallel_mksh alias2 line 1 +par_env_parallel_mksh alias2 line 1 +par_env_parallel_mksh alias2 line 2 +par_env_parallel_mksh alias2 line 2 +par_env_parallel_mksh bug #50435: Remote fifo broke in 20150522 +par_env_parallel_mksh bug #52534: Tail of multiline alias is ignored +par_env_parallel_mksh data from stdin +par_env_parallel_mksh data from stdin +par_env_parallel_mksh env_parallel: Warning: Alias "myalias" contains newline. +par_env_parallel_mksh env_parallel: Warning: Alias "myalias" contains newline. +par_env_parallel_mksh env_parallel: Warning: Alias "myalias2" contains newline. +par_env_parallel_mksh env_parallel: Warning: Alias "myalias2" contains newline. +par_env_parallel_mksh env_parallel: Warning: Make sure the command has at least one newline after "myalias". +par_env_parallel_mksh env_parallel: Warning: Make sure the command has at least one newline after "myalias". +par_env_parallel_mksh env_parallel: Warning: Make sure the command has at least one newline after "myalias2". +par_env_parallel_mksh env_parallel: Warning: Make sure the command has at least one newline after "myalias2". +par_env_parallel_mksh env_parallel: Warning: See BUGS in "man env_parallel". +par_env_parallel_mksh env_parallel: Warning: See BUGS in "man env_parallel". +par_env_parallel_mksh env_parallel: Warning: See BUGS in "man env_parallel". +par_env_parallel_mksh env_parallel: Warning: See BUGS in "man env_parallel". +par_env_parallel_sh OK +par_env_parallel_sh OK +par_env_parallel_sh alias line 1 +par_env_parallel_sh alias line 1 +par_env_parallel_sh alias line 2 +par_env_parallel_sh alias line 2 +par_env_parallel_sh alias line 3 +par_env_parallel_sh alias line 3 +par_env_parallel_sh alias2 line 1 +par_env_parallel_sh alias2 line 1 +par_env_parallel_sh alias2 line 2 +par_env_parallel_sh alias2 line 2 +par_env_parallel_sh bug #50435: Remote fifo broke in 20150522 +par_env_parallel_sh bug #52534: Tail of multiline alias is ignored +par_env_parallel_sh data from stdin +par_env_parallel_sh data from stdin +par_env_parallel_tcsh OK +par_env_parallel_tcsh OK +par_env_parallel_tcsh bug #50435: Remote fifo broke in 20150522 +par_env_parallel_tcsh data from stdin +par_env_parallel_tcsh data from stdin +par_env_parallel_zsh OK +par_env_parallel_zsh OK +par_env_parallel_zsh alias line 1 +par_env_parallel_zsh alias line 1 +par_env_parallel_zsh alias line 2 +par_env_parallel_zsh alias line 2 +par_env_parallel_zsh alias line 3 +par_env_parallel_zsh alias line 3 +par_env_parallel_zsh alias2 line 1 +par_env_parallel_zsh alias2 line 1 +par_env_parallel_zsh alias2 line 2 +par_env_parallel_zsh alias2 line 2 +par_env_parallel_zsh bug #50435: Remote fifo broke in 20150522 +par_env_parallel_zsh bug #52534: Tail of multiline alias is ignored +par_env_parallel_zsh data from stdin +par_env_parallel_zsh data from stdin +par_environment_too_big_ash bug #50815: env_parallel should warn if the environment is too big +par_environment_too_big_ash OK_bigvar +par_environment_too_big_ash OK_bigvar_remote +par_environment_too_big_ash OK_bigvar_quote +par_environment_too_big_ash OK_bigvar_quote_remote +par_environment_too_big_ash OK_bigfunc +par_environment_too_big_ash OK_bigfunc_remote +par_environment_too_big_ash OK_bigfunc_quote +par_environment_too_big_ash OK_bigfunc_quote_remote +par_environment_too_big_ash Rest should fail - functions not supported in ash +par_environment_too_big_ash parallel: Error: Command line too long (XXX >= XXX) at input 0: fail_bigvar +par_environment_too_big_ash parallel: Error: Command line too long (XXX >= XXX) at input 0: fail_bigvar_remote +par_environment_too_big_ash parallel: Error: Command line too long (XXX >= XXX) at input 0: fail_bigvar_quote +par_environment_too_big_ash parallel: Error: Command line too long (XXX >= XXX) at input 0: fail_bigvar_quote_remote +par_environment_too_big_ash fail_bigfunc-not-supported +par_environment_too_big_ash fail_bigfunc_remote-not-supported +par_environment_too_big_ash fail_bigfunc_quote-not-supported +par_environment_too_big_ash fail_bigfunc_quote_remote-not-supported +par_environment_too_big_bash bug #50815: env_parallel should warn if the environment is too big +par_environment_too_big_bash OK_bigvar +par_environment_too_big_bash OK_bigvar_remote +par_environment_too_big_bash OK_bigvar_quote +par_environment_too_big_bash OK_bigvar_quote_remote +par_environment_too_big_bash OK_bigfunc +par_environment_too_big_bash OK_bigfunc_remote +par_environment_too_big_bash OK_bigfunc_quote +par_environment_too_big_bash OK_bigfunc_quote_remote +par_environment_too_big_bash Rest should fail +par_environment_too_big_bash parallel: Error: Command line too long (XXX >= XXX) at input 0: fail_bigvar +par_environment_too_big_bash parallel: Error: Command line too long (XXX >= XXX) at input 0: fail_bigvar_remote +par_environment_too_big_bash parallel: Error: Command line too long (XXX >= XXX) at input 0: fail_bigvar_quote +par_environment_too_big_bash parallel: Error: Command line too long (XXX >= XXX) at input 0: fail_bigvar_quote_remote +par_environment_too_big_bash parallel: Error: Command line too long (XXX >= XXX) at input 0: fail_bigfunc +par_environment_too_big_bash parallel: Error: Command line too long (XXX >= XXX) at input 0: fail_bigfunc_remote +par_environment_too_big_bash parallel: Error: Command line too long (XXX >= XXX) at input 0: fail_bigfunc_quote +par_environment_too_big_bash parallel: Error: Command line too long (XXX >= XXX) at input 0: fail_bigfunc_quote_remote +par_environment_too_big_csh Not implemented +par_environment_too_big_dash bug #50815: env_parallel should warn if the environment is too big +par_environment_too_big_dash OK_bigvar +par_environment_too_big_dash OK_bigvar_remote +par_environment_too_big_dash OK_bigvar_quote +par_environment_too_big_dash OK_bigvar_quote_remote +par_environment_too_big_dash OK_bigfunc +par_environment_too_big_dash OK_bigfunc_remote +par_environment_too_big_dash OK_bigfunc_quote +par_environment_too_big_dash OK_bigfunc_quote_remote +par_environment_too_big_dash Rest should fail - functions not supported in dash +par_environment_too_big_dash parallel: Error: Command line too long (XXX >= XXX) at input 0: fail_bigvar +par_environment_too_big_dash parallel: Error: Command line too long (XXX >= XXX) at input 0: fail_bigvar_remote +par_environment_too_big_dash parallel: Error: Command line too long (XXX >= XXX) at input 0: fail_bigvar_quote +par_environment_too_big_dash parallel: Error: Command line too long (XXX >= XXX) at input 0: fail_bigvar_quote_remote +par_environment_too_big_dash fail_bigfunc-not-supported +par_environment_too_big_dash fail_bigfunc_remote-not-supported +par_environment_too_big_dash fail_bigfunc_quote-not-supported +par_environment_too_big_dash fail_bigfunc_quote_remote-not-supported +par_environment_too_big_fish Not implemented +par_environment_too_big_ksh bug #50815: env_parallel should warn if the environment is too big +par_environment_too_big_ksh OK_bigvar +par_environment_too_big_ksh OK_bigvar_remote +par_environment_too_big_ksh OK_bigvar_quote +par_environment_too_big_ksh OK_bigvar_quote_remote +par_environment_too_big_ksh OK_bigfunc +par_environment_too_big_ksh OK_bigfunc_remote +par_environment_too_big_ksh OK_bigfunc_quote +par_environment_too_big_ksh OK_bigfunc_quote_remote +par_environment_too_big_ksh Rest should fail +par_environment_too_big_ksh parallel: Error: Command line too long (XXX >= XXX) at input 0: fail_bigvar +par_environment_too_big_ksh parallel: Error: Command line too long (XXX >= XXX) at input 0: fail_bigvar_remote +par_environment_too_big_ksh parallel: Error: Command line too long (XXX >= XXX) at input 0: fail_bigvar_quote +par_environment_too_big_ksh parallel: Error: Command line too long (XXX >= XXX) at input 0: fail_bigvar_quote_remote +par_environment_too_big_ksh parallel: Error: Command line too long (XXX >= XXX) at input 0: fail_bigfunc +par_environment_too_big_ksh parallel: Error: Command line too long (XXX >= XXX) at input 0: fail_bigfunc_remote +par_environment_too_big_ksh parallel: Error: Command line too long (XXX >= XXX) at input 0: fail_bigfunc_quote +par_environment_too_big_ksh parallel: Error: Command line too long (XXX >= XXX) at input 0: fail_bigfunc_quote_remote +par_environment_too_big_mksh bug #50815: env_parallel should warn if the environment is too big +par_environment_too_big_mksh OK_bigvar +par_environment_too_big_mksh OK_bigvar_remote +par_environment_too_big_mksh OK_bigvar_quote +par_environment_too_big_mksh OK_bigvar_quote_remote +par_environment_too_big_mksh OK_bigfunc +par_environment_too_big_mksh OK_bigfunc_remote +par_environment_too_big_mksh OK_bigfunc_quote +par_environment_too_big_mksh OK_bigfunc_quote_remote +par_environment_too_big_mksh Rest should fail +par_environment_too_big_mksh parallel: Error: Command line too long (XXX >= XXX) at input 0: fail_bigvar +par_environment_too_big_mksh parallel: Error: Command line too long (XXX >= XXX) at input 0: fail_bigvar_remote +par_environment_too_big_mksh parallel: Error: Command line too long (XXX >= XXX) at input 0: fail_bigvar_quote +par_environment_too_big_mksh parallel: Error: Command line too long (XXX >= XXX) at input 0: fail_bigvar_quote_remote +par_environment_too_big_mksh parallel: Error: Command line too long (XXX >= XXX) at input 0: fail_bigfunc +par_environment_too_big_mksh parallel: Error: Command line too long (XXX >= XXX) at input 0: fail_bigfunc_remote +par_environment_too_big_mksh parallel: Error: Command line too long (XXX >= XXX) at input 0: fail_bigfunc_quote +par_environment_too_big_mksh parallel: Error: Command line too long (XXX >= XXX) at input 0: fail_bigfunc_quote_remote +par_environment_too_big_sh bug #50815: env_parallel should warn if the environment is too big +par_environment_too_big_sh OK_bigvar +par_environment_too_big_sh OK_bigvar_remote +par_environment_too_big_sh OK_bigvar_quote +par_environment_too_big_sh OK_bigvar_quote_remote +par_environment_too_big_sh OK_bigfunc +par_environment_too_big_sh OK_bigfunc_remote +par_environment_too_big_sh OK_bigfunc_quote +par_environment_too_big_sh OK_bigfunc_quote_remote +par_environment_too_big_sh Rest should fail - functions not supported in sh +par_environment_too_big_sh parallel: Error: Command line too long (XXX >= XXX) at input 0: fail_bigvar +par_environment_too_big_sh parallel: Error: Command line too long (XXX >= XXX) at input 0: fail_bigvar_remote +par_environment_too_big_sh parallel: Error: Command line too long (XXX >= XXX) at input 0: fail_bigvar_quote +par_environment_too_big_sh parallel: Error: Command line too long (XXX >= XXX) at input 0: fail_bigvar_quote_remote +par_environment_too_big_sh fail_bigfunc-not-supported +par_environment_too_big_sh fail_bigfunc_remote-not-supported +par_environment_too_big_sh fail_bigfunc_quote-not-supported +par_environment_too_big_sh fail_bigfunc_quote_remote-not-supported +par_environment_too_big_tcsh Not implemented +par_environment_too_big_zsh bug #50815: env_parallel should warn if the environment is too big +par_environment_too_big_zsh OK_bigvar +par_environment_too_big_zsh OK_bigvar_remote +par_environment_too_big_zsh OK_bigvar_quote +par_environment_too_big_zsh OK_bigvar_quote_remote +par_environment_too_big_zsh OK_bigfunc +par_environment_too_big_zsh OK_bigfunc_remote +par_environment_too_big_zsh OK_bigfunc_quote +par_environment_too_big_zsh OK_bigfunc_quote_remote +par_environment_too_big_zsh Rest should fail +par_environment_too_big_zsh _which_PAR:XXX: argument list too long: perl +par_environment_too_big_zsh env_parallel: Error: Your environment is too big. +par_environment_too_big_zsh env_parallel: Error: You can try 3 different approaches: +par_environment_too_big_zsh env_parallel: Error: 1. Run 'env_parallel --session' before you set +par_environment_too_big_zsh env_parallel: Error: variables or define functions. +par_environment_too_big_zsh env_parallel: Error: 2. Use --env and only mention the names to copy. +par_environment_too_big_zsh env_parallel: Error: 3. Try running this in a clean environment once: +par_environment_too_big_zsh env_parallel: Error: env_parallel --record-env +par_environment_too_big_zsh env_parallel: Error: And then use '--env _' +par_environment_too_big_zsh env_parallel: Error: For details see: man env_parallel +par_environment_too_big_zsh _which_PAR:XXX: argument list too long: perl +par_environment_too_big_zsh env_parallel: Error: Your environment is too big. +par_environment_too_big_zsh env_parallel: Error: You can try 3 different approaches: +par_environment_too_big_zsh env_parallel: Error: 1. Run 'env_parallel --session' before you set +par_environment_too_big_zsh env_parallel: Error: variables or define functions. +par_environment_too_big_zsh env_parallel: Error: 2. Use --env and only mention the names to copy. +par_environment_too_big_zsh env_parallel: Error: 3. Try running this in a clean environment once: +par_environment_too_big_zsh env_parallel: Error: env_parallel --record-env +par_environment_too_big_zsh env_parallel: Error: And then use '--env _' +par_environment_too_big_zsh env_parallel: Error: For details see: man env_parallel +par_environment_too_big_zsh _which_PAR:XXX: argument list too long: perl +par_environment_too_big_zsh env_parallel: Error: Your environment is too big. +par_environment_too_big_zsh env_parallel: Error: You can try 3 different approaches: +par_environment_too_big_zsh env_parallel: Error: 1. Run 'env_parallel --session' before you set +par_environment_too_big_zsh env_parallel: Error: variables or define functions. +par_environment_too_big_zsh env_parallel: Error: 2. Use --env and only mention the names to copy. +par_environment_too_big_zsh env_parallel: Error: 3. Try running this in a clean environment once: +par_environment_too_big_zsh env_parallel: Error: env_parallel --record-env +par_environment_too_big_zsh env_parallel: Error: And then use '--env _' +par_environment_too_big_zsh env_parallel: Error: For details see: man env_parallel +par_environment_too_big_zsh _which_PAR:XXX: argument list too long: perl +par_environment_too_big_zsh env_parallel: Error: Your environment is too big. +par_environment_too_big_zsh env_parallel: Error: You can try 3 different approaches: +par_environment_too_big_zsh env_parallel: Error: 1. Run 'env_parallel --session' before you set +par_environment_too_big_zsh env_parallel: Error: variables or define functions. +par_environment_too_big_zsh env_parallel: Error: 2. Use --env and only mention the names to copy. +par_environment_too_big_zsh env_parallel: Error: 3. Try running this in a clean environment once: +par_environment_too_big_zsh env_parallel: Error: env_parallel --record-env +par_environment_too_big_zsh env_parallel: Error: And then use '--env _' +par_environment_too_big_zsh env_parallel: Error: For details see: man env_parallel +par_environment_too_big_zsh _which_PAR:XXX: argument list too long: perl +par_environment_too_big_zsh env_parallel: Error: Your environment is too big. +par_environment_too_big_zsh env_parallel: Error: You can try 3 different approaches: +par_environment_too_big_zsh env_parallel: Error: 1. Run 'env_parallel --session' before you set +par_environment_too_big_zsh env_parallel: Error: variables or define functions. +par_environment_too_big_zsh env_parallel: Error: 2. Use --env and only mention the names to copy. +par_environment_too_big_zsh env_parallel: Error: 3. Try running this in a clean environment once: +par_environment_too_big_zsh env_parallel: Error: env_parallel --record-env +par_environment_too_big_zsh env_parallel: Error: And then use '--env _' +par_environment_too_big_zsh env_parallel: Error: For details see: man env_parallel +par_environment_too_big_zsh _which_PAR:XXX: argument list too long: perl +par_environment_too_big_zsh env_parallel: Error: Your environment is too big. +par_environment_too_big_zsh env_parallel: Error: You can try 3 different approaches: +par_environment_too_big_zsh env_parallel: Error: 1. Run 'env_parallel --session' before you set +par_environment_too_big_zsh env_parallel: Error: variables or define functions. +par_environment_too_big_zsh env_parallel: Error: 2. Use --env and only mention the names to copy. +par_environment_too_big_zsh env_parallel: Error: 3. Try running this in a clean environment once: +par_environment_too_big_zsh env_parallel: Error: env_parallel --record-env +par_environment_too_big_zsh env_parallel: Error: And then use '--env _' +par_environment_too_big_zsh env_parallel: Error: For details see: man env_parallel +par_environment_too_big_zsh _which_PAR:XXX: argument list too long: perl +par_environment_too_big_zsh env_parallel: Error: Your environment is too big. +par_environment_too_big_zsh env_parallel: Error: You can try 3 different approaches: +par_environment_too_big_zsh env_parallel: Error: 1. Run 'env_parallel --session' before you set +par_environment_too_big_zsh env_parallel: Error: variables or define functions. +par_environment_too_big_zsh env_parallel: Error: 2. Use --env and only mention the names to copy. +par_environment_too_big_zsh env_parallel: Error: 3. Try running this in a clean environment once: +par_environment_too_big_zsh env_parallel: Error: env_parallel --record-env +par_environment_too_big_zsh env_parallel: Error: And then use '--env _' +par_environment_too_big_zsh env_parallel: Error: For details see: man env_parallel +par_environment_too_big_zsh _which_PAR:XXX: argument list too long: perl +par_environment_too_big_zsh env_parallel: Error: Your environment is too big. +par_environment_too_big_zsh env_parallel: Error: You can try 3 different approaches: +par_environment_too_big_zsh env_parallel: Error: 1. Run 'env_parallel --session' before you set +par_environment_too_big_zsh env_parallel: Error: variables or define functions. +par_environment_too_big_zsh env_parallel: Error: 2. Use --env and only mention the names to copy. +par_environment_too_big_zsh env_parallel: Error: 3. Try running this in a clean environment once: +par_environment_too_big_zsh env_parallel: Error: env_parallel --record-env +par_environment_too_big_zsh env_parallel: Error: And then use '--env _' +par_environment_too_big_zsh env_parallel: Error: For details see: man env_parallel +par_funky_ash +par_funky_ash ' ' +par_funky_ash ' par_funky_ash  !"#$%&'"'"'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~' +par_funky_ash 3 arg alias_works +par_funky_ash 3 arg alias_works_over_ssh +par_funky_bash +par_funky_bash  +par_funky_bash  +par_funky_bash -funkymultiline +par_funky_bash -funkymultiline +par_funky_bash space 6 +par_funky_bash space 6 +par_funky_bash ' ' +par_funky_bash ' ' +par_funky_bash ' par_funky_bash  !"#$%&'"'"'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~' +par_funky_bash 3 arg alias_works +par_funky_bash 3 arg alias_works_over_ssh +par_funky_bash Funkyline- par_funky_bash  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~-funkyline +par_funky_bash Funkyline- par_funky_bash  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~-funkyline +par_funky_bash Funkymultiline- +par_funky_bash Funkymultiline- +par_funky_bash assoc_val_a +par_funky_bash assoc_val_a +par_funky_bash function_works +par_funky_bash function_works_over_ssh +par_funky_bash myvar works +par_funky_bash myvar works +par_funky_csh +par_funky_csh +par_funky_csh +par_funky_csh 3 arg alias_works +par_funky_csh 3 arg alias_works_over_ssh +par_funky_csh Funky- par_funky_csh  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~-funky alias_var_works +par_funky_csh Funky- par_funky_csh  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~-funky alias_var_works_over_ssh +par_funky_csh \\\\\\\\ \ \ \ \ par_funky_csh \\\\\\\\\\\\\\ \!\"\#\$%\&\'\(\)\*+,-./0123456789:\;\<\=\>\?@ABCDEFGHIJKLMNOPQRSTUVWXYZ\[\\\]\^_\`abcdefghijklmnopqrstuvwxyz\{\|\}\~\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ +par_funky_csh func_echo: Command not found. +par_funky_csh func_echo: Command not found. +par_funky_csh myvar works +par_funky_csh myvar works +par_funky_csh space special chars problem +par_funky_csh space special chars problem +par_funky_dash +par_funky_dash ' ' +par_funky_dash ' par_funky_dash  !"#$%&'"'"'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~' +par_funky_dash 3 arg alias_works +par_funky_dash 3 arg alias_works_over_ssh +par_funky_fish env_parallel: Warning: ASCII value 1 in variables is not supported +par_funky_fish 3 arg alias_works +par_funky_fish env_parallel: Warning: ASCII value 1 in variables is not supported +par_funky_fish function_works +par_funky_fish myvar works +par_funky_fish myenvvar works +par_funky_fish space 6 +par_funky_fish +par_funky_fish +par_funky_fish +par_funky_fish Funky- par_funky_fish  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~-funky +par_funky_fish Funkyenv- par_funky_fish  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~-funkyenv +par_funky_fish +par_funky_fish +par_funky_fish +par_funky_fish env_parallel: Warning: ASCII value 1 in variables is not supported +par_funky_fish 3 arg alias_works_over_ssh +par_funky_fish env_parallel: Warning: ASCII value 1 in variables is not supported +par_funky_fish function_works_over_ssh +par_funky_fish myvar works +par_funky_fish myenvvar works +par_funky_fish space 6 +par_funky_fish +par_funky_fish +par_funky_fish +par_funky_fish Funky- par_funky_fish  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~-funky +par_funky_fish Funkyenv- par_funky_fish  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~-funkyenv +par_funky_fish +par_funky_fish +par_funky_fish +par_funky_fish +par_funky_fish ' par_funky_fish  !"#$%&'"'"'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~' +par_funky_ksh +par_funky_ksh par_funky_ksh  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~-funky +par_funky_ksh par_funky_ksh  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~-funky +par_funky_ksh space 6 +par_funky_ksh space 6 +par_funky_ksh ' ' +par_funky_ksh ' par_funky_ksh  !"#$%&'"'"'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~' +par_funky_ksh 3 arg alias_works +par_funky_ksh 3 arg alias_works_over_ssh +par_funky_ksh Funky- +par_funky_ksh Funky- +par_funky_ksh assoc_val_a +par_funky_ksh assoc_val_a +par_funky_ksh function_works +par_funky_ksh function_works_over_ssh +par_funky_ksh myvar works +par_funky_ksh myvar works +par_funky_mksh +par_funky_mksh par_funky_mksh  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~-funky +par_funky_mksh par_funky_mksh  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~-funky +par_funky_mksh space 6 +par_funky_mksh space 6 +par_funky_mksh ' ' +par_funky_mksh ' par_funky_mksh  !"#$%&'"'"'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~' +par_funky_mksh 3 arg alias_works +par_funky_mksh 3 arg alias_works_over_ssh +par_funky_mksh Funky- +par_funky_mksh Funky- +par_funky_mksh function_works +par_funky_mksh function_works_over_ssh +par_funky_mksh myvar works +par_funky_mksh myvar works +par_funky_sh +par_funky_sh ' ' +par_funky_sh ' par_funky_sh  !"#$%&'"'"'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~' +par_funky_sh 3 arg alias_works +par_funky_sh 3 arg alias_works_over_ssh +par_funky_tcsh +par_funky_tcsh +par_funky_tcsh +par_funky_tcsh 3 arg alias_works +par_funky_tcsh 3 arg alias_works_over_ssh +par_funky_tcsh Funky- par_funky_tcsh  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~-funky alias_var_works +par_funky_tcsh Funky- par_funky_tcsh  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~-funky alias_var_works_over_ssh +par_funky_tcsh \\\\\\\\ \ \ \ \ par_funky_tcsh \\\\\\\\\\\\\\ \!\"\#\$%\&\'\(\)\*+,-./0123456789:\;\<\=\>\?@ABCDEFGHIJKLMNOPQRSTUVWXYZ\[\\\]\^_\`abcdefghijklmnopqrstuvwxyz\{\|\}\~\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ +par_funky_tcsh func_echo: Command not found. +par_funky_tcsh func_echo: Command not found. +par_funky_tcsh myvar works +par_funky_tcsh myvar works +par_funky_tcsh space special chars problem +par_funky_tcsh space special chars problem +par_funky_zsh +par_funky_zsh par_funky_zsh C-] !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~M-M-]-funky +par_funky_zsh par_funky_zsh C-] !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~M-M-]-funky +par_funky_zsh space 6 +par_funky_zsh space 6 +par_funky_zsh ' ' +par_funky_zsh ' par_funky_zsh  !"#$%&'"'"'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~' +par_funky_zsh 3 arg alias_works +par_funky_zsh 3 arg alias_works_over_ssh +par_funky_zsh Funky- +par_funky_zsh Funky- +par_funky_zsh assoc_val_a +par_funky_zsh assoc_val_a +par_funky_zsh function_works +par_funky_zsh function_works_over_ssh +par_funky_zsh myvar works +par_funky_zsh myvar works +par_parset_ash parset +par_parset_ash ### parset into vars with comma +par_parset_ash foo bar baz +par_parset_ash ### parset into vars with space +par_parset_ash foo bar baz +par_parset_ash ### parset with newlines +par_parset_ash 1 +par_parset_ash 1 +par_parset_ash 2 +par_parset_ash 1 +par_parset_ash 2 +par_parset_ash 3 +par_parset_ash ### env_parset +par_parset_ash myecho myvar foo myecho myvar bar myecho myvar baz +par_parset_ash myecho myvar foo myecho myvar bar myecho myvar baz +par_parset_ash newline1 +par_parset_ash newline2 +par_parset_ash 1 +par_parset_ash newline1 +par_parset_ash newline2 +par_parset_ash 1 +par_parset_ash 2 +par_parset_ash newline1 +par_parset_ash newline2 +par_parset_ash 1 +par_parset_ash 2 +par_parset_ash 3 +par_parset_ash Exit value 2 = 2 +par_parset_ash Exit value 2 = 2 +par_parset_bash parset +par_parset_bash ### parset into array +par_parset_bash foo bar baz +par_parset_bash ### parset into vars with comma +par_parset_bash foo bar baz +par_parset_bash ### parset into vars with space +par_parset_bash foo bar baz +par_parset_bash ### parset with newlines +par_parset_bash 1 +par_parset_bash 1 +par_parset_bash 2 +par_parset_bash 1 +par_parset_bash 2 +par_parset_bash 3 +par_parset_bash ### parset into indexed array vars +par_parset_bash foo bar baz +par_parset_bash foo bar baz +par_parset_bash ### env_parset +par_parset_bash myecho myvar myarr 1 myfun foo myecho myvar myarr 1 myfun bar myecho myvar myarr 1 myfun baz +par_parset_bash myecho myvar myarr 1 myfun foo myecho myvar myarr 1 myfun bar myecho myvar myarr 1 myfun baz +par_parset_bash myecho myvar myarr 1 myfun foo myecho myvar myarr 1 myfun bar myecho myvar myarr 1 myfun baz +par_parset_bash newline1 +par_parset_bash newline2 +par_parset_bash 1 +par_parset_bash newline1 +par_parset_bash newline2 +par_parset_bash 1 +par_parset_bash 2 +par_parset_bash newline1 +par_parset_bash newline2 +par_parset_bash 1 +par_parset_bash 2 +par_parset_bash 3 +par_parset_bash myecho myvar myarr 1 myfun foo myecho myvar myarr 1 myfun bar myecho myvar myarr 1 myfun baz +par_parset_bash myecho myvar myarr 1 myfun foo myecho myvar myarr 1 myfun bar myecho myvar myarr 1 myfun baz +par_parset_bash Exit value 2 = 2 +par_parset_bash Exit value 2 = 2 +par_parset_csh Not implemented +par_parset_dash parset +par_parset_dash ### parset into vars with comma +par_parset_dash foo bar baz +par_parset_dash ### parset into vars with space +par_parset_dash foo bar baz +par_parset_dash ### parset with newlines +par_parset_dash 1 +par_parset_dash 1 +par_parset_dash 2 +par_parset_dash 1 +par_parset_dash 2 +par_parset_dash 3 +par_parset_dash ### env_parset +par_parset_dash myecho myvar foo myecho myvar bar myecho myvar baz +par_parset_dash myecho myvar foo myecho myvar bar myecho myvar baz +par_parset_dash newline1 +par_parset_dash newline2 +par_parset_dash 1 +par_parset_dash newline1 +par_parset_dash newline2 +par_parset_dash 1 +par_parset_dash 2 +par_parset_dash newline1 +par_parset_dash newline2 +par_parset_dash 1 +par_parset_dash 2 +par_parset_dash 3 +par_parset_dash Exit value 2 = 2 +par_parset_dash Exit value 2 = 2 +par_parset_fish Not implemented +par_parset_ksh parset +par_parset_ksh ### parset into array +par_parset_ksh foo bar baz +par_parset_ksh ### parset into vars with comma +par_parset_ksh foo bar baz +par_parset_ksh ### parset into vars with space +par_parset_ksh foo bar baz +par_parset_ksh ### parset with newlines +par_parset_ksh 1 +par_parset_ksh 1 +par_parset_ksh 2 +par_parset_ksh 1 +par_parset_ksh 2 +par_parset_ksh 3 +par_parset_ksh ### parset into indexed array vars +par_parset_ksh foo bar baz +par_parset_ksh foo bar baz +par_parset_ksh ### env_parset +par_parset_ksh myecho myvar myarr 1 myfun foo myecho myvar myarr 1 myfun bar myecho myvar myarr 1 myfun baz +par_parset_ksh myecho myvar myarr 1 myfun foo myecho myvar myarr 1 myfun bar myecho myvar myarr 1 myfun baz +par_parset_ksh myecho myvar myarr 1 myfun foo myecho myvar myarr 1 myfun bar myecho myvar myarr 1 myfun baz +par_parset_ksh newline1 +par_parset_ksh newline2 +par_parset_ksh 1 +par_parset_ksh newline1 +par_parset_ksh newline2 +par_parset_ksh 1 +par_parset_ksh 2 +par_parset_ksh newline1 +par_parset_ksh newline2 +par_parset_ksh 1 +par_parset_ksh 2 +par_parset_ksh 3 +par_parset_ksh myecho myvar myarr 1 myfun foo myecho myvar myarr 1 myfun bar myecho myvar myarr 1 myfun baz +par_parset_ksh myecho myvar myarr 1 myfun foo myecho myvar myarr 1 myfun bar myecho myvar myarr 1 myfun baz +par_parset_ksh Exit value 2 = 2 +par_parset_ksh Exit value 2 = 2 +par_parset_mksh parset +par_parset_mksh ### parset into array +par_parset_mksh foo bar baz +par_parset_mksh ### parset into vars with comma +par_parset_mksh foo bar baz +par_parset_mksh ### parset into vars with space +par_parset_mksh foo bar baz +par_parset_mksh ### parset with newlines +par_parset_mksh 1 +par_parset_mksh 1 +par_parset_mksh 2 +par_parset_mksh 1 +par_parset_mksh 2 +par_parset_mksh 3 +par_parset_mksh ### parset into indexed array vars +par_parset_mksh foo bar baz +par_parset_mksh foo bar baz +par_parset_mksh ### env_parset +par_parset_mksh myecho myvar myarr 1 myfun foo myecho myvar myarr 1 myfun bar myecho myvar myarr 1 myfun baz +par_parset_mksh myecho myvar myarr 1 myfun foo myecho myvar myarr 1 myfun bar myecho myvar myarr 1 myfun baz +par_parset_mksh myecho myvar myarr 1 myfun foo myecho myvar myarr 1 myfun bar myecho myvar myarr 1 myfun baz +par_parset_mksh newline1 +par_parset_mksh newline2 +par_parset_mksh 1 +par_parset_mksh newline1 +par_parset_mksh newline2 +par_parset_mksh 1 +par_parset_mksh 2 +par_parset_mksh newline1 +par_parset_mksh newline2 +par_parset_mksh 1 +par_parset_mksh 2 +par_parset_mksh 3 +par_parset_mksh myecho myvar myarr 1 myfun foo myecho myvar myarr 1 myfun bar myecho myvar myarr 1 myfun baz +par_parset_mksh myecho myvar myarr 1 myfun foo myecho myvar myarr 1 myfun bar myecho myvar myarr 1 myfun baz +par_parset_mksh Exit value 2 = 2 +par_parset_mksh Exit value 2 = 2 +par_parset_sh parset +par_parset_sh ### parset into vars with comma +par_parset_sh foo bar baz +par_parset_sh ### parset into vars with space +par_parset_sh foo bar baz +par_parset_sh ### parset with newlines +par_parset_sh 1 +par_parset_sh 1 +par_parset_sh 2 +par_parset_sh 1 +par_parset_sh 2 +par_parset_sh 3 +par_parset_sh ### env_parset +par_parset_sh # alias +par_parset_sh myalias foo +par_parset_sh myalias bar +par_parset_sh myalias baz +par_parset_sh # variable with newline +par_parset_sh newline1 +par_parset_sh newline2 foo +par_parset_sh newline1 +par_parset_sh newline2 bar +par_parset_sh newline1 +par_parset_sh newline2 baz +par_parset_sh ### parset into vars with comma +par_parset_sh foo bar baz +par_parset_sh ### parset into vars with space +par_parset_sh foo bar baz +par_parset_sh ### parset with newlines +par_parset_sh newline1 +par_parset_sh newline2 +par_parset_sh 1 +par_parset_sh newline1 +par_parset_sh newline2 +par_parset_sh 1 +par_parset_sh 2 +par_parset_sh newline1 +par_parset_sh newline2 +par_parset_sh 1 +par_parset_sh 2 +par_parset_sh 3 +par_parset_sh Exit value 2 = 2 +par_parset_sh Exit value 2 = 2 +par_parset_tcsh Not implemented +par_parset_zsh parset +par_parset_zsh ### parset into array +par_parset_zsh foo bar baz +par_parset_zsh ### parset into vars with comma +par_parset_zsh foo bar baz +par_parset_zsh ### parset into vars with space +par_parset_zsh foo bar baz +par_parset_zsh ### parset with newlines +par_parset_zsh 1 +par_parset_zsh 1 +par_parset_zsh 2 +par_parset_zsh 1 +par_parset_zsh 2 +par_parset_zsh 3 +par_parset_zsh ### parset into indexed array vars +par_parset_zsh foo bar baz +par_parset_zsh foo bar baz +par_parset_zsh ### env_parset +par_parset_zsh myecho myvar myarr 0 myfun foo +par_parset_zsh myecho myvar myarr 0 myfun bar +par_parset_zsh myecho myvar myarr 0 myfun baz +par_parset_zsh myecho myvar myarr 0 myfun foo +par_parset_zsh myecho myvar myarr 0 myfun bar +par_parset_zsh myecho myvar myarr 0 myfun baz +par_parset_zsh myecho myvar myarr 0 myfun foo +par_parset_zsh myecho myvar myarr 0 myfun bar +par_parset_zsh myecho myvar myarr 0 myfun baz +par_parset_zsh newline1 +par_parset_zsh newline2 +par_parset_zsh 1 +par_parset_zsh newline1 +par_parset_zsh newline2 +par_parset_zsh 1 +par_parset_zsh 2 +par_parset_zsh newline1 +par_parset_zsh newline2 +par_parset_zsh 1 +par_parset_zsh 2 +par_parset_zsh 3 +par_parset_zsh myecho myvar myarr 0 myfun foo myecho myvar myarr 0 myfun bar myecho myvar myarr 0 myfun baz +par_parset_zsh myecho myvar myarr 0 myfun foo myecho myvar myarr 0 myfun bar myecho myvar myarr 0 myfun baz +par_parset_zsh Exit value 2 = 2 +par_parset_zsh Exit value 2 = 2 diff --git a/testsuite/wanted-results/parallel-local-ssh8 b/testsuite/wanted-results/parallel-local-ssh8 index 6d06a300..7a1e3434 100644 --- a/testsuite/wanted-results/parallel-local-ssh8 +++ b/testsuite/wanted-results/parallel-local-ssh8 @@ -1,23 +1,9 @@ -par_bar_m ### test --bar -m -par_bar_m 0 -par_bar_m 50 -par_bar_m 100 -par_csh_environment_variables_set ### Check $PARALLEL_PID $PARALLEL_SEQ are set in csh -par_csh_environment_variables_set 3 par_filter_host_noise ### bug #63296: --filter-hosts option gets confused by output from SSH command par_filter_host_noise localhost OK par_filter_host_noise localhost Warning: Identity file id_rsa not accessible: No such file or directory. par_filter_host_noise localhost Warning: Permanently added 'localhost' (ED25519) to the list of known hosts. par_filter_host_noise localhost par_filter_host_noise localhost OK par_filter_host_noise localhost Warning: Permanently added 'localhost' (ED25519) to the list of known hosts. par_filter_host_noise localhost -par_keep_order ### Test --keep-order -par_keep_order job0 -par_keep_order job1 -par_keep_order job2 -par_keeporder ### Test --keeporder -par_keeporder job0 -par_keeporder job1 -par_keeporder job2 par_load_csh ### Gave Word too long. par_load_csh a par_path_remote_bash bug #47695: How to set $PATH on remote? Bash @@ -42,3 +28,17 @@ par_retries_4 ### Test of --retries - it should run 49 jobs in total par_retries_4 OK par_transfer_special_char_names ### Test --return of weirdly named file par_transfer_special_char_names aa<${#}" b +par_z_bar_m ### test --bar -m +par_z_bar_m 0 +par_z_bar_m 50 +par_z_bar_m 100 +par_z_csh_environment_variables_set ### Check $PARALLEL_PID $PARALLEL_SEQ are set in csh +par_z_csh_environment_variables_set 3 +par_z_keep_order ### Test --keep-order +par_z_keep_order job0 +par_z_keep_order job1 +par_z_keep_order job2 +par_z_keeporder ### Test --keeporder +par_z_keeporder job0 +par_z_keeporder job1 +par_z_keeporder job2 diff --git a/testsuite/wanted-results/parallel-local104 b/testsuite/wanted-results/parallel-local104 index d3cf49c2024b1f8409bfd9af6df42e876b9d5eea..969b7f34be52c4158389e83367a9e4024334f524 100644 GIT binary patch delta 47 kcmeyw^oePMH={aNUTS$xW?rfxmtIn0HjHP)g /tmp/bug42363; parallel --pipepart --block 31 -a /tmp/bug42363 -k --fifo wc | perl -pe 's:(/tmp.*par).....:${1}XXXXX:'; parallel --pipepart --block 31 -a /tmp/bug42363 -k --cat wc | perl -pe 's:(/tmp.*par).....:${1}XXXXX:'; rm /tmp/bug42363 - 14 14 33 '/tmp/parallel-local22-tmp/'$'\n'' `touch /tmp/tripwire` <"'\''/tmp/parXXXXX' - 11 11 33 '/tmp/parallel-local22-tmp/'$'\n'' `touch /tmp/tripwire` <"'\''/tmp/parXXXXX' - 11 11 33 '/tmp/parallel-local22-tmp/'$'\n'' `touch /tmp/tripwire` <"'\''/tmp/parXXXXX' - 11 11 33 '/tmp/parallel-local22-tmp/'$'\n'' `touch /tmp/tripwire` <"'\''/tmp/parXXXXX' - 11 11 33 '/tmp/parallel-local22-tmp/'$'\n'' `touch /tmp/tripwire` <"'\''/tmp/parXXXXX' - 11 11 33 '/tmp/parallel-local22-tmp/'$'\n'' `touch /tmp/tripwire` <"'\''/tmp/parXXXXX' - 11 11 33 '/tmp/parallel-local22-tmp/'$'\n'' `touch /tmp/tripwire` <"'\''/tmp/parXXXXX' - 11 11 33 '/tmp/parallel-local22-tmp/'$'\n'' `touch /tmp/tripwire` <"'\''/tmp/parXXXXX' - 9 9 28 '/tmp/parallel-local22-tmp/'$'\n'' `touch /tmp/tripwire` <"'\''/tmp/parXXXXX' -14 14 33 '/tmp/parallel-local22-tmp/'$'\n'' `touch /tmp/tripwire` <"'\''/tmp/parXXXXX' -11 11 33 '/tmp/parallel-local22-tmp/'$'\n'' `touch /tmp/tripwire` <"'\''/tmp/parXXXXX' -11 11 33 '/tmp/parallel-local22-tmp/'$'\n'' `touch /tmp/tripwire` <"'\''/tmp/parXXXXX' -11 11 33 '/tmp/parallel-local22-tmp/'$'\n'' `touch /tmp/tripwire` <"'\''/tmp/parXXXXX' -11 11 33 '/tmp/parallel-local22-tmp/'$'\n'' `touch /tmp/tripwire` <"'\''/tmp/parXXXXX' -11 11 33 '/tmp/parallel-local22-tmp/'$'\n'' `touch /tmp/tripwire` <"'\''/tmp/parXXXXX' -11 11 33 '/tmp/parallel-local22-tmp/'$'\n'' `touch /tmp/tripwire` <"'\''/tmp/parXXXXX' -11 11 33 '/tmp/parallel-local22-tmp/'$'\n'' `touch /tmp/tripwire` <"'\''/tmp/parXXXXX' - 9 9 28 '/tmp/parallel-local22-tmp/'$'\n'' `touch /tmp/tripwire` <"'\''/tmp/parXXXXX' + seq 100 > /tmp/bug42363; parallel --pipepart --block 31 -a /tmp/bug42363 -k --fifo 'cat {} | wc'; parallel --pipepart --block 31 -a /tmp/bug42363 -k --cat 'cat {} | wc'; rm /tmp/bug42363 + 14 14 33 + 11 11 33 + 11 11 33 + 11 11 33 + 11 11 33 + 11 11 33 + 11 11 33 + 11 11 33 + 9 9 28 + 14 14 33 + 11 11 33 + 11 11 33 + 11 11 33 + 11 11 33 + 11 11 33 + 11 11 33 + 11 11 33 + 9 9 28 echo '### bug #42055: --pipepart -a bigfile should not require sequential reading of bigfile' ### bug #42055: --pipepart -a bigfile should not require sequential reading of bigfile parallel --pipepart -a /etc/passwd -L 1 should not be run @@ -166,7 +166,7 @@ Send Receive Exitval 0 332 0 0 336 0 Send Receive Exitval -parallel: Warning: --files do not work if $TMPDIR contains newline. +parallel: Warning: Use --files0 when $TMPDIR contains newline. echo '### --files --tag' ### --files --tag seq 100 111 | parallel --files --tag --joblog /dev/stderr seq {} '|' pv -qL100 2>&1 >/dev/null | cut -f 5-7 | sort @@ -183,7 +183,7 @@ parallel: Warning: --files do not work if $TMPDIR contains newline. 0 332 0 0 336 0 Send Receive Exitval -parallel: Warning: --files do not work if $TMPDIR contains newline. +parallel: Warning: Use --files0 when $TMPDIR contains newline. echo '### --pipe' ### --pipe seq 1000 | parallel --joblog /dev/stderr --block 1111 --pipe pv -qL300 2>&1 >/dev/null | cut -f 5-7 | sort @@ -224,7 +224,7 @@ Send Receive Exitval 1108 1108 0 569 569 0 Send Receive Exitval -parallel: Warning: --files do not work if $TMPDIR contains newline. +parallel: Warning: Use --files0 when $TMPDIR contains newline. echo '### --files --pipe --tag' ### --files --pipe --tag seq 1000 | parallel --joblog /dev/stderr --block 1111 --files --pipe --tag pv -qL300 2>&1 >/dev/null | cut -f 5-7 | sort @@ -233,7 +233,7 @@ parallel: Warning: --files do not work if $TMPDIR contains newline. 1108 1108 0 569 569 0 Send Receive Exitval -parallel: Warning: --files do not work if $TMPDIR contains newline. +parallel: Warning: Use --files0 when $TMPDIR contains newline. echo '### --pipe --round-robin' ### --pipe --round-robin seq 1000 | parallel --joblog /dev/stderr --block 1111 -j2 --pipe --round-robin pv -qL300 2>&1 >/dev/null | cut -f 5-7 | sort diff --git a/testsuite/wanted-results/parallel-local5 b/testsuite/wanted-results/parallel-local5 index bb223ad2..98db9dc7 100644 --- a/testsuite/wanted-results/parallel-local5 +++ b/testsuite/wanted-results/parallel-local5 @@ -250,11 +250,11 @@ ole echo '### Test --recstart + --recend'; cat /tmp/blocktest | parallel --block 1M -k --recstart 44 --recend "44" -j10 --pipe sort -n |md5sum ### Test --recstart + --recend fb1560edff4b891a213ce2205b2c1bcb - -echo '### Race condition bug - 1 - would block'; seq 1 80 | nice parallel -j0 'seq 1 10| parallel --block 1 --recend "" --pipe cat;true' >/dev/null +echo '### Race condition bug - 1 - would block'; seq 1 80 | nice parallel -j0 'seq 1 10| parallel --block 1 --recend " --pipe cat;true' >/dev/null ### Race condition bug - 1 - would block -echo '### Race condition bug - 2 - would block'; seq 1 100 | nice parallel -j100 --block 1 --recend "" --pipe cat >/dev/null +echo '### Race condition bug - 2 - would block'; seq 1 100 | nice parallel -j100 --block 1 --recend " --pipe cat >/dev/null ### Race condition bug - 2 - would block -echo '### Test --block size=1'; seq 1 10| TMPDIR=/tmp parallel --block 1 --files --recend "" --pipe sort -n | parallel -Xj1 sort -nm {} ";"rm {} +echo '### Test --block size=1'; seq 1 10| TMPDIR=/tmp parallel --block 1 --files --recend " --pipe sort -n | parallel -Xj1 sort -nm {} ";"rm {} ### Test --block size=1 diff --git a/testsuite/wanted-results/parallel-local7 b/testsuite/wanted-results/parallel-local7 index c20144e1..db603cd7 100644 --- a/testsuite/wanted-results/parallel-local7 +++ b/testsuite/wanted-results/parallel-local7 @@ -1,16 +1,13 @@ echo '### tmux-1.9' ### tmux-1.9 seq 510 512 | PARALLEL_TMUX=tmux-1.9 par_tmux -See output with: tmux-1.9 -S '/tmp/parallel-local7-tmp/ - `touch /tmp/tripwire` <"'"'"'/tmp/tmsXXXXX' attach +See output with: tmux-1.9 -S /TMP/tmsXXXXX attach 0 seq 0000 10 510 | PARALLEL_TMUX=tmux-1.9 par_tmux -See output with: tmux-1.9 -S '/tmp/parallel-local7-tmp/ - `touch /tmp/tripwire` <"'"'"'/tmp/tmsXXXXX' attach +See output with: tmux-1.9 -S /TMP/tmsXXXXX attach 0 echo '### tmux-1.9 fails' seq 512 10 2000 | PARALLEL_TMUX=tmux-1.9 par_tmux -See output with: tmux-1.9 -S '/tmp/parallel-local7-tmp/ - `touch /tmp/tripwire` <"'"'"'/tmp/tmsXXXXX' attach +See output with: tmux-1.9 -S /TMP/tmsXXXXX attach 0 seq 2001 10 3000 | PARALLEL_TMUX=tmux-1.9 par_tmux parallel: Error: Command line too long (2012 >= 523) at input 0: 2001 @@ -65,22 +62,19 @@ parallel: Error: Command line too long (6 >= -1264) at input 0: 0 echo '### tmux-1.9 0..255 ascii' ### tmux-1.9 0..255 ascii perl -e 'print map { ($_, map { pack("c*",$_) } grep { $_>=1 && $_!=10 } 0..$_),"\n" } 0..255' | PARALLEL_TMUX=tmux-1.9 stdout parallel --tmux --timeout 5 echo | par_tmux_filter; echo $? -See output with: tmux-1.9 -S '/tmp/parallel-local7-tmp/ - `touch /tmp/tripwire` <"'"'"'/tmp/tmsXXXXX' attach +See output with: tmux-1.9 -S /TMP/tmsXXXXX attach 0 echo '### Test output ascii' ### Test output ascii rm -f /tmp/paralocal7-ascii*; perl -e 'print map { ($_, map { pack("c*",$_) } grep { $_>=1 && $_!=10 } $_-10..$_),"\n" } 1..255' | stdout parallel --tmux echo {}'>>/tmp/paralocal7-ascii{%}' | par_tmux_filter; sort /tmp/paralocal7-ascii* | md5sum -See output with: tmux -S '/tmp/parallel-local7-tmp/ - `touch /tmp/tripwire` <"'"'"'/tmp/tmsXXXXX' attach +See output with: tmux -S /TMP/tmsXXXXX attach 053c7e8e945ef7641fc63bc309ac069d - echo '### Test critical lengths. Must not block' ### Test critical lengths. Must not block seq 140 260 | PARALLEL_TMUX=tmux-1.8 stdout parallel --tmux echo '{}{=$_="&"x$_=}' | par_tmux_filter parallel: Error: Command line too long (150 >= -1264) at input 0: 140 seq 140 260 | PARALLEL_TMUX=tmux-1.9 stdout parallel --tmux echo '{}{=$_="&"x$_=}' | par_tmux_filter -See output with: tmux-1.9 -S '/tmp/parallel-local7-tmp/ - `touch /tmp/tripwire` <"'"'"'/tmp/tmsXXXXX' attach +See output with: tmux-1.9 -S /TMP/tmsXXXXX attach seq 560 850 | PARALLEL_TMUX=tmux-1.8 stdout parallel --tmux echo '{}{=$_="a"x$_=}' | par_tmux_filter parallel: Error: Command line too long (568 >= -1264) at input 0: 560 seq 560 850 | PARALLEL_TMUX=tmux-1.9 stdout parallel --tmux echo '{}{=$_="a"x$_=}' | par_tmux_filter diff --git a/testsuite/wanted-results/parallel-macos b/testsuite/wanted-results/parallel-macos index ab608404..252fa68f 100644 --- a/testsuite/wanted-results/parallel-macos +++ b/testsuite/wanted-results/parallel-macos @@ -1,7 +1,7 @@ -par_big_func 1 3XXX 91XXX -par_big_func 1 3XXX 91XXX -par_big_func 1 3XXX 91XXX -par_big_func 1 1XXX 46XXX +par_big_func 1 3XXX 90XXX +par_big_func 1 3XXX 90XXX +par_big_func 1 3XXX 90XXX +par_big_func 1 1XXX 47XXX par_big_func_name 18XXX par_big_func_name 18XXX par_big_func_name 18XXX @@ -32,40 +32,41 @@ par_many_args 1 3XXX 6XXX par_many_args 1 3XXX 6XXX par_many_args 1 3XXX 6XXX par_many_args 1 1XXX 3XXX -par_many_func 1 200 4XXX -par_many_func 1 200 4XXX -par_many_func 1 200 4XXX -par_many_func 1 200 4XXX -par_many_func 1 200 4XXX -par_many_func 1 200 4XXX -par_many_func 1 200 4XXX -par_many_func 1 200 4XXX -par_many_func 1 200 4XXX -par_many_func 1 200 4XXX -par_many_func 1 200 4XXX -par_many_func 1 200 4XXX -par_many_func 1 200 4XXX -par_many_func 1 200 4XXX -par_many_func 1 200 4XXX -par_many_func 1 200 4XXX -par_many_func 1 200 4XXX -par_many_func 1 200 4XXX -par_many_func 1 200 4XXX -par_many_func 1 200 4XXX -par_many_func 1 200 4XXX -par_many_func 1 200 4XXX -par_many_func 1 200 4XXX -par_many_func 1 200 4XXX -par_many_func 1 200 4XXX -par_many_func 1 200 4XXX -par_many_func 1 200 4XXX -par_many_func 1 200 4XXX -par_many_func 1 200 4XXX -par_many_func 1 200 4XXX -par_many_func 1 200 4XXX -par_many_func 1 200 4XXX -par_many_func 1 200 4XXX -par_many_func 1 68 1XXX +par_many_func 1 196 4XXX +par_many_func 1 196 4XXX +par_many_func 1 196 4XXX +par_many_func 1 196 4XXX +par_many_func 1 196 4XXX +par_many_func 1 196 4XXX +par_many_func 1 196 4XXX +par_many_func 1 196 4XXX +par_many_func 1 196 4XXX +par_many_func 1 196 4XXX +par_many_func 1 196 4XXX +par_many_func 1 196 4XXX +par_many_func 1 196 4XXX +par_many_func 1 196 4XXX +par_many_func 1 196 4XXX +par_many_func 1 196 4XXX +par_many_func 1 196 4XXX +par_many_func 1 196 4XXX +par_many_func 1 196 4XXX +par_many_func 1 196 4XXX +par_many_func 1 196 4XXX +par_many_func 1 196 4XXX +par_many_func 1 196 4XXX +par_many_func 1 196 4XXX +par_many_func 1 196 4XXX +par_many_func 1 196 4XXX +par_many_func 1 196 4XXX +par_many_func 1 196 4XXX +par_many_func 1 196 4XXX +par_many_func 1 196 4XXX +par_many_func 1 196 4XXX +par_many_func 1 196 4XXX +par_many_func 1 196 4XXX +par_many_func 1 196 4XXX +par_many_func 1 4 68 par_many_var 22XXX par_many_var 22XXX par_many_var 22XXX diff --git a/testsuite/wanted-results/parallel-tutorial b/testsuite/wanted-results/parallel-tutorial index 1343ebef..2608c0c3 100644 --- a/testsuite/wanted-results/parallel-tutorial +++ b/testsuite/wanted-results/parallel-tutorial @@ -148,10 +148,10 @@ num1000000 num128 num30000 num8 +outdir tsv-file.tsv foo -/tmp/parallel-tutorial-tmp/ - `touch /tmp/tripwire` <"'/tmp +/TMP my_func() { echo in my_func $1 } @@ -385,6 +385,8 @@ pre-A-post /usr/bin/bash: -c: line 1: syntax error near unexpected token `)' /usr/bin/bash: -c: line 1: `set a="num8"; if( { test -d "$a" } ) echo "$a is a dir"' /usr/bin/bash: -c: line 1: syntax error near unexpected token `)' +/usr/bin/bash: -c: line 1: `set a="outdir"; if( { test -d "$a" } ) echo "$a is a dir"' +/usr/bin/bash: -c: line 1: syntax error near unexpected token `)' /usr/bin/bash: -c: line 1: `set a="tsv-file.tsv"; if( { test -d "$a" } ) echo "$a is a dir"' parallel --tag echo foo-{} ::: A B C A foo-A @@ -440,13 +442,7 @@ echo C 1-middle 1-end parallel --files echo ::: A B C -/tmp/parallel-tutorial-tmp/ - `touch /tmp/tripwire` <"'/tmp/tempfile -/tmp/parallel-tutorial-tmp/ - `touch /tmp/tripwire` <"'/tmp/tempfile -/tmp/parallel-tutorial-tmp/ - `touch /tmp/tripwire` <"'/tmp/tempfile -parallel: Warning: --files do not work if $TMPDIR contains newline. +/TMP/tempfile parallel --tmpdir /var/tmp --files echo ::: A B C /var/tmp/tempfile parallel --results outdir echo ::: A B C @@ -516,8 +512,7 @@ parallel: Warning: or increasing /proc/sys/fs/file-max parallel --shuf echo ::: 1 2 3 ::: a b c ::: A B C 123 abc ABC seq 10 20 | parallel --tmux 'echo start {}; sleep {}; echo done {}' -See output with: tmux -S '/tmp/parallel-tutorial-tmp/ - `touch /tmp/tripwire` <"'"'"'/tmp/tmsXXXXX' attach +See output with: tmux -S /TMP/tmsXXXXX attach tmux -S /tmp/tmsXXXXX attach no sessions parallel --delay 2.5 echo Starting {}\;date ::: 1 2 3 @@ -705,12 +700,11 @@ This is input_file cat common_file\; echo {} ::: foo common data foo - parallel -S $SERVER1 pwd ::: "" - parallel --workdir . -S $SERVER1 pwd ::: "" - parallel --workdir ... -S $SERVER1 pwd ::: "" + parallel -S $SERVER1 pwd ::: " + parallel --workdir . -S $SERVER1 pwd ::: " + parallel --workdir ... -S $SERVER1 pwd ::: " /home/parallel -/tmp/parallel-tutorial-tmp/ - `touch /tmp/tripwire` <"'/tmp +/TMP /home/parallel/.TMPWORKDIR parallel -S $SERVER1 --sshdelay 0.2 echo ::: 1 2 3 9 @@ -792,11 +786,14 @@ foo bar baz in my_func baz parallel --record-env cat ~/.parallel/ignored_vars|sort +BASH_FUNC_replace_tmpdir%% BASH_FUNC_run_once%% BASH_FUNC_run_test%% _ mysqlrootpass oracle_password +qTMPDIR +qqTMPDIR testsuitedir withpassword # The function is only copied if using Bash @@ -1213,7 +1210,7 @@ Arguments io.write(" ") io.write(arg[a]) end - print("") + print(") /usr/bin/bash: line 3: io.write: command not found /usr/bin/bash: -c: line 4: syntax error near unexpected token `=' /usr/bin/bash: -c: line 4: ` for a = 1, #arg do' diff --git a/testsuite/wanted-results/sql01 b/testsuite/wanted-results/sql01 index 530b5913..ecb75d99 100644 --- a/testsuite/wanted-results/sql01 +++ b/testsuite/wanted-results/sql01 @@ -47,9 +47,7 @@ def 3 ### Test --debug dburl mysql://tange:tange@localhost:3306/tange databasedriver mysql user tange password tange host localhost port 3306 database tange query -[ | ((sleep 1; rm '/tmp/sql01-tmp/ - `touch /tmp/tripwire` <"'"'"'tmpfile') & mysql --defaults-extra-file='/tmp/sql01-tmp/ - `touch /tmp/tripwire` <"'"'"'tmpfile' --host=localhost --user=tange --port=3306 tange)] +[ | ((sleep 1; rm /TMP/tmpfile') & mysql --defaults-extra-file=/TMP/tmpfile' --host=localhost --user=tange --port=3306 tange)] Test if --debug works Yes it does ### Test --version -V