From 4e301386e3971a200aa5aba03eecab6ba9b748eb Mon Sep 17 00:00:00 2001 From: Ole Tange Date: Sun, 10 Jun 2018 17:07:24 +0200 Subject: [PATCH] parallel: Deal better with multibyte chars by forcing LC_ALL=C. --- doc/release_new_version | 35 +-- src/parallel | 11 +- testsuite/tests-to-run/parallel-local-0.3s.sh | 8 + testsuite/wanted-results/parallel-local-0.3s | 5 + testsuite/wanted-results/parallel-local-ssh7 | 288 +++++++++++------- testsuite/wanted-results/parallel-local-ssh9 | 24 +- 6 files changed, 225 insertions(+), 146 deletions(-) diff --git a/doc/release_new_version b/doc/release_new_version index 95dabee8..538defee 100644 --- a/doc/release_new_version +++ b/doc/release_new_version @@ -199,37 +199,32 @@ to:parallel@gnu.org, bug-parallel@gnu.org stable-bcc: Jesse Alama -Subject: GNU Parallel 20180522 ('Korea/The Great March of Return') released <<[stable]>> +Subject: GNU Parallel 20180622 ('GDPR/Guatamala') released <<[stable]>> -GNU Parallel 20180522 ('') <<[stable]>> has been released. It is available for download at: http://ftpmirror.gnu.org/parallel/ +GNU Parallel 20180622 ('') <<[stable]>> has been released. It is available for download at: http://ftpmirror.gnu.org/parallel/ <> Quote of the month: -<<>> + GNU Parallel 實在太方便啦!! + Yucheng Chuang @yorkxin@twitter + New in this release: -* --tty allows for more programs accessing /dev/tty in parallel. Some programs require tty access without using it. +?https://www.zcfy.cc/article/get-more-done-at-the-linux-command-line-with-gnu-parallel +https://linux.cn/article-9718-1.html +https://poesiabinaria.net/2018/06/ejecutando-tareas-desde-consola-simultaneamente-gnu-parallel/ +https://www.ubuntizando.com/como-ejecutar-varias-tareas-simultaneamente-en-el-terminal-con-gnu-parallel/ +dr.dk +https://www.techrepublic.com/article/how-to-run-commands-simultaneously-with-gnu-parallel/#ftag=RSS56d97e7 -* env_parallel --session will record names in current environment in $PARALLEL_IGNORED_NAMES and exit. It is only used with env_parallel, and can work like --record-env but in a single session. - -https://comquest.in/training -https://bash-prompt.net/guides/parallell-bash/ -https://blog.uta.edu/xus/2017/09/29/an-easy-way-to-run-parallel-jobs-on-stampede2/ - -https://opensource.com/article/18/5/gnu-parallel - - -GNU Parallel: haz más cosas simultáneamente en el terminal -https://blog.desdelinux.net/gnu-parallel-haz-mas-cosas-simultaneamente-en-el-terminal/ -https://www.sans.org/summit-archives/file/summit-archive-1524582079.pdf - -「今日から使い切る」ための GNU Parallelによる並列処理入門 - -https://www.slideshare.net/koji_matsuda/gnu-parallel?qid=65d63b1a-1ef4-46fa-82c3-69c9ab7df439&v=&b=&from_search=1 +http://mpharrigan.com/2016/08/02/parallel.html +http://slhogle.github.io/2016/gnu-parallel/ +http://genoglobe.kr/kribb/gnu_parallel +https://www.crowdsupply.com/ground-electronics/circumference/updates/a-gnu-parallel-clustering-demo <> diff --git a/src/parallel b/src/parallel index 22b93fc8..b25d7338 100755 --- a/src/parallel +++ b/src/parallel @@ -1521,6 +1521,8 @@ sub init_globals { $Global::trim = 'n'; $Global::max_jobs_running = 0; $Global::job_already_run = ''; + # LC_ALL workaround for multibyte chars containing special shell chars + $ENV{'LC_ALL'} = 'C'; $ENV{'TMPDIR'} ||= "/tmp"; if(not $ENV{HOME}) { # $ENV{HOME} is sometimes not set if called from PHP @@ -10044,15 +10046,6 @@ sub new { my @command = @$commandref; my $dummy = ''; my $seq = 1; - # If the first command start with '-' it is probably an option - if($command[0] =~ /^\s*(-\S+)/) { - # Is this really a command in $PATH starting with '-'? - my $cmd = $1; - if(not ::which($cmd)) { - ::error("Command ($cmd) starts with '-'. Is this a wrong option?"); - ::wait_and_exit(255); - } - } # Replace replacement strings with {= perl expr =} # '{=' 'perlexpr' '=}' => '{= perlexpr =}' @command = merge_rpl_parts(@command); diff --git a/testsuite/tests-to-run/parallel-local-0.3s.sh b/testsuite/tests-to-run/parallel-local-0.3s.sh index 776490b9..8a5c953f 100644 --- a/testsuite/tests-to-run/parallel-local-0.3s.sh +++ b/testsuite/tests-to-run/parallel-local-0.3s.sh @@ -800,6 +800,14 @@ par_testquote() { parallel --tag -k testquote ::: ash bash csh dash fdsh fish fizsh ksh ksh93 mksh posh rbash rc rzsh sash sh static-sh tcsh yash zsh } +par_locale_quoting() { + echo "### quoting in different locales" + printf '\243`/tmp/test\243`\n' + printf '\243`/tmp/test\243`\n' | LC_ALL=zh_HK.big5hkscs xargs echo '$LC_ALL' + # LC_ALL should be zh_HK.big5hkscs, but that makes quoting hard. + printf '\243`/tmp/test\243`\n' | LC_ALL=zh_HK.big5hkscs parallel -v echo '$LC_ALL' +} + export -f $(compgen -A function | grep par_) compgen -A function | grep par_ | sort | diff --git a/testsuite/wanted-results/parallel-local-0.3s b/testsuite/wanted-results/parallel-local-0.3s index 0c3b17d0..f18feac9 100644 --- a/testsuite/wanted-results/parallel-local-0.3s +++ b/testsuite/wanted-results/parallel-local-0.3s @@ -1407,6 +1407,11 @@ 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 par_link_files_as_only_arg 3 3 3 +par_locale_quoting ### quoting in different locales +par_locale_quoting `/tmp/test` +par_locale_quoting $LC_ALL `/tmp/test` +par_locale_quoting echo $LC_ALL \\`/tmp/test\\` +par_locale_quoting C `/tmp/test` par_newline_in_command Command with newline and positional replacement strings par_newline_in_command O K par_no_command_given ### Test bugfix if no command given diff --git a/testsuite/wanted-results/parallel-local-ssh7 b/testsuite/wanted-results/parallel-local-ssh7 index 80186f84..02deebd9 100644 --- a/testsuite/wanted-results/parallel-local-ssh7 +++ b/testsuite/wanted-results/parallel-local-ssh7 @@ -154,65 +154,81 @@ par_zsh_environment_too_big OK_bigfunc_quote_remote par_zsh_environment_too_big Rest should fail par_zsh_environment_too_big _which:12: 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 2 different approaches: -par_zsh_environment_too_big env_parallel: Error: 1. Use --env and only mention the names to copy. -par_zsh_environment_too_big env_parallel: Error: 2. Try running this in a clean environment once: +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:12: 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 2 different approaches: -par_zsh_environment_too_big env_parallel: Error: 1. Use --env and only mention the names to copy. -par_zsh_environment_too_big env_parallel: Error: 2. Try running this in a clean environment once: +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:12: 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 2 different approaches: -par_zsh_environment_too_big env_parallel: Error: 1. Use --env and only mention the names to copy. -par_zsh_environment_too_big env_parallel: Error: 2. Try running this in a clean environment once: +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:12: 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 2 different approaches: -par_zsh_environment_too_big env_parallel: Error: 1. Use --env and only mention the names to copy. -par_zsh_environment_too_big env_parallel: Error: 2. Try running this in a clean environment once: +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:12: 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 2 different approaches: -par_zsh_environment_too_big env_parallel: Error: 1. Use --env and only mention the names to copy. -par_zsh_environment_too_big env_parallel: Error: 2. Try running this in a clean environment once: +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:12: 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 2 different approaches: -par_zsh_environment_too_big env_parallel: Error: 1. Use --env and only mention the names to copy. -par_zsh_environment_too_big env_parallel: Error: 2. Try running this in a clean environment once: +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:12: 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 2 different approaches: -par_zsh_environment_too_big env_parallel: Error: 1. Use --env and only mention the names to copy. -par_zsh_environment_too_big env_parallel: Error: 2. Try running this in a clean environment once: +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:12: 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 2 different approaches: -par_zsh_environment_too_big env_parallel: Error: 1. Use --env and only mention the names to copy. -par_zsh_environment_too_big env_parallel: Error: 2. Try running this in a clean environment once: +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 @@ -464,33 +480,41 @@ par_sh_environment_too_big OK_bigvar_quote_remote par_sh_environment_too_big Rest should fail par_sh_environment_too_big sh: XXX: perl: Argument list too long par_sh_environment_too_big env_parallel: Error: Your environment is too big. -par_sh_environment_too_big env_parallel: Error: You can try 2 different approaches: -par_sh_environment_too_big env_parallel: Error: 1. Use --env and only mention the names to copy. -par_sh_environment_too_big env_parallel: Error: 2. Try running this in a clean environment once: +par_sh_environment_too_big env_parallel: Error: You can try 3 different approaches: +par_sh_environment_too_big env_parallel: Error: 1. Run 'env_parallel --session' before you set +par_sh_environment_too_big env_parallel: Error: variables or define functions. +par_sh_environment_too_big env_parallel: Error: 2. Use --env and only mention the names to copy. +par_sh_environment_too_big env_parallel: Error: 3. Try running this in a clean environment once: par_sh_environment_too_big env_parallel: Error: env_parallel --record-env par_sh_environment_too_big env_parallel: Error: And then use '--env _' par_sh_environment_too_big env_parallel: Error: For details see: man env_parallel par_sh_environment_too_big sh: XXX: perl: Argument list too long par_sh_environment_too_big env_parallel: Error: Your environment is too big. -par_sh_environment_too_big env_parallel: Error: You can try 2 different approaches: -par_sh_environment_too_big env_parallel: Error: 1. Use --env and only mention the names to copy. -par_sh_environment_too_big env_parallel: Error: 2. Try running this in a clean environment once: +par_sh_environment_too_big env_parallel: Error: You can try 3 different approaches: +par_sh_environment_too_big env_parallel: Error: 1. Run 'env_parallel --session' before you set +par_sh_environment_too_big env_parallel: Error: variables or define functions. +par_sh_environment_too_big env_parallel: Error: 2. Use --env and only mention the names to copy. +par_sh_environment_too_big env_parallel: Error: 3. Try running this in a clean environment once: par_sh_environment_too_big env_parallel: Error: env_parallel --record-env par_sh_environment_too_big env_parallel: Error: And then use '--env _' par_sh_environment_too_big env_parallel: Error: For details see: man env_parallel par_sh_environment_too_big sh: XXX: perl: Argument list too long par_sh_environment_too_big env_parallel: Error: Your environment is too big. -par_sh_environment_too_big env_parallel: Error: You can try 2 different approaches: -par_sh_environment_too_big env_parallel: Error: 1. Use --env and only mention the names to copy. -par_sh_environment_too_big env_parallel: Error: 2. Try running this in a clean environment once: +par_sh_environment_too_big env_parallel: Error: You can try 3 different approaches: +par_sh_environment_too_big env_parallel: Error: 1. Run 'env_parallel --session' before you set +par_sh_environment_too_big env_parallel: Error: variables or define functions. +par_sh_environment_too_big env_parallel: Error: 2. Use --env and only mention the names to copy. +par_sh_environment_too_big env_parallel: Error: 3. Try running this in a clean environment once: par_sh_environment_too_big env_parallel: Error: env_parallel --record-env par_sh_environment_too_big env_parallel: Error: And then use '--env _' par_sh_environment_too_big env_parallel: Error: For details see: man env_parallel par_sh_environment_too_big sh: XXX: perl: Argument list too long par_sh_environment_too_big env_parallel: Error: Your environment is too big. -par_sh_environment_too_big env_parallel: Error: You can try 2 different approaches: -par_sh_environment_too_big env_parallel: Error: 1. Use --env and only mention the names to copy. -par_sh_environment_too_big env_parallel: Error: 2. Try running this in a clean environment once: +par_sh_environment_too_big env_parallel: Error: You can try 3 different approaches: +par_sh_environment_too_big env_parallel: Error: 1. Run 'env_parallel --session' before you set +par_sh_environment_too_big env_parallel: Error: variables or define functions. +par_sh_environment_too_big env_parallel: Error: 2. Use --env and only mention the names to copy. +par_sh_environment_too_big env_parallel: Error: 3. Try running this in a clean environment once: par_sh_environment_too_big env_parallel: Error: env_parallel --record-env par_sh_environment_too_big env_parallel: Error: And then use '--env _' par_sh_environment_too_big env_parallel: Error: For details see: man env_parallel @@ -676,65 +700,81 @@ par_ksh_environment_too_big OK_bigfunc_quote_remote par_ksh_environment_too_big Rest should fail par_ksh_environment_too_big ksh[XXX]: perl: /usr/bin/perl: cannot execute [Argument list too long] par_ksh_environment_too_big env_parallel: Error: Your environment is too big. -par_ksh_environment_too_big env_parallel: Error: You can try 2 different approaches: -par_ksh_environment_too_big env_parallel: Error: 1. Use --env and only mention the names to copy. -par_ksh_environment_too_big env_parallel: Error: 2. Try running this in a clean environment once: +par_ksh_environment_too_big env_parallel: Error: You can try 3 different approaches: +par_ksh_environment_too_big env_parallel: Error: 1. Run 'env_parallel --session' before you set +par_ksh_environment_too_big env_parallel: Error: variables or define functions. +par_ksh_environment_too_big env_parallel: Error: 2. Use --env and only mention the names to copy. +par_ksh_environment_too_big env_parallel: Error: 3. Try running this in a clean environment once: par_ksh_environment_too_big env_parallel: Error: env_parallel --record-env par_ksh_environment_too_big env_parallel: Error: And then use '--env _' par_ksh_environment_too_big env_parallel: Error: For details see: man env_parallel par_ksh_environment_too_big ksh[XXX]: perl: /usr/bin/perl: cannot execute [Argument list too long] par_ksh_environment_too_big env_parallel: Error: Your environment is too big. -par_ksh_environment_too_big env_parallel: Error: You can try 2 different approaches: -par_ksh_environment_too_big env_parallel: Error: 1. Use --env and only mention the names to copy. -par_ksh_environment_too_big env_parallel: Error: 2. Try running this in a clean environment once: +par_ksh_environment_too_big env_parallel: Error: You can try 3 different approaches: +par_ksh_environment_too_big env_parallel: Error: 1. Run 'env_parallel --session' before you set +par_ksh_environment_too_big env_parallel: Error: variables or define functions. +par_ksh_environment_too_big env_parallel: Error: 2. Use --env and only mention the names to copy. +par_ksh_environment_too_big env_parallel: Error: 3. Try running this in a clean environment once: par_ksh_environment_too_big env_parallel: Error: env_parallel --record-env par_ksh_environment_too_big env_parallel: Error: And then use '--env _' par_ksh_environment_too_big env_parallel: Error: For details see: man env_parallel par_ksh_environment_too_big ksh[XXX]: perl: /usr/bin/perl: cannot execute [Argument list too long] par_ksh_environment_too_big env_parallel: Error: Your environment is too big. -par_ksh_environment_too_big env_parallel: Error: You can try 2 different approaches: -par_ksh_environment_too_big env_parallel: Error: 1. Use --env and only mention the names to copy. -par_ksh_environment_too_big env_parallel: Error: 2. Try running this in a clean environment once: +par_ksh_environment_too_big env_parallel: Error: You can try 3 different approaches: +par_ksh_environment_too_big env_parallel: Error: 1. Run 'env_parallel --session' before you set +par_ksh_environment_too_big env_parallel: Error: variables or define functions. +par_ksh_environment_too_big env_parallel: Error: 2. Use --env and only mention the names to copy. +par_ksh_environment_too_big env_parallel: Error: 3. Try running this in a clean environment once: par_ksh_environment_too_big env_parallel: Error: env_parallel --record-env par_ksh_environment_too_big env_parallel: Error: And then use '--env _' par_ksh_environment_too_big env_parallel: Error: For details see: man env_parallel par_ksh_environment_too_big ksh[XXX]: perl: /usr/bin/perl: cannot execute [Argument list too long] par_ksh_environment_too_big env_parallel: Error: Your environment is too big. -par_ksh_environment_too_big env_parallel: Error: You can try 2 different approaches: -par_ksh_environment_too_big env_parallel: Error: 1. Use --env and only mention the names to copy. -par_ksh_environment_too_big env_parallel: Error: 2. Try running this in a clean environment once: +par_ksh_environment_too_big env_parallel: Error: You can try 3 different approaches: +par_ksh_environment_too_big env_parallel: Error: 1. Run 'env_parallel --session' before you set +par_ksh_environment_too_big env_parallel: Error: variables or define functions. +par_ksh_environment_too_big env_parallel: Error: 2. Use --env and only mention the names to copy. +par_ksh_environment_too_big env_parallel: Error: 3. Try running this in a clean environment once: par_ksh_environment_too_big env_parallel: Error: env_parallel --record-env par_ksh_environment_too_big env_parallel: Error: And then use '--env _' par_ksh_environment_too_big env_parallel: Error: For details see: man env_parallel par_ksh_environment_too_big ksh[XXX]: perl: /usr/bin/perl: cannot execute [Argument list too long] par_ksh_environment_too_big env_parallel: Error: Your environment is too big. -par_ksh_environment_too_big env_parallel: Error: You can try 2 different approaches: -par_ksh_environment_too_big env_parallel: Error: 1. Use --env and only mention the names to copy. -par_ksh_environment_too_big env_parallel: Error: 2. Try running this in a clean environment once: +par_ksh_environment_too_big env_parallel: Error: You can try 3 different approaches: +par_ksh_environment_too_big env_parallel: Error: 1. Run 'env_parallel --session' before you set +par_ksh_environment_too_big env_parallel: Error: variables or define functions. +par_ksh_environment_too_big env_parallel: Error: 2. Use --env and only mention the names to copy. +par_ksh_environment_too_big env_parallel: Error: 3. Try running this in a clean environment once: par_ksh_environment_too_big env_parallel: Error: env_parallel --record-env par_ksh_environment_too_big env_parallel: Error: And then use '--env _' par_ksh_environment_too_big env_parallel: Error: For details see: man env_parallel par_ksh_environment_too_big ksh[XXX]: perl: /usr/bin/perl: cannot execute [Argument list too long] par_ksh_environment_too_big env_parallel: Error: Your environment is too big. -par_ksh_environment_too_big env_parallel: Error: You can try 2 different approaches: -par_ksh_environment_too_big env_parallel: Error: 1. Use --env and only mention the names to copy. -par_ksh_environment_too_big env_parallel: Error: 2. Try running this in a clean environment once: +par_ksh_environment_too_big env_parallel: Error: You can try 3 different approaches: +par_ksh_environment_too_big env_parallel: Error: 1. Run 'env_parallel --session' before you set +par_ksh_environment_too_big env_parallel: Error: variables or define functions. +par_ksh_environment_too_big env_parallel: Error: 2. Use --env and only mention the names to copy. +par_ksh_environment_too_big env_parallel: Error: 3. Try running this in a clean environment once: par_ksh_environment_too_big env_parallel: Error: env_parallel --record-env par_ksh_environment_too_big env_parallel: Error: And then use '--env _' par_ksh_environment_too_big env_parallel: Error: For details see: man env_parallel par_ksh_environment_too_big ksh[XXX]: perl: /usr/bin/perl: cannot execute [Argument list too long] par_ksh_environment_too_big env_parallel: Error: Your environment is too big. -par_ksh_environment_too_big env_parallel: Error: You can try 2 different approaches: -par_ksh_environment_too_big env_parallel: Error: 1. Use --env and only mention the names to copy. -par_ksh_environment_too_big env_parallel: Error: 2. Try running this in a clean environment once: +par_ksh_environment_too_big env_parallel: Error: You can try 3 different approaches: +par_ksh_environment_too_big env_parallel: Error: 1. Run 'env_parallel --session' before you set +par_ksh_environment_too_big env_parallel: Error: variables or define functions. +par_ksh_environment_too_big env_parallel: Error: 2. Use --env and only mention the names to copy. +par_ksh_environment_too_big env_parallel: Error: 3. Try running this in a clean environment once: par_ksh_environment_too_big env_parallel: Error: env_parallel --record-env par_ksh_environment_too_big env_parallel: Error: And then use '--env _' par_ksh_environment_too_big env_parallel: Error: For details see: man env_parallel par_ksh_environment_too_big ksh[XXX]: perl: /usr/bin/perl: cannot execute [Argument list too long] par_ksh_environment_too_big env_parallel: Error: Your environment is too big. -par_ksh_environment_too_big env_parallel: Error: You can try 2 different approaches: -par_ksh_environment_too_big env_parallel: Error: 1. Use --env and only mention the names to copy. -par_ksh_environment_too_big env_parallel: Error: 2. Try running this in a clean environment once: +par_ksh_environment_too_big env_parallel: Error: You can try 3 different approaches: +par_ksh_environment_too_big env_parallel: Error: 1. Run 'env_parallel --session' before you set +par_ksh_environment_too_big env_parallel: Error: variables or define functions. +par_ksh_environment_too_big env_parallel: Error: 2. Use --env and only mention the names to copy. +par_ksh_environment_too_big env_parallel: Error: 3. Try running this in a clean environment once: par_ksh_environment_too_big env_parallel: Error: env_parallel --record-env par_ksh_environment_too_big env_parallel: Error: And then use '--env _' par_ksh_environment_too_big env_parallel: Error: For details see: man env_parallel @@ -988,33 +1028,41 @@ par_dash_environment_too_big OK_bigvar_quote_remote par_dash_environment_too_big Rest should fail par_dash_environment_too_big dash: XXX: perl: Argument list too long par_dash_environment_too_big env_parallel: Error: Your environment is too big. -par_dash_environment_too_big env_parallel: Error: You can try 2 different approaches: -par_dash_environment_too_big env_parallel: Error: 1. Use --env and only mention the names to copy. -par_dash_environment_too_big env_parallel: Error: 2. Try running this in a clean environment once: +par_dash_environment_too_big env_parallel: Error: You can try 3 different approaches: +par_dash_environment_too_big env_parallel: Error: 1. Run 'env_parallel --session' before you set +par_dash_environment_too_big env_parallel: Error: variables or define functions. +par_dash_environment_too_big env_parallel: Error: 2. Use --env and only mention the names to copy. +par_dash_environment_too_big env_parallel: Error: 3. Try running this in a clean environment once: par_dash_environment_too_big env_parallel: Error: env_parallel --record-env par_dash_environment_too_big env_parallel: Error: And then use '--env _' par_dash_environment_too_big env_parallel: Error: For details see: man env_parallel par_dash_environment_too_big dash: XXX: perl: Argument list too long par_dash_environment_too_big env_parallel: Error: Your environment is too big. -par_dash_environment_too_big env_parallel: Error: You can try 2 different approaches: -par_dash_environment_too_big env_parallel: Error: 1. Use --env and only mention the names to copy. -par_dash_environment_too_big env_parallel: Error: 2. Try running this in a clean environment once: +par_dash_environment_too_big env_parallel: Error: You can try 3 different approaches: +par_dash_environment_too_big env_parallel: Error: 1. Run 'env_parallel --session' before you set +par_dash_environment_too_big env_parallel: Error: variables or define functions. +par_dash_environment_too_big env_parallel: Error: 2. Use --env and only mention the names to copy. +par_dash_environment_too_big env_parallel: Error: 3. Try running this in a clean environment once: par_dash_environment_too_big env_parallel: Error: env_parallel --record-env par_dash_environment_too_big env_parallel: Error: And then use '--env _' par_dash_environment_too_big env_parallel: Error: For details see: man env_parallel par_dash_environment_too_big dash: XXX: perl: Argument list too long par_dash_environment_too_big env_parallel: Error: Your environment is too big. -par_dash_environment_too_big env_parallel: Error: You can try 2 different approaches: -par_dash_environment_too_big env_parallel: Error: 1. Use --env and only mention the names to copy. -par_dash_environment_too_big env_parallel: Error: 2. Try running this in a clean environment once: +par_dash_environment_too_big env_parallel: Error: You can try 3 different approaches: +par_dash_environment_too_big env_parallel: Error: 1. Run 'env_parallel --session' before you set +par_dash_environment_too_big env_parallel: Error: variables or define functions. +par_dash_environment_too_big env_parallel: Error: 2. Use --env and only mention the names to copy. +par_dash_environment_too_big env_parallel: Error: 3. Try running this in a clean environment once: par_dash_environment_too_big env_parallel: Error: env_parallel --record-env par_dash_environment_too_big env_parallel: Error: And then use '--env _' par_dash_environment_too_big env_parallel: Error: For details see: man env_parallel par_dash_environment_too_big dash: XXX: perl: Argument list too long par_dash_environment_too_big env_parallel: Error: Your environment is too big. -par_dash_environment_too_big env_parallel: Error: You can try 2 different approaches: -par_dash_environment_too_big env_parallel: Error: 1. Use --env and only mention the names to copy. -par_dash_environment_too_big env_parallel: Error: 2. Try running this in a clean environment once: +par_dash_environment_too_big env_parallel: Error: You can try 3 different approaches: +par_dash_environment_too_big env_parallel: Error: 1. Run 'env_parallel --session' before you set +par_dash_environment_too_big env_parallel: Error: variables or define functions. +par_dash_environment_too_big env_parallel: Error: 2. Use --env and only mention the names to copy. +par_dash_environment_too_big env_parallel: Error: 3. Try running this in a clean environment once: par_dash_environment_too_big env_parallel: Error: env_parallel --record-env par_dash_environment_too_big env_parallel: Error: And then use '--env _' par_dash_environment_too_big env_parallel: Error: For details see: man env_parallel @@ -1316,65 +1364,81 @@ par_bash_environment_too_big OK_bigfunc_quote_remote par_bash_environment_too_big Rest should fail par_bash_environment_too_big /usr/local/bin/env_parallel.bash: line XXX: /usr/bin/perl: Argument list too long par_bash_environment_too_big env_parallel: Error: Your environment is too big. -par_bash_environment_too_big env_parallel: Error: You can try 2 different approaches: -par_bash_environment_too_big env_parallel: Error: 1. Use --env and only mention the names to copy. -par_bash_environment_too_big env_parallel: Error: 2. Try running this in a clean environment once: +par_bash_environment_too_big env_parallel: Error: You can try 3 different approaches: +par_bash_environment_too_big env_parallel: Error: 1. Run 'env_parallel --session' before you set +par_bash_environment_too_big env_parallel: Error: variables or define functions. +par_bash_environment_too_big env_parallel: Error: 2. Use --env and only mention the names to copy. +par_bash_environment_too_big env_parallel: Error: 3. Try running this in a clean environment once: par_bash_environment_too_big env_parallel: Error: env_parallel --record-env par_bash_environment_too_big env_parallel: Error: And then use '--env _' par_bash_environment_too_big env_parallel: Error: For details see: man env_parallel par_bash_environment_too_big /usr/local/bin/env_parallel.bash: line XXX: /usr/bin/perl: Argument list too long par_bash_environment_too_big env_parallel: Error: Your environment is too big. -par_bash_environment_too_big env_parallel: Error: You can try 2 different approaches: -par_bash_environment_too_big env_parallel: Error: 1. Use --env and only mention the names to copy. -par_bash_environment_too_big env_parallel: Error: 2. Try running this in a clean environment once: +par_bash_environment_too_big env_parallel: Error: You can try 3 different approaches: +par_bash_environment_too_big env_parallel: Error: 1. Run 'env_parallel --session' before you set +par_bash_environment_too_big env_parallel: Error: variables or define functions. +par_bash_environment_too_big env_parallel: Error: 2. Use --env and only mention the names to copy. +par_bash_environment_too_big env_parallel: Error: 3. Try running this in a clean environment once: par_bash_environment_too_big env_parallel: Error: env_parallel --record-env par_bash_environment_too_big env_parallel: Error: And then use '--env _' par_bash_environment_too_big env_parallel: Error: For details see: man env_parallel par_bash_environment_too_big /usr/local/bin/env_parallel.bash: line XXX: /usr/bin/perl: Argument list too long par_bash_environment_too_big env_parallel: Error: Your environment is too big. -par_bash_environment_too_big env_parallel: Error: You can try 2 different approaches: -par_bash_environment_too_big env_parallel: Error: 1. Use --env and only mention the names to copy. -par_bash_environment_too_big env_parallel: Error: 2. Try running this in a clean environment once: +par_bash_environment_too_big env_parallel: Error: You can try 3 different approaches: +par_bash_environment_too_big env_parallel: Error: 1. Run 'env_parallel --session' before you set +par_bash_environment_too_big env_parallel: Error: variables or define functions. +par_bash_environment_too_big env_parallel: Error: 2. Use --env and only mention the names to copy. +par_bash_environment_too_big env_parallel: Error: 3. Try running this in a clean environment once: par_bash_environment_too_big env_parallel: Error: env_parallel --record-env par_bash_environment_too_big env_parallel: Error: And then use '--env _' par_bash_environment_too_big env_parallel: Error: For details see: man env_parallel par_bash_environment_too_big /usr/local/bin/env_parallel.bash: line XXX: /usr/bin/perl: Argument list too long par_bash_environment_too_big env_parallel: Error: Your environment is too big. -par_bash_environment_too_big env_parallel: Error: You can try 2 different approaches: -par_bash_environment_too_big env_parallel: Error: 1. Use --env and only mention the names to copy. -par_bash_environment_too_big env_parallel: Error: 2. Try running this in a clean environment once: +par_bash_environment_too_big env_parallel: Error: You can try 3 different approaches: +par_bash_environment_too_big env_parallel: Error: 1. Run 'env_parallel --session' before you set +par_bash_environment_too_big env_parallel: Error: variables or define functions. +par_bash_environment_too_big env_parallel: Error: 2. Use --env and only mention the names to copy. +par_bash_environment_too_big env_parallel: Error: 3. Try running this in a clean environment once: par_bash_environment_too_big env_parallel: Error: env_parallel --record-env par_bash_environment_too_big env_parallel: Error: And then use '--env _' par_bash_environment_too_big env_parallel: Error: For details see: man env_parallel par_bash_environment_too_big /usr/local/bin/env_parallel.bash: line XXX: /usr/bin/perl: Argument list too long par_bash_environment_too_big env_parallel: Error: Your environment is too big. -par_bash_environment_too_big env_parallel: Error: You can try 2 different approaches: -par_bash_environment_too_big env_parallel: Error: 1. Use --env and only mention the names to copy. -par_bash_environment_too_big env_parallel: Error: 2. Try running this in a clean environment once: +par_bash_environment_too_big env_parallel: Error: You can try 3 different approaches: +par_bash_environment_too_big env_parallel: Error: 1. Run 'env_parallel --session' before you set +par_bash_environment_too_big env_parallel: Error: variables or define functions. +par_bash_environment_too_big env_parallel: Error: 2. Use --env and only mention the names to copy. +par_bash_environment_too_big env_parallel: Error: 3. Try running this in a clean environment once: par_bash_environment_too_big env_parallel: Error: env_parallel --record-env par_bash_environment_too_big env_parallel: Error: And then use '--env _' par_bash_environment_too_big env_parallel: Error: For details see: man env_parallel par_bash_environment_too_big /usr/local/bin/env_parallel.bash: line XXX: /usr/bin/perl: Argument list too long par_bash_environment_too_big env_parallel: Error: Your environment is too big. -par_bash_environment_too_big env_parallel: Error: You can try 2 different approaches: -par_bash_environment_too_big env_parallel: Error: 1. Use --env and only mention the names to copy. -par_bash_environment_too_big env_parallel: Error: 2. Try running this in a clean environment once: +par_bash_environment_too_big env_parallel: Error: You can try 3 different approaches: +par_bash_environment_too_big env_parallel: Error: 1. Run 'env_parallel --session' before you set +par_bash_environment_too_big env_parallel: Error: variables or define functions. +par_bash_environment_too_big env_parallel: Error: 2. Use --env and only mention the names to copy. +par_bash_environment_too_big env_parallel: Error: 3. Try running this in a clean environment once: par_bash_environment_too_big env_parallel: Error: env_parallel --record-env par_bash_environment_too_big env_parallel: Error: And then use '--env _' par_bash_environment_too_big env_parallel: Error: For details see: man env_parallel par_bash_environment_too_big /usr/local/bin/env_parallel.bash: line XXX: /usr/bin/perl: Argument list too long par_bash_environment_too_big env_parallel: Error: Your environment is too big. -par_bash_environment_too_big env_parallel: Error: You can try 2 different approaches: -par_bash_environment_too_big env_parallel: Error: 1. Use --env and only mention the names to copy. -par_bash_environment_too_big env_parallel: Error: 2. Try running this in a clean environment once: +par_bash_environment_too_big env_parallel: Error: You can try 3 different approaches: +par_bash_environment_too_big env_parallel: Error: 1. Run 'env_parallel --session' before you set +par_bash_environment_too_big env_parallel: Error: variables or define functions. +par_bash_environment_too_big env_parallel: Error: 2. Use --env and only mention the names to copy. +par_bash_environment_too_big env_parallel: Error: 3. Try running this in a clean environment once: par_bash_environment_too_big env_parallel: Error: env_parallel --record-env par_bash_environment_too_big env_parallel: Error: And then use '--env _' par_bash_environment_too_big env_parallel: Error: For details see: man env_parallel par_bash_environment_too_big /usr/local/bin/env_parallel.bash: line XXX: /usr/bin/perl: Argument list too long par_bash_environment_too_big env_parallel: Error: Your environment is too big. -par_bash_environment_too_big env_parallel: Error: You can try 2 different approaches: -par_bash_environment_too_big env_parallel: Error: 1. Use --env and only mention the names to copy. -par_bash_environment_too_big env_parallel: Error: 2. Try running this in a clean environment once: +par_bash_environment_too_big env_parallel: Error: You can try 3 different approaches: +par_bash_environment_too_big env_parallel: Error: 1. Run 'env_parallel --session' before you set +par_bash_environment_too_big env_parallel: Error: variables or define functions. +par_bash_environment_too_big env_parallel: Error: 2. Use --env and only mention the names to copy. +par_bash_environment_too_big env_parallel: Error: 3. Try running this in a clean environment once: par_bash_environment_too_big env_parallel: Error: env_parallel --record-env par_bash_environment_too_big env_parallel: Error: And then use '--env _' par_bash_environment_too_big env_parallel: Error: For details see: man env_parallel @@ -1504,33 +1568,41 @@ par_ash_environment_too_big OK_bigvar_quote_remote par_ash_environment_too_big Rest should fail par_ash_environment_too_big ash: XXX: perl: Argument list too long par_ash_environment_too_big env_parallel: Error: Your environment is too big. -par_ash_environment_too_big env_parallel: Error: You can try 2 different approaches: -par_ash_environment_too_big env_parallel: Error: 1. Use --env and only mention the names to copy. -par_ash_environment_too_big env_parallel: Error: 2. Try running this in a clean environment once: +par_ash_environment_too_big env_parallel: Error: You can try 3 different approaches: +par_ash_environment_too_big env_parallel: Error: 1. Run 'env_parallel --session' before you set +par_ash_environment_too_big env_parallel: Error: variables or define functions. +par_ash_environment_too_big env_parallel: Error: 2. Use --env and only mention the names to copy. +par_ash_environment_too_big env_parallel: Error: 3. Try running this in a clean environment once: par_ash_environment_too_big env_parallel: Error: env_parallel --record-env par_ash_environment_too_big env_parallel: Error: And then use '--env _' par_ash_environment_too_big env_parallel: Error: For details see: man env_parallel par_ash_environment_too_big ash: XXX: perl: Argument list too long par_ash_environment_too_big env_parallel: Error: Your environment is too big. -par_ash_environment_too_big env_parallel: Error: You can try 2 different approaches: -par_ash_environment_too_big env_parallel: Error: 1. Use --env and only mention the names to copy. -par_ash_environment_too_big env_parallel: Error: 2. Try running this in a clean environment once: +par_ash_environment_too_big env_parallel: Error: You can try 3 different approaches: +par_ash_environment_too_big env_parallel: Error: 1. Run 'env_parallel --session' before you set +par_ash_environment_too_big env_parallel: Error: variables or define functions. +par_ash_environment_too_big env_parallel: Error: 2. Use --env and only mention the names to copy. +par_ash_environment_too_big env_parallel: Error: 3. Try running this in a clean environment once: par_ash_environment_too_big env_parallel: Error: env_parallel --record-env par_ash_environment_too_big env_parallel: Error: And then use '--env _' par_ash_environment_too_big env_parallel: Error: For details see: man env_parallel par_ash_environment_too_big ash: XXX: perl: Argument list too long par_ash_environment_too_big env_parallel: Error: Your environment is too big. -par_ash_environment_too_big env_parallel: Error: You can try 2 different approaches: -par_ash_environment_too_big env_parallel: Error: 1. Use --env and only mention the names to copy. -par_ash_environment_too_big env_parallel: Error: 2. Try running this in a clean environment once: +par_ash_environment_too_big env_parallel: Error: You can try 3 different approaches: +par_ash_environment_too_big env_parallel: Error: 1. Run 'env_parallel --session' before you set +par_ash_environment_too_big env_parallel: Error: variables or define functions. +par_ash_environment_too_big env_parallel: Error: 2. Use --env and only mention the names to copy. +par_ash_environment_too_big env_parallel: Error: 3. Try running this in a clean environment once: par_ash_environment_too_big env_parallel: Error: env_parallel --record-env par_ash_environment_too_big env_parallel: Error: And then use '--env _' par_ash_environment_too_big env_parallel: Error: For details see: man env_parallel par_ash_environment_too_big ash: XXX: perl: Argument list too long par_ash_environment_too_big env_parallel: Error: Your environment is too big. -par_ash_environment_too_big env_parallel: Error: You can try 2 different approaches: -par_ash_environment_too_big env_parallel: Error: 1. Use --env and only mention the names to copy. -par_ash_environment_too_big env_parallel: Error: 2. Try running this in a clean environment once: +par_ash_environment_too_big env_parallel: Error: You can try 3 different approaches: +par_ash_environment_too_big env_parallel: Error: 1. Run 'env_parallel --session' before you set +par_ash_environment_too_big env_parallel: Error: variables or define functions. +par_ash_environment_too_big env_parallel: Error: 2. Use --env and only mention the names to copy. +par_ash_environment_too_big env_parallel: Error: 3. Try running this in a clean environment once: par_ash_environment_too_big env_parallel: Error: env_parallel --record-env par_ash_environment_too_big env_parallel: Error: And then use '--env _' par_ash_environment_too_big env_parallel: Error: For details see: man env_parallel diff --git a/testsuite/wanted-results/parallel-local-ssh9 b/testsuite/wanted-results/parallel-local-ssh9 index 2d121c25..efeef5bb 100644 --- a/testsuite/wanted-results/parallel-local-ssh9 +++ b/testsuite/wanted-results/parallel-local-ssh9 @@ -9,9 +9,11 @@ par_zsh_embed parallel_OK par_zsh_embed env_parallel --env OK par_zsh_embed _which:12: argument list too long: perl par_zsh_embed env_parallel: Error: Your environment is too big. -par_zsh_embed env_parallel: Error: You can try 2 different approaches: -par_zsh_embed env_parallel: Error: 1. Use --env and only mention the names to copy. -par_zsh_embed env_parallel: Error: 2. Try running this in a clean environment once: +par_zsh_embed env_parallel: Error: You can try 3 different approaches: +par_zsh_embed env_parallel: Error: 1. Run 'env_parallel --session' before you set +par_zsh_embed env_parallel: Error: variables or define functions. +par_zsh_embed env_parallel: Error: 2. Use --env and only mention the names to copy. +par_zsh_embed env_parallel: Error: 3. Try running this in a clean environment once: par_zsh_embed env_parallel: Error: env_parallel --record-env par_zsh_embed env_parallel: Error: And then use '--env _' par_zsh_embed env_parallel: Error: For details see: man env_parallel @@ -49,9 +51,11 @@ par_ksh_embed parallel_OK par_ksh_embed env_parallel --env OK par_ksh_embed ./parallel-embed[XXX]: perl: /usr/bin/perl: cannot execute [Argument list too long] par_ksh_embed env_parallel: Error: Your environment is too big. -par_ksh_embed env_parallel: Error: You can try 2 different approaches: -par_ksh_embed env_parallel: Error: 1. Use --env and only mention the names to copy. -par_ksh_embed env_parallel: Error: 2. Try running this in a clean environment once: +par_ksh_embed env_parallel: Error: You can try 3 different approaches: +par_ksh_embed env_parallel: Error: 1. Run 'env_parallel --session' before you set +par_ksh_embed env_parallel: Error: variables or define functions. +par_ksh_embed env_parallel: Error: 2. Use --env and only mention the names to copy. +par_ksh_embed env_parallel: Error: 3. Try running this in a clean environment once: par_ksh_embed env_parallel: Error: env_parallel --record-env par_ksh_embed env_parallel: Error: And then use '--env _' par_ksh_embed env_parallel: Error: For details see: man env_parallel @@ -74,9 +78,11 @@ par_bash_embed parallel_OK par_bash_embed env_parallel --env OK par_bash_embed ./parallel-embed: line XXX: /usr/bin/perl: Argument list too long par_bash_embed env_parallel: Error: Your environment is too big. -par_bash_embed env_parallel: Error: You can try 2 different approaches: -par_bash_embed env_parallel: Error: 1. Use --env and only mention the names to copy. -par_bash_embed env_parallel: Error: 2. Try running this in a clean environment once: +par_bash_embed env_parallel: Error: You can try 3 different approaches: +par_bash_embed env_parallel: Error: 1. Run 'env_parallel --session' before you set +par_bash_embed env_parallel: Error: variables or define functions. +par_bash_embed env_parallel: Error: 2. Use --env and only mention the names to copy. +par_bash_embed env_parallel: Error: 3. Try running this in a clean environment once: par_bash_embed env_parallel: Error: env_parallel --record-env par_bash_embed env_parallel: Error: And then use '--env _' par_bash_embed env_parallel: Error: For details see: man env_parallel