mirror of
https://git.savannah.gnu.org/git/parallel.git
synced 2024-11-22 05:57:54 +00:00
parallel: \-quoting replaced with '-quoting.
This commit is contained in:
parent
628c0029cc
commit
75007fcbbf
|
@ -119,4 +119,7 @@ monitorman:
|
||||||
# If man page changed: open new pdfman
|
# If man page changed: open new pdfman
|
||||||
inotifywait -qmre MOVED_TO -e CLOSE_WRITE --format %w%f . | parallel -uj1 'echo {=/\.pod$$/ or skip()=};make -j && sudo make install; pdfman {/.} &'
|
inotifywait -qmre MOVED_TO -e CLOSE_WRITE --format %w%f . | parallel -uj1 'echo {=/\.pod$$/ or skip()=};make -j && sudo make install; pdfman {/.} &'
|
||||||
|
|
||||||
|
testurls:
|
||||||
|
grep -h -Po 'https?://[^ $$<>")}]+' src/* | perl -pe 's/(>|\{).*//;s/\\//g;s/&/&/g;s/&#.*//;'"s/'.*//" | sort -u | parallel -j0 --tag 'wget -qm -l1 -Q1 {}; echo $$?'
|
||||||
|
|
||||||
EXTRA_DIST = CITATION CREDITS cc-by-sa.txt fdl.txt
|
EXTRA_DIST = CITATION CREDITS cc-by-sa.txt fdl.txt
|
||||||
|
|
|
@ -867,6 +867,9 @@ monitorman:
|
||||||
# If man page changed: open new pdfman
|
# If man page changed: open new pdfman
|
||||||
inotifywait -qmre MOVED_TO -e CLOSE_WRITE --format %w%f . | parallel -uj1 'echo {=/\.pod$$/ or skip()=};make -j && sudo make install; pdfman {/.} &'
|
inotifywait -qmre MOVED_TO -e CLOSE_WRITE --format %w%f . | parallel -uj1 'echo {=/\.pod$$/ or skip()=};make -j && sudo make install; pdfman {/.} &'
|
||||||
|
|
||||||
|
testurls:
|
||||||
|
grep -h -Po 'https?://[^ $$<>")}]+' src/* | perl -pe 's/(>|\{).*//;s/\\//g;s/&/&/g;s/&#.*//;'"s/'.*//" | sort -u | parallel -j0 --tag 'wget -qm -l1 -Q1 {}; echo $$?'
|
||||||
|
|
||||||
# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
||||||
# Otherwise a system limit (for SysV at least) may be exceeded.
|
# Otherwise a system limit (for SysV at least) may be exceeded.
|
||||||
.NOEXPORT:
|
.NOEXPORT:
|
||||||
|
|
12
README
12
README
|
@ -44,9 +44,9 @@ document.
|
||||||
|
|
||||||
Full installation of GNU Parallel is as simple as:
|
Full installation of GNU Parallel is as simple as:
|
||||||
|
|
||||||
wget https://ftpmirror.gnu.org/parallel/parallel-20180622.tar.bz2
|
wget https://ftpmirror.gnu.org/parallel/parallel-20180722.tar.bz2
|
||||||
bzip2 -dc parallel-20180622.tar.bz2 | tar xvf -
|
bzip2 -dc parallel-20180722.tar.bz2 | tar xvf -
|
||||||
cd parallel-20180622
|
cd parallel-20180722
|
||||||
./configure && make && sudo make install
|
./configure && make && sudo make install
|
||||||
|
|
||||||
|
|
||||||
|
@ -55,9 +55,9 @@ Full installation of GNU Parallel is as simple as:
|
||||||
If you are not root you can add ~/bin to your path and install in
|
If you are not root you can add ~/bin to your path and install in
|
||||||
~/bin and ~/share:
|
~/bin and ~/share:
|
||||||
|
|
||||||
wget https://ftpmirror.gnu.org/parallel/parallel-20180622.tar.bz2
|
wget https://ftpmirror.gnu.org/parallel/parallel-20180722.tar.bz2
|
||||||
bzip2 -dc parallel-20180622.tar.bz2 | tar xvf -
|
bzip2 -dc parallel-20180722.tar.bz2 | tar xvf -
|
||||||
cd parallel-20180622
|
cd parallel-20180722
|
||||||
./configure --prefix=$HOME && make && make install
|
./configure --prefix=$HOME && make && make install
|
||||||
|
|
||||||
Or if your system lacks 'make' you can simply copy src/parallel
|
Or if your system lacks 'make' you can simply copy src/parallel
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
AC_INIT([parallel], [20180622], [bug-parallel@gnu.org])
|
AC_INIT([parallel], [20180722], [bug-parallel@gnu.org])
|
||||||
AM_INIT_AUTOMAKE([-Wall -Werror foreign])
|
AM_INIT_AUTOMAKE([-Wall -Werror foreign])
|
||||||
AC_CONFIG_HEADERS([config.h])
|
AC_CONFIG_HEADERS([config.h])
|
||||||
AC_CONFIG_FILES([
|
AC_CONFIG_FILES([
|
||||||
|
|
|
@ -141,6 +141,7 @@ git push
|
||||||
git push origin $TAG
|
git push origin $TAG
|
||||||
git push origin $YYYYMMDD
|
git push origin $YYYYMMDD
|
||||||
|
|
||||||
|
|
||||||
== Update documentation ==
|
== Update documentation ==
|
||||||
|
|
||||||
Update version number + 1
|
Update version number + 1
|
||||||
|
@ -154,6 +155,12 @@ Unmodified beta since last version => production
|
||||||
Unmodified alpha since last version => beta
|
Unmodified alpha since last version => beta
|
||||||
Modified => alpha
|
Modified => alpha
|
||||||
|
|
||||||
|
|
||||||
|
== Check URLs ==
|
||||||
|
|
||||||
|
make testurls
|
||||||
|
|
||||||
|
|
||||||
== Update Savannah ==
|
== Update Savannah ==
|
||||||
|
|
||||||
file:///home/tange/privat/parallel/doc/release_new_version
|
file:///home/tange/privat/parallel/doc/release_new_version
|
||||||
|
@ -199,10 +206,11 @@ to:parallel@gnu.org, bug-parallel@gnu.org
|
||||||
stable-bcc: Jesse Alama <jessealama@fastmail.fm>
|
stable-bcc: Jesse Alama <jessealama@fastmail.fm>
|
||||||
|
|
||||||
|
|
||||||
Subject: GNU Parallel 20180722 ('?') released <<[stable]>>
|
Subject: GNU Parallel 20180722 ('Crimson Hexagon') released [alpha] <<[stable]>>
|
||||||
|
|
||||||
GNU Parallel 20180722 ('') <<[stable]>> has been released. It is available for download at: http://ftpmirror.gnu.org/parallel/
|
GNU Parallel 20180722 ('Crimson Hexagon') [alpha] <<[stable]>> has been released. It is available for download at: http://ftpmirror.gnu.org/parallel/
|
||||||
|
|
||||||
|
This release has signficant changes and is considered alpha quality.
|
||||||
<<No new functionality was introduced so this is a good candidate for a stable release.>>
|
<<No new functionality was introduced so this is a good candidate for a stable release.>>
|
||||||
|
|
||||||
Quote of the month:
|
Quote of the month:
|
||||||
|
@ -214,6 +222,8 @@ Quote of the month:
|
||||||
|
|
||||||
New in this release:
|
New in this release:
|
||||||
|
|
||||||
|
* The quoting engine has been changed. Instead of using \-quoting GNU Parallel now uses '-quoting in bash/ash/dash/ksh. This should improve compatibility with different locales. This is a big change causing this release to be alpha quality.
|
||||||
|
|
||||||
* The CPU calculation has changed. By default GNU Parallel uses the number of CPU threads as the number of CPUs. This can be change to the number of CPU cores or number of CPU sockets with --use-cores-instead-of-threads or --use-sockets-instead-of-threads.
|
* The CPU calculation has changed. By default GNU Parallel uses the number of CPU threads as the number of CPUs. This can be change to the number of CPU cores or number of CPU sockets with --use-cores-instead-of-threads or --use-sockets-instead-of-threads.
|
||||||
|
|
||||||
* The detected number of sockets, cores, and threads can be shown with --number-of-sockets, --number-of-cores, and --number-of-threads.
|
* The detected number of sockets, cores, and threads can be shown with --number-of-sockets, --number-of-cores, and --number-of-threads.
|
||||||
|
@ -222,7 +232,9 @@ New in this release:
|
||||||
|
|
||||||
* GNU Parallel is distributed as part of Snippy https://github.com/tseemann/snippy
|
* GNU Parallel is distributed as part of Snippy https://github.com/tseemann/snippy
|
||||||
|
|
||||||
https://esgeeks.com/gnu-parallel-ejecutar-comandos-simultaneo-linux/
|
* GNU Parallel: Ejecutar comandos simultáneamente en Linux https://esgeeks.com/gnu-parallel-ejecutar-comandos-simultaneo-linux/
|
||||||
|
|
||||||
|
* Parallel download genomic data with GNU-Parallel https://digibio.blogspot.com/search/label/GNU-Parallel
|
||||||
|
|
||||||
<<Citation not OK: BAMClipper: removing primers from alignments to minimize false-negative mutations in amplicon next-generation sequencing https://www.nature.com/articles/s41598-017-01703-6>>
|
<<Citation not OK: BAMClipper: removing primers from alignments to minimize false-negative mutations in amplicon next-generation sequencing https://www.nature.com/articles/s41598-017-01703-6>>
|
||||||
|
|
||||||
|
|
|
@ -349,8 +349,8 @@ _parset_main() {
|
||||||
else
|
else
|
||||||
# $_parset_name does not contain , or space
|
# $_parset_name does not contain , or space
|
||||||
# => $_parset_name is the name of the array to put data into
|
# => $_parset_name is the name of the array to put data into
|
||||||
# Supported in: bash zsh ksh
|
# Supported in: bash zsh ksh mksh
|
||||||
# Arrays do not work in: ash dash
|
# Arrays do not work in: sh ash dash
|
||||||
eval "$_parset_name=( $( $_parset_parallel_prg --files -k "$@" |
|
eval "$_parset_name=( $( $_parset_parallel_prg --files -k "$@" |
|
||||||
perl -pe 'chop;$_="\"\`cat $_; rm $_\`\" "' ) )"
|
perl -pe 'chop;$_="\"\`cat $_; rm $_\`\" "' ) )"
|
||||||
fi
|
fi
|
||||||
|
|
|
@ -340,8 +340,8 @@ _parset_main() {
|
||||||
else
|
else
|
||||||
# $_parset_name does not contain , or space
|
# $_parset_name does not contain , or space
|
||||||
# => $_parset_name is the name of the array to put data into
|
# => $_parset_name is the name of the array to put data into
|
||||||
# Supported in: bash zsh ksh
|
# Supported in: bash zsh ksh mksh
|
||||||
# Arrays do not work in: ash dash
|
# Arrays do not work in: sh ash dash
|
||||||
eval "$_parset_name=( $( $_parset_parallel_prg --files -k "$@" |
|
eval "$_parset_name=( $( $_parset_parallel_prg --files -k "$@" |
|
||||||
perl -pe 'chop;$_="\"\`cat $_; rm $_\`\" "' ) )"
|
perl -pe 'chop;$_="\"\`cat $_; rm $_\`\" "' ) )"
|
||||||
fi
|
fi
|
||||||
|
|
|
@ -24,7 +24,7 @@
|
||||||
use strict;
|
use strict;
|
||||||
use Getopt::Long;
|
use Getopt::Long;
|
||||||
$Global::progname="niceload";
|
$Global::progname="niceload";
|
||||||
$Global::version = 20180622;
|
$Global::version = 20180722;
|
||||||
Getopt::Long::Configure("bundling","require_order");
|
Getopt::Long::Configure("bundling","require_order");
|
||||||
get_options_from_array(\@ARGV) || die_usage();
|
get_options_from_array(\@ARGV) || die_usage();
|
||||||
if($opt::version) {
|
if($opt::version) {
|
||||||
|
|
408
src/parallel
408
src/parallel
|
@ -262,7 +262,7 @@ sub pipepart_setup {
|
||||||
@Global::cat_prepends = map { pipe_part_files($_) } @opt::a;
|
@Global::cat_prepends = map { pipe_part_files($_) } @opt::a;
|
||||||
# Unget the empty arg as many times as there are parts
|
# Unget the empty arg as many times as there are parts
|
||||||
$Global::JobQueue->{'commandlinequeue'}{'arg_queue'}->unget(
|
$Global::JobQueue->{'commandlinequeue'}{'arg_queue'}->unget(
|
||||||
map { [Arg->new("\0")] } @Global::cat_prepends
|
map { [Arg->new("\0noarg")] } @Global::cat_prepends
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1317,10 +1317,10 @@ sub parse_options {
|
||||||
# Append a dummy empty argument if there are no arguments
|
# Append a dummy empty argument if there are no arguments
|
||||||
# on the command line to avoid reading from STDIN.
|
# on the command line to avoid reading from STDIN.
|
||||||
# arg_sep = random 50 char
|
# arg_sep = random 50 char
|
||||||
# \0 => nothing (not the empty string)
|
# \0noarg => nothing (not the empty string)
|
||||||
$Global::arg_sep = join "",
|
$Global::arg_sep = join "",
|
||||||
map { (0..9,"a".."z","A".."Z")[rand(62)] } (1..50);
|
map { (0..9,"a".."z","A".."Z")[rand(62)] } (1..50);
|
||||||
push @ARGV, $Global::arg_sep, "\0";
|
push @ARGV, $Global::arg_sep, "\0noarg";
|
||||||
}
|
}
|
||||||
if(defined $opt::tee) {
|
if(defined $opt::tee) {
|
||||||
if(not defined $opt::jobs) {
|
if(not defined $opt::jobs) {
|
||||||
|
@ -1462,6 +1462,9 @@ sub parse_options {
|
||||||
}
|
}
|
||||||
# Map \001 to \n to make it easer to quote \n in $PARALLEL_ENV
|
# Map \001 to \n to make it easer to quote \n in $PARALLEL_ENV
|
||||||
$penv =~ s/\001/\n/g;
|
$penv =~ s/\001/\n/g;
|
||||||
|
if($penv =~ /\0/) {
|
||||||
|
::warning('\0 (NUL) in environment is not supported');
|
||||||
|
}
|
||||||
$Global::parallel_env = $penv;
|
$Global::parallel_env = $penv;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1538,7 +1541,7 @@ sub check_invalid_option_combinations {
|
||||||
|
|
||||||
sub init_globals {
|
sub init_globals {
|
||||||
# Defaults:
|
# Defaults:
|
||||||
$Global::version = 20180622;
|
$Global::version = 20180722;
|
||||||
$Global::progname = 'parallel';
|
$Global::progname = 'parallel';
|
||||||
$Global::infinity = 2**31;
|
$Global::infinity = 2**31;
|
||||||
$Global::debug = 0;
|
$Global::debug = 0;
|
||||||
|
@ -1609,8 +1612,6 @@ sub init_globals {
|
||||||
$Global::trim = 'n';
|
$Global::trim = 'n';
|
||||||
$Global::max_jobs_running = 0;
|
$Global::max_jobs_running = 0;
|
||||||
$Global::job_already_run = '';
|
$Global::job_already_run = '';
|
||||||
# LC_ALL workaround for multibyte chars containing special shell chars
|
|
||||||
$ENV{'LC_ALL'} = 'C';
|
|
||||||
$ENV{'TMPDIR'} ||= "/tmp";
|
$ENV{'TMPDIR'} ||= "/tmp";
|
||||||
if(not $ENV{HOME}) {
|
if(not $ENV{HOME}) {
|
||||||
# $ENV{HOME} is sometimes not set if called from PHP
|
# $ENV{HOME} is sometimes not set if called from PHP
|
||||||
|
@ -1789,7 +1790,7 @@ sub parse_semaphore {
|
||||||
@opt::a = ("/dev/null");
|
@opt::a = ("/dev/null");
|
||||||
# Append a dummy empty argument
|
# Append a dummy empty argument
|
||||||
# \0 => nothing (not the empty string)
|
# \0 => nothing (not the empty string)
|
||||||
push(@Global::unget_argv, [Arg->new("\0")]);
|
push(@Global::unget_argv, [Arg->new("\0noarg")]);
|
||||||
$Semaphore::timeout = $opt::semaphoretimeout || 0;
|
$Semaphore::timeout = $opt::semaphoretimeout || 0;
|
||||||
if(defined $opt::semaphorename) {
|
if(defined $opt::semaphorename) {
|
||||||
$Semaphore::name = $opt::semaphorename;
|
$Semaphore::name = $opt::semaphorename;
|
||||||
|
@ -2266,8 +2267,8 @@ sub shell_quote {
|
||||||
# Output:
|
# Output:
|
||||||
# @shell_quoted_strings = string quoted with \ as needed by the shell
|
# @shell_quoted_strings = string quoted with \ as needed by the shell
|
||||||
return wantarray ?
|
return wantarray ?
|
||||||
(map { shell_quote_scalar($_) } @_)
|
(map { Q($_) } @_)
|
||||||
: (join" ",map { shell_quote_scalar($_) } @_);
|
: (join" ",map { Q($_) } @_);
|
||||||
}
|
}
|
||||||
|
|
||||||
sub shell_quote_scalar_rc {
|
sub shell_quote_scalar_rc {
|
||||||
|
@ -2310,26 +2311,19 @@ sub shell_quote_scalar_csh {
|
||||||
}
|
}
|
||||||
|
|
||||||
sub shell_quote_scalar_default {
|
sub shell_quote_scalar_default {
|
||||||
# Quote for other shells
|
# Quote for other shells (Bourne compatibles)
|
||||||
my $a = $_[0];
|
my ($par) = $_[0];
|
||||||
if(defined $a) {
|
if($par =~ /[^-_.+a-z0-9\/]/i) {
|
||||||
# zsh wants '=' quoted
|
$par =~ s/'/'"'"'/g; # "-quote single quotes
|
||||||
# Solaris sh wants ^ quoted.
|
$par = "'$par'"; # '-quote entire string
|
||||||
# $a =~ s/([\002-\011\013-\032\\\#\?\`\(\)\{\}\[\]\^\*\>\<\~\|\; \"\!\$\&\'\202-\377])/\\$1/g;
|
$par =~ s/^''|''$//g; # Remove unneeded '' at ends
|
||||||
# This is 1% faster than the above
|
return $par;
|
||||||
if(($a =~ s/[\002-\011\013-\032\\\#\?\`\(\)\{\}\[\]\^\*\<\=\>\~\|\; \"\!\$\&\'\202-\377]/\\$&/go)
|
} elsif ($par eq "") {
|
||||||
+
|
return "''";
|
||||||
# quote newline as '\n'
|
} else {
|
||||||
($a =~ s/[\n]/'\n'/go)) {
|
# No quoting needed
|
||||||
# A string was replaced
|
return $par;
|
||||||
# No need to test for "" or \0
|
|
||||||
} elsif($a eq "") {
|
|
||||||
$a = "''";
|
|
||||||
} elsif($a eq "\0") {
|
|
||||||
$a = "";
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
return $a;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
sub shell_quote_scalar {
|
sub shell_quote_scalar {
|
||||||
|
@ -2356,6 +2350,12 @@ sub shell_quote_scalar {
|
||||||
return shell_quote_scalar(@_);
|
return shell_quote_scalar(@_);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
sub Q {
|
||||||
|
# Q alias for ::shell_quote_scalar
|
||||||
|
*Q = \&::shell_quote_scalar;
|
||||||
|
return Q(@_);
|
||||||
|
}
|
||||||
|
|
||||||
sub shell_quote_file {
|
sub shell_quote_file {
|
||||||
# Quote the string so shell will not expand any special chars
|
# Quote the string so shell will not expand any special chars
|
||||||
# and prepend ./ if needed
|
# and prepend ./ if needed
|
||||||
|
@ -2363,7 +2363,7 @@ sub shell_quote_file {
|
||||||
# $filename = filename to be shell quoted
|
# $filename = filename to be shell quoted
|
||||||
# Returns:
|
# Returns:
|
||||||
# $quoted_filename = filename quoted with \ and ./ if needed
|
# $quoted_filename = filename quoted with \ and ./ if needed
|
||||||
my $a = shell_quote_scalar(shift);
|
my $a = shift;
|
||||||
if(defined $a) {
|
if(defined $a) {
|
||||||
if($a =~ m:^/: or $a =~ m:^\./:) {
|
if($a =~ m:^/: or $a =~ m:^\./:) {
|
||||||
# /abs/path or ./rel/path => skip
|
# /abs/path or ./rel/path => skip
|
||||||
|
@ -2372,7 +2372,7 @@ sub shell_quote_file {
|
||||||
$a = "./".$a;
|
$a = "./".$a;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return $a;
|
return ::Q($a);
|
||||||
}
|
}
|
||||||
|
|
||||||
sub shell_words {
|
sub shell_words {
|
||||||
|
@ -2397,6 +2397,12 @@ sub perl_quote_scalar {
|
||||||
return $a;
|
return $a;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
sub pQ {
|
||||||
|
# pQ alias for ::perl_quote_scalar
|
||||||
|
*pQ = \&::perl_quote_scalar;
|
||||||
|
return pQ(@_);
|
||||||
|
}
|
||||||
|
|
||||||
sub unquote_printf {
|
sub unquote_printf {
|
||||||
# Convert \t \n \r \000 \0
|
# Convert \t \n \r \000 \0
|
||||||
$_ = shift;
|
$_ = shift;
|
||||||
|
@ -2910,7 +2916,7 @@ sub drain_job_queue {
|
||||||
# Replace --sql/--sqlandworker with --sqlworker
|
# Replace --sql/--sqlandworker with --sqlworker
|
||||||
my @ARGV = map { s/^--sql(andworker)?$/--sqlworker/; $_ } @Global::options_in_argv;
|
my @ARGV = map { s/^--sql(andworker)?$/--sqlworker/; $_ } @Global::options_in_argv;
|
||||||
# exec the --sqlworker
|
# exec the --sqlworker
|
||||||
exec($0,::shell_quote(@ARGV),@command);
|
exec($0,@ARGV,@command);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -3629,7 +3635,7 @@ sub parse_host_filtering {
|
||||||
my (%nsockets, %ncores, %nthreads, %time_to_login, %maxlen, %echo,
|
my (%nsockets, %ncores, %nthreads, %time_to_login, %maxlen, %echo,
|
||||||
@down_hosts);
|
@down_hosts);
|
||||||
for (@_) {
|
for (@_) {
|
||||||
::debug("init",$_);
|
::debug("init","Read: ",$_);
|
||||||
chomp;
|
chomp;
|
||||||
my @col = split /\t/, $_;
|
my @col = split /\t/, $_;
|
||||||
if($col[0] =~ /^parallel: Warning:/) {
|
if($col[0] =~ /^parallel: Warning:/) {
|
||||||
|
@ -3645,7 +3651,7 @@ sub parse_host_filtering {
|
||||||
next;
|
next;
|
||||||
}
|
}
|
||||||
# Get server from: eval true server\;
|
# Get server from: eval true server\;
|
||||||
$col[8] =~ /eval true..([^;]+).;/ or
|
$col[8] =~ /eval .?true.?\s([^\;]+);/ or
|
||||||
::die_bug("col8 does not contain host: $col[8]");
|
::die_bug("col8 does not contain host: $col[8]");
|
||||||
my $host = $1;
|
my $host = $1;
|
||||||
$host =~ tr/\\//d;
|
$host =~ tr/\\//d;
|
||||||
|
@ -3776,12 +3782,13 @@ sub parallelized_host_filtering {
|
||||||
}
|
}
|
||||||
close $in;
|
close $in;
|
||||||
for(<$host_fh>) {
|
for(<$host_fh>) {
|
||||||
if(/\'$/) {
|
# TODO incompatible with '-quoting. Needs to be fixed differently
|
||||||
# if last char = ' then append next line
|
#if(/\'$/) {
|
||||||
# This may be due to quoting of \n in environment var
|
# # if last char = ' then append next line
|
||||||
$prepend .= $_;
|
# # This may be due to quoting of \n in environment var
|
||||||
next;
|
# $prepend .= $_;
|
||||||
}
|
# next;
|
||||||
|
#}
|
||||||
$_ = $prepend . $_;
|
$_ = $prepend . $_;
|
||||||
$prepend = "";
|
$prepend = "";
|
||||||
push @out, $_;
|
push @out, $_;
|
||||||
|
@ -8276,7 +8283,7 @@ sub sshlogin_wrap {
|
||||||
$wd =~ s:^([^/]):$ENV{'HOME'}/$1:;
|
$wd =~ s:^([^/]):$ENV{'HOME'}/$1:;
|
||||||
}
|
}
|
||||||
::mkdir_or_die($wd);
|
::mkdir_or_die($wd);
|
||||||
$command = "cd ".::shell_quote_scalar($wd)." || exit 255; ".$command;
|
$command = "cd ".::Q($wd)." || exit 255; ".$command;
|
||||||
}
|
}
|
||||||
if(@opt::env) {
|
if(@opt::env) {
|
||||||
# Prepend with environment setter, which sets functions in zsh
|
# Prepend with environment setter, which sets functions in zsh
|
||||||
|
@ -8302,7 +8309,7 @@ sub sshlogin_wrap {
|
||||||
my $pwd = "";
|
my $pwd = "";
|
||||||
if($opt::workdir) {
|
if($opt::workdir) {
|
||||||
# Create remote workdir if needed. Then cd to it.
|
# Create remote workdir if needed. Then cd to it.
|
||||||
my $wd = $self->workdir();
|
my $wd = ::pQ($self->workdir());
|
||||||
$pwd = qq{system("mkdir","-p","--","$wd"); chdir "$wd" ||}.
|
$pwd = qq{system("mkdir","-p","--","$wd"); chdir "$wd" ||}.
|
||||||
qq{print(STDERR "parallel: Cannot chdir to $wd\\n") && exit 255;};
|
qq{print(STDERR "parallel: Cannot chdir to $wd\\n") && exit 255;};
|
||||||
}
|
}
|
||||||
|
@ -8560,7 +8567,7 @@ sub workdir {
|
||||||
} else {
|
} else {
|
||||||
$workdir = ".";
|
$workdir = ".";
|
||||||
}
|
}
|
||||||
$self->{'workdir'} = ::shell_quote_scalar($workdir);
|
$self->{'workdir'} = $workdir;
|
||||||
}
|
}
|
||||||
return $self->{'workdir'};
|
return $self->{'workdir'};
|
||||||
}
|
}
|
||||||
|
@ -9974,163 +9981,190 @@ sub replaced {
|
||||||
return $self->{'replaced'};
|
return $self->{'replaced'};
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
sub replace_placeholders {
|
||||||
my @target;
|
# Replace foo{}bar with fooargbar
|
||||||
my $context_replace;
|
# Uses:
|
||||||
my $perl_expressions_as_re;
|
# @Arg::arg = arguments as strings to be use in {= =}
|
||||||
my @arg;
|
# Input:
|
||||||
my %words_with_rpl_strings;
|
# $targetref = command as shell words
|
||||||
|
# $quote = should everything be quoted?
|
||||||
|
# $quote_arg = should replaced arguments be quoted?
|
||||||
|
# Returns:
|
||||||
|
# @target with placeholders replaced
|
||||||
|
my $self = shift;
|
||||||
|
my $targetref = shift;
|
||||||
|
my $quote = shift;
|
||||||
|
my $quote_arg = shift;
|
||||||
|
my %replace;
|
||||||
|
|
||||||
sub fish_out_words_with_rpl_strings {
|
# Token description:
|
||||||
if(not $words_with_rpl_strings{$context_replace,@target}) {
|
# \0spc = unquoted space
|
||||||
my %word;
|
# \0end = last token element
|
||||||
for (@target) {
|
# \0ign = dummy token to be ignored
|
||||||
my $tt = $_;
|
# \257<...\257> = replacement expression
|
||||||
::debug("replace", "Target: $tt");
|
# " " = quoted space, that splits -X group
|
||||||
# Command line template:
|
# text = normal text - possibly part of -X group
|
||||||
# a{1}b{}c{}d
|
my $spacer = 0;
|
||||||
# becomes:
|
my @tokens = grep { length $_ > 0 } map {
|
||||||
# a{=1 $_=$_ =}b{= $_=$_ =}c{= $_=$_ =}d
|
if(/^\257<|^ $/) {
|
||||||
# becomes:
|
# \257<...\257> or space
|
||||||
# a\257<1 $_=$_ \257>b\257< $_=$_ \257>c\257< $_=$_ \257>d
|
$_
|
||||||
# Input A B C (no context) becomes:
|
} else {
|
||||||
# A B C => aAbA B CcA B Cd
|
# Split each space into a token
|
||||||
# Input A B C (context -X) becomes:
|
split /(?= )|(?<= )/
|
||||||
# A B C => aAbAcAd aAbBcBd aAbCcCd
|
|
||||||
if($context_replace) {
|
|
||||||
while($tt =~ s/([^\s\257]* # before {=
|
|
||||||
(?:
|
|
||||||
\257< # {=
|
|
||||||
(?: [^\257]*|[\257][^<>] )* # The perl expression
|
|
||||||
\257> # =}
|
|
||||||
[^\s\257]* # after =}
|
|
||||||
)+)/ /xs) {
|
|
||||||
# $1 = pre \257< perlexpr \257> post
|
|
||||||
$word{"$1"} ||= 1;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
while($tt =~ s/( \257<(?: # {=
|
|
||||||
[^\257]*|[\257][^<>] )* # not \257< or \257>
|
|
||||||
\257> ) # =}
|
|
||||||
//xs) {
|
|
||||||
# $1 = \257< perlexpr \257>
|
|
||||||
$word{$1} ||= 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@{$words_with_rpl_strings{$context_replace,@target}} = keys %word
|
|
||||||
}
|
}
|
||||||
return @{$words_with_rpl_strings{$context_replace,@target}};
|
|
||||||
}
|
}
|
||||||
|
# Split \257< ... \257> into own token
|
||||||
|
map { split /(?=\257<)|(?<=\257>)/ }
|
||||||
|
# Insert "\0spc" between every element
|
||||||
|
# This space should never be quoted
|
||||||
|
map { $spacer++ ? ("\0spc",$_) : $_ }
|
||||||
|
map { $_ eq "" ? "\0empty" : $_ }
|
||||||
|
@$targetref;
|
||||||
|
|
||||||
sub replace_placeholders {
|
if(not @tokens) {
|
||||||
# Replace foo{}bar with fooargbar
|
# @tokens is empty: Return empty array
|
||||||
# Uses:
|
return @tokens;
|
||||||
# @Arg::arg = arguments as strings to be use in {= =}
|
}
|
||||||
# Input:
|
::debug("replace", "Tokens ".join":",@tokens,"\n");
|
||||||
# $targetref = command as shell words
|
# Make it possible to use $arg[2] in {= =}
|
||||||
# $quote = should everything be quoted?
|
*Arg::arg = $self->{'arg_list_flat_orig'};
|
||||||
# $quote_arg = should replaced arguments be quoted?
|
# Flat list:
|
||||||
# Returns:
|
# $self->{'arg_list'} = [ [Arg11, Arg12], [Arg21, Arg22], [Arg31, Arg32] ]
|
||||||
# @target with placeholders replaced
|
# $self->{'arg_list_flat'} = [ Arg11, Arg12, Arg21, Arg22, Arg31, Arg32 ]
|
||||||
my $self = shift;
|
if(not @{$self->{'arg_list_flat'}}) {
|
||||||
my $targetref = shift;
|
@{$self->{'arg_list_flat'}} = Arg->new("");
|
||||||
my $quote = shift;
|
}
|
||||||
my $quote_arg = shift;
|
my $argref = $self->{'arg_list_flat'};
|
||||||
my %replace;
|
# Number of arguments - used for positional arguments
|
||||||
# -X = context replace (fish_out_words_with_rpl_strings)
|
my $n = $#$argref+1;
|
||||||
$context_replace = $self->{'context_replace'};
|
|
||||||
@target = @$targetref;
|
|
||||||
::debug("replace", "Replace @target\n");
|
|
||||||
if(not @target) {
|
|
||||||
# @target is empty: Return empty array
|
|
||||||
return @target;
|
|
||||||
}
|
|
||||||
# Make it possible to use $arg[2] in {= =}
|
|
||||||
*Arg::arg = $self->{'arg_list_flat_orig'};
|
|
||||||
# Flat list:
|
|
||||||
# $self->{'arg_list'} = [ [Arg11, Arg12], [Arg21, Arg22], [Arg31, Arg32] ]
|
|
||||||
# $self->{'arg_list_flat'} = [ Arg11, Arg12, Arg21, Arg22, Arg31, Arg32 ]
|
|
||||||
if(not @{$self->{'arg_list_flat'}}) {
|
|
||||||
@{$self->{'arg_list_flat'}} = Arg->new("");
|
|
||||||
}
|
|
||||||
my $argref = $self->{'arg_list_flat'};
|
|
||||||
# Number of arguments - used for positional arguments
|
|
||||||
my $n = $#$argref+1;
|
|
||||||
|
|
||||||
# $self is actually a CommandLine-object,
|
# $self is actually a CommandLine-object,
|
||||||
# but it looks nice to be able to say {= $job->slot() =}
|
# but it looks nice to be able to say {= $job->slot() =}
|
||||||
my $job = $self;
|
my $job = $self;
|
||||||
$perl_expressions_as_re =
|
# @replaced = tokens with \257< \257> replaced
|
||||||
join("|", map {s/^-?\d+//; "\Q$_\E"} keys %{$self->{'replacecount'}});
|
my @replaced;
|
||||||
# Fish out the words that have replacement strings in them
|
if($self->{'context_replace'}) {
|
||||||
for my $word (fish_out_words_with_rpl_strings()) {
|
my @ctxgroup;
|
||||||
# word = AB \257< perlexpr \257> CD \257< perlexpr \257> EF
|
for my $t (@tokens,"\0end") {
|
||||||
::debug("replace", "Replacing in $word\n");
|
# \0end = last token was end of tokens.
|
||||||
my $normal_replace;
|
if($t eq " " or $t eq "\0end" or $t eq "\0spc") {
|
||||||
|
# Context group complete: Replace in it
|
||||||
# for each arg:
|
if(grep { /^\257</ } @ctxgroup) {
|
||||||
# replace replacement strings with replacement in the word value
|
# Context group contains a replacement string:
|
||||||
# push to replace word value
|
# Copy once per arg
|
||||||
for my $arg (@$argref) {
|
my $space = "\0ign";
|
||||||
my $val = $word;
|
for my $arg (@$argref) {
|
||||||
# Replace {= perl expr =} with value for each arg
|
my $normal_replace;
|
||||||
$val =~ s{\257<(-?\d+)?($perl_expressions_as_re)\257>}
|
# Push output
|
||||||
{
|
# Put unquoted space before each context group
|
||||||
if($1) {
|
# except the first
|
||||||
|
CORE::push @replaced, $space, map {
|
||||||
|
$a = $_;
|
||||||
|
$a =~
|
||||||
|
s{\257<(-?\d+)?(.*)\257>}
|
||||||
|
{
|
||||||
|
if($1) {
|
||||||
# Positional replace
|
# Positional replace
|
||||||
# Find the relevant arg and replace it
|
# Find the relevant arg and replace it
|
||||||
($argref->[$1 > 0 ? $1-1 : $n+$1] ? # If defined: replace
|
($argref->[$1 > 0 ? $1-1 : $n+$1] ? # If defined: replace
|
||||||
$argref->[$1 > 0 ? $1-1 : $n+$1]->
|
$argref->[$1 > 0 ? $1-1 : $n+$1]->
|
||||||
replace($2,$quote_arg,$self)
|
replace($2,$quote_arg,$self)
|
||||||
: "");
|
: "");
|
||||||
} else {
|
} else {
|
||||||
# Normal replace
|
# Normal replace
|
||||||
$normal_replace ||= 1;
|
$normal_replace ||= 1;
|
||||||
($arg ? $arg->replace($2,$quote_arg,$self) : "");
|
($arg ? $arg->replace($2,$quote_arg,$self) : "");
|
||||||
}
|
}
|
||||||
}gxe;
|
}sgxe;
|
||||||
if($quote) {
|
$a
|
||||||
CORE::push(@{$replace{::shell_quote_scalar($word)}},
|
} @ctxgroup;
|
||||||
::shell_quote_scalar($val));
|
$normal_replace or last;
|
||||||
|
$space = "\0spc";
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
CORE::push(@{$replace{$word}}, $val);
|
# Context group has no a replacement string: Copy it once
|
||||||
|
CORE::push @replaced, @ctxgroup;
|
||||||
}
|
}
|
||||||
# No normal replacements => only run once
|
# New context group
|
||||||
$normal_replace or last;
|
@ctxgroup=();
|
||||||
|
}
|
||||||
|
if($t eq "\0spc") {
|
||||||
|
CORE::push @replaced,$t;
|
||||||
|
} else {
|
||||||
|
CORE::push @ctxgroup,$t;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
*Arg::arg = [];
|
} else {
|
||||||
if($quote) {
|
# @group = @token
|
||||||
@target = ::shell_quote(@target);
|
# Replace in group
|
||||||
}
|
# Push output
|
||||||
if(%replace) {
|
# repquote = no if {} first on line, no if $quote, yes otherwise
|
||||||
# Substitute the replace strings with the replacement values
|
for my $t (@tokens) {
|
||||||
# Must be sorted by length if a short word is a substring of a long word
|
if($t =~ /^\257</) {
|
||||||
my $regexp = join('|', map { my $s = $_; $s =~ s/(\W)/\\$1/g; $s }
|
my $space = "\0ign";
|
||||||
sort { length $b <=> length $a } keys %replace);
|
for my $arg (@$argref) {
|
||||||
for(@target) {
|
my $normal_replace;
|
||||||
s/($regexp)/join(" ",@{$replace{$1}})/ge;
|
$a = $t;
|
||||||
}
|
$a =~
|
||||||
}
|
s{\257<(-?\d+)?(.*)\257>}
|
||||||
if($Global::escape_string_present) {
|
{
|
||||||
# Command line contains \257: Unescape it \257\256 => \257
|
if($1) {
|
||||||
# If a replacement resulted in \257\256
|
# Positional replace
|
||||||
# it will have been escaped into \\\257\\\\256
|
# Find the relevant arg and replace it
|
||||||
# and will not be matched below
|
($argref->[$1 > 0 ? $1-1 : $n+$1] ? # If defined: replace
|
||||||
for(@target) {
|
$argref->[$1 > 0 ? $1-1 : $n+$1]->
|
||||||
s/\257\256/\257/g;
|
replace($2,$quote_arg,$self)
|
||||||
}
|
: "");
|
||||||
if($opt::q) {
|
} else {
|
||||||
# \257 will be quoted too much
|
# Normal replace
|
||||||
for(@target) {
|
$normal_replace ||= 1;
|
||||||
s/\\\257\\\256/\\\257/g;
|
($arg ? $arg->replace($2,$quote_arg,$self) : "");
|
||||||
|
}
|
||||||
|
}sgxe;
|
||||||
|
CORE::push @replaced, $space, $a;
|
||||||
|
$normal_replace or last;
|
||||||
|
$space = "\0spc";
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
# No replacement
|
||||||
|
CORE::push @replaced, $t;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
::debug("replace", "Return @target\n");
|
|
||||||
return wantarray ? @target : "@target";
|
|
||||||
}
|
}
|
||||||
|
*Arg::arg = [];
|
||||||
|
::debug("replace","Replaced: ".join":",@replaced,"\n");
|
||||||
|
if($Global::escape_string_present) {
|
||||||
|
# Command line contains \257: Unescape it \257\256 => \257
|
||||||
|
# If a replacement resulted in \257\256
|
||||||
|
# it will have been escaped into \\\257\\\\256
|
||||||
|
# and will not be matched below
|
||||||
|
for(@replaced) {
|
||||||
|
s/\257\256/\257/g;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
# Put tokens into groups that may be quoted.
|
||||||
|
my @quotegroup;
|
||||||
|
my @quoted;
|
||||||
|
for (map { $_ eq "\0empty" ? "" : $_ }
|
||||||
|
grep { $_ ne "\0ign" }
|
||||||
|
grep { $_ !~ /\0noarg/ }
|
||||||
|
@replaced, "\0end") {
|
||||||
|
if($_ eq "\0spc" or $_ eq "\0end") {
|
||||||
|
# \0spc splits quotable groups
|
||||||
|
if($quote) {
|
||||||
|
CORE::push @quoted, ::shell_quote_scalar(join"",@quotegroup);
|
||||||
|
} else {
|
||||||
|
CORE::push @quoted, join"",@quotegroup;
|
||||||
|
}
|
||||||
|
@quotegroup = ();
|
||||||
|
} else {
|
||||||
|
CORE::push @quotegroup, $_;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
::debug("replace","Quoted: ".join":",@quoted,"\n");
|
||||||
|
return wantarray ? @quoted : "@quoted";
|
||||||
}
|
}
|
||||||
|
|
||||||
sub skip {
|
sub skip {
|
||||||
|
@ -10672,17 +10706,23 @@ sub get {
|
||||||
my $ret = $self->{'arg_sub_queue'}->get();
|
my $ret = $self->{'arg_sub_queue'}->get();
|
||||||
if($ret) {
|
if($ret) {
|
||||||
if(grep { index($_->orig(),"\0") > 0 } @$ret) {
|
if(grep { index($_->orig(),"\0") > 0 } @$ret) {
|
||||||
# Allow for \0 in position 0 because GNU Parallel uses "\0"
|
# Allow for \0 in position 0 because GNU Parallel uses "\0noarg"
|
||||||
# to mean no-string
|
# to mean no-string
|
||||||
::warning("a NUL character occurred in the input.",
|
::warning("A NUL character in the input was replaced with \\0.",
|
||||||
"It cannot be passed through in the argument list.",
|
"NUL cannot be passed through in the argument list.",
|
||||||
"Did you mean to use the --null option?");
|
"Did you mean to use the --null option?");
|
||||||
|
for(grep { index($_->orig(),"\0") > 0 } @$ret) {
|
||||||
|
# Replace \0 with \\0
|
||||||
|
my $a = $_->orig();
|
||||||
|
$a =~ s/\0/\\0/g;
|
||||||
|
$_->set_orig($a);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if(defined $Global::max_number_of_args
|
if(defined $Global::max_number_of_args
|
||||||
and $Global::max_number_of_args == 0) {
|
and $Global::max_number_of_args == 0) {
|
||||||
::debug("run", "Read 1 but return 0 args\n");
|
::debug("run", "Read 1 but return 0 args\n");
|
||||||
# \0 => nothing (not the empty string)
|
# \0noarg => nothing (not the empty string)
|
||||||
map { $_->set_orig("\0"); } @$ret;
|
map { $_->set_orig("\0noarg"); } @$ret;
|
||||||
}
|
}
|
||||||
# Flush cached computed replacements in Arg-objects
|
# Flush cached computed replacements in Arg-objects
|
||||||
# To fix: parallel --bar echo {%} ::: a b c ::: d e f
|
# To fix: parallel --bar echo {%} ::: a b c ::: d e f
|
||||||
|
@ -11471,7 +11511,7 @@ sub parse_dburl {
|
||||||
my %options = ();
|
my %options = ();
|
||||||
# sql:mysql://[[user][:password]@][host][:port]/[database[/table][?query]]
|
# sql:mysql://[[user][:password]@][host][:port]/[database[/table][?query]]
|
||||||
|
|
||||||
if($url=~m!(?:sql:)? # You can prefix with 'sql:'
|
if($url=~m!^(?:sql:)? # You can prefix with 'sql:'
|
||||||
((?:oracle|ora|mysql|pg|postgres|postgresql)(?:s|ssl|)|
|
((?:oracle|ora|mysql|pg|postgres|postgresql)(?:s|ssl|)|
|
||||||
(?:sqlite|sqlite2|sqlite3|csv)):// # Databasedriver ($1)
|
(?:sqlite|sqlite2|sqlite3|csv)):// # Databasedriver ($1)
|
||||||
(?:
|
(?:
|
||||||
|
@ -11497,7 +11537,7 @@ sub parse_dburl {
|
||||||
\?
|
\?
|
||||||
(.*)? # Query ($8)
|
(.*)? # Query ($8)
|
||||||
)?
|
)?
|
||||||
!ix) {
|
$!ix) {
|
||||||
$options{databasedriver} = ::undef_if_empty(lc(uri_unescape($1)));
|
$options{databasedriver} = ::undef_if_empty(lc(uri_unescape($1)));
|
||||||
$options{user} = ::undef_if_empty(uri_unescape($2));
|
$options{user} = ::undef_if_empty(uri_unescape($2));
|
||||||
$options{password} = ::undef_if_empty(uri_unescape($3));
|
$options{password} = ::undef_if_empty(uri_unescape($3));
|
||||||
|
|
|
@ -409,7 +409,7 @@ there is no data.
|
||||||
|
|
||||||
=item --tmux
|
=item --tmux
|
||||||
|
|
||||||
<<TODO Fixup>>
|
<<TODO Fixup with '-quoting>>
|
||||||
mkfifo /tmp/tmx3cMEV &&
|
mkfifo /tmp/tmx3cMEV &&
|
||||||
sh -c 'tmux -S /tmp/tmsaKpv1 new-session -s p334310 -d "sleep .2" >/dev/null 2>&1';
|
sh -c 'tmux -S /tmp/tmsaKpv1 new-session -s p334310 -d "sleep .2" >/dev/null 2>&1';
|
||||||
tmux -S /tmp/tmsaKpv1 new-window -t p334310 -n wc\ 10 \(wc\ 10\)\;\ perl\ -e\ \'while\(\$t++\<3\)\{\ print\ \$ARGV\[0\],\"\\n\"\ \}\'\ \$\?h/\$status\ \>\>\ /tmp/tmx3cMEV\&echo\ wc\\\ 10\;\ echo\ \Job\ finished\ at:\ \`date\`\;sleep\ 10;
|
tmux -S /tmp/tmsaKpv1 new-window -t p334310 -n wc\ 10 \(wc\ 10\)\;\ perl\ -e\ \'while\(\$t++\<3\)\{\ print\ \$ARGV\[0\],\"\\n\"\ \}\'\ \$\?h/\$status\ \>\>\ /tmp/tmx3cMEV\&echo\ wc\\\ 10\;\ echo\ \Job\ finished\ at:\ \`date\`\;sleep\ 10;
|
||||||
|
@ -792,16 +792,11 @@ you do not see the whole picture.
|
||||||
|
|
||||||
=head2 Quoting
|
=head2 Quoting
|
||||||
|
|
||||||
Quoting depends on the shell. For most shells \ is used for all
|
Quoting depends on the shell. For most shells '-quoting is used for
|
||||||
special chars and ' is used for newline. Whether a char is special
|
strings containing special characters.
|
||||||
depends on the shell and the context. Luckily quoting a bit too many
|
|
||||||
chars does not break things.
|
|
||||||
|
|
||||||
It is fast, but has the distinct disadvantage that if a string needs
|
For B<tcsh>/B<csh> newline is quoted as \ followed by newline. Other
|
||||||
to be quoted multiple times, the \'s double every time - increasing
|
special characters are also \-quoted.
|
||||||
the string length exponentially.
|
|
||||||
|
|
||||||
For B<tcsh>/B<csh> newline is quoted as \ followed by newline.
|
|
||||||
|
|
||||||
For B<rc> everything is quoted using '.
|
For B<rc> everything is quoted using '.
|
||||||
|
|
||||||
|
|
2
src/sql
2
src/sql
|
@ -576,7 +576,7 @@ $Global::Initfile && unlink $Global::Initfile;
|
||||||
exit ($err);
|
exit ($err);
|
||||||
|
|
||||||
sub parse_options {
|
sub parse_options {
|
||||||
$Global::version = 20180622;
|
$Global::version = 20180722;
|
||||||
$Global::progname = 'sql';
|
$Global::progname = 'sql';
|
||||||
|
|
||||||
# This must be done first as this may exec myself
|
# This must be done first as this may exec myself
|
||||||
|
|
|
@ -32,6 +32,12 @@ local: testlocal
|
||||||
testlocal: ../src/parallel tests-to-run/*local* wanted-results/*local* prereqlocal installparallel
|
testlocal: ../src/parallel tests-to-run/*local* wanted-results/*local* prereqlocal installparallel
|
||||||
time bash Start.sh local mem
|
time bash Start.sh local mem
|
||||||
|
|
||||||
|
short: testlocalshort
|
||||||
|
true
|
||||||
|
|
||||||
|
testlocalshort: ../src/parallel tests-to-run/*local* wanted-results/*local* prereqlocal installparallel
|
||||||
|
time bash Start.sh local mem'|'100s
|
||||||
|
|
||||||
prereqlocal: installparallel
|
prereqlocal: installparallel
|
||||||
tcsh -c echo tcsh installed || (echo tcsh is required for testsuite; /bin/false)
|
tcsh -c echo tcsh installed || (echo tcsh is required for testsuite; /bin/false)
|
||||||
seq 1 2 >/dev/null || (echo seq is required for testsuite; /bin/false)
|
seq 1 2 >/dev/null || (echo seq is required for testsuite; /bin/false)
|
||||||
|
|
|
@ -827,6 +827,7 @@ par_pipe_recend() {
|
||||||
|
|
||||||
par_perlexpr_with_newline() {
|
par_perlexpr_with_newline() {
|
||||||
echo 'Perl expression spanning 2 lines'
|
echo 'Perl expression spanning 2 lines'
|
||||||
|
mkdir -p tmp
|
||||||
cd tmp
|
cd tmp
|
||||||
touch "Dad's \"famous\" 1' pizza"
|
touch "Dad's \"famous\" 1' pizza"
|
||||||
# Important with newline in perl expression:
|
# Important with newline in perl expression:
|
||||||
|
|
|
@ -16,7 +16,7 @@ par_exit_code() {
|
||||||
# Runs command in given shell via Perl's open3
|
# Runs command in given shell via Perl's open3
|
||||||
shell="$1"
|
shell="$1"
|
||||||
prg="$2"
|
prg="$2"
|
||||||
perl -MIPC::Open3 -e 'open3($a,$b,$c,"'$shell'","-c","'"$prg"'"); wait; print $?>>8,"\n"'
|
perl -MIPC::Open3 -e 'open3($a,$b,$c,"'$shell'","-c",'"$prg"'); wait; print $?>>8,"\n"'
|
||||||
}
|
}
|
||||||
export -f in_shell_run_command
|
export -f in_shell_run_command
|
||||||
|
|
||||||
|
|
|
@ -314,6 +314,31 @@ par_retries_all_fail() {
|
||||||
parallel -k -j0 --retries 2 --timeout 0.1 'echo {}; sleep {}; false' 2>/dev/null
|
parallel -k -j0 --retries 2 --timeout 0.1 'echo {}; sleep {}; false' 2>/dev/null
|
||||||
}
|
}
|
||||||
|
|
||||||
|
par_sockets_cores_threads() {
|
||||||
|
echo '### Test --number-of-sockets/cores/threads'
|
||||||
|
parallel --number-of-sockets
|
||||||
|
parallel --number-of-cores
|
||||||
|
parallel --number-of-threads
|
||||||
|
parallel --number-of-cpus
|
||||||
|
|
||||||
|
echo '### Test --use-sockets-instead-of-threads'
|
||||||
|
(seq 1 4 |
|
||||||
|
stdout parallel --use-sockets-instead-of-threads -j100% sleep) &&
|
||||||
|
echo sockets done &
|
||||||
|
(seq 1 4 | stdout parallel -j100% sleep) && echo threads done &
|
||||||
|
wait
|
||||||
|
echo 'Threads should complete first on machines with less than 8 sockets'
|
||||||
|
}
|
||||||
|
|
||||||
|
par_long_line_remote() {
|
||||||
|
echo '### Deal with long command lines on remote servers'
|
||||||
|
perl -e "print(((\"'\"x5000).\"\\n\")x6)" |
|
||||||
|
parallel -j1 -S lo -N 10000 echo {} |wc
|
||||||
|
perl -e 'print((("\$"x5000)."\n")x50)' |
|
||||||
|
parallel -j1 -S lo -N 10000 echo {} |wc
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
export -f $(compgen -A function | grep par_)
|
export -f $(compgen -A function | grep par_)
|
||||||
compgen -A function | grep par_ | sort |
|
compgen -A function | grep par_ | sort |
|
||||||
parallel --joblog /tmp/jl-`basename $0` -j10 --tag -k '{} 2>&1'
|
parallel --joblog /tmp/jl-`basename $0` -j10 --tag -k '{} 2>&1'
|
||||||
|
|
|
@ -8,113 +8,114 @@ export PG=pg://`whoami`:`whoami`@lo/`whoami`
|
||||||
export MYSQL=mysql://`whoami`:`whoami`@lo/`whoami`
|
export MYSQL=mysql://`whoami`:`whoami`@lo/`whoami`
|
||||||
|
|
||||||
export DEBUG=false
|
export DEBUG=false
|
||||||
|
rm /run/shm/parallel.db
|
||||||
|
|
||||||
|
p_showsqlresult() {
|
||||||
|
SERVERURL=$1
|
||||||
|
TABLE=$2
|
||||||
|
sql $SERVERURL "select Host,Command,V1,V2,Stdout,Stderr from $TABLE order by seq;"
|
||||||
|
}
|
||||||
|
|
||||||
|
p_wrapper() {
|
||||||
|
INNER=$1
|
||||||
|
SERVERURL=$(eval echo $2)
|
||||||
|
TABLE=TBL$RANDOM
|
||||||
|
DBURL=$SERVERURL/$TABLE
|
||||||
|
T1=$(tempfile)
|
||||||
|
T2=$(tempfile)
|
||||||
|
eval "$INNER"
|
||||||
|
echo Exit=$?
|
||||||
|
wait
|
||||||
|
echo Exit=$?
|
||||||
|
$DEBUG && sort -u $T1 $T2;
|
||||||
|
rm $T1 $T2
|
||||||
|
p_showsqlresult $SERVERURL $TABLE
|
||||||
|
$DEBUG || sql $SERVERURL "drop table $TABLE;" >/dev/null 2>/dev/null
|
||||||
|
}
|
||||||
|
|
||||||
|
p_template() {
|
||||||
|
(sleep 4;
|
||||||
|
parallel --sqlworker $DBURL "$@" sleep .3\;echo >$T1) &
|
||||||
|
parallel --sqlandworker $DBURL "$@" sleep .3\;echo ::: {1..5} ::: {a..e} >$T2;
|
||||||
|
}
|
||||||
|
|
||||||
|
par_sqlandworker() {
|
||||||
|
p_template
|
||||||
|
}
|
||||||
|
|
||||||
|
par_sqlandworker_lo() {
|
||||||
|
p_template -S lo
|
||||||
|
}
|
||||||
|
|
||||||
|
par_sqlandworker_results() {
|
||||||
|
p_template --results /tmp/out--sql
|
||||||
|
}
|
||||||
|
|
||||||
|
par_sqlandworker_linebuffer() {
|
||||||
|
p_template --linebuffer
|
||||||
|
}
|
||||||
|
|
||||||
|
par_sqlandworker_tag() {
|
||||||
|
p_template --tag
|
||||||
|
}
|
||||||
|
|
||||||
|
par_sqlandworker_linebuffer_tag() {
|
||||||
|
p_template --linebuffer --tag
|
||||||
|
}
|
||||||
|
|
||||||
|
par_sqlandworker_compress_linebuffer_tag() {
|
||||||
|
p_template --compress --linebuffer --tag
|
||||||
|
}
|
||||||
|
|
||||||
|
par_sqlandworker_unbuffer() {
|
||||||
|
p_template -u
|
||||||
|
}
|
||||||
|
|
||||||
|
par_sqlandworker_total_jobs() {
|
||||||
|
p_template echo {#} of '{=1 $_=total_jobs(); =};'
|
||||||
|
}
|
||||||
|
|
||||||
|
par_append() {
|
||||||
|
parallel --sqlmaster $DBURL sleep .3\;echo ::: {1..5} ::: {a..e} >$T2;
|
||||||
|
parallel --sqlmaster +$DBURL sleep .3\;echo ::: {11..15} ::: {A..E} >>$T2;
|
||||||
|
parallel --sqlworker $DBURL sleep .3\;echo >$T1
|
||||||
|
}
|
||||||
|
|
||||||
|
par_shuf() {
|
||||||
|
MD5=$(echo $SERVERURL | md5sum | perl -pe 's/(...).*/$1/')
|
||||||
|
T=/tmp/parallel-bug49791-$MD5
|
||||||
|
[ -e $T ] && rm -rf $T
|
||||||
|
export PARALLEL="--shuf --result $T"
|
||||||
|
parallel --sqlandworker $DBURL sleep .3\;echo \
|
||||||
|
::: {1..5} ::: {a..e} >$T2;
|
||||||
|
parallel --sqlworker $DBURL sleep .3\;echo >$T2 &
|
||||||
|
parallel --sqlworker $DBURL sleep .3\;echo >$T2 &
|
||||||
|
parallel --sqlworker $DBURL sleep .3\;echo >$T2 &
|
||||||
|
parallel --sqlworker $DBURL sleep .3\;echo >$T2 &
|
||||||
|
unset PARALLEL
|
||||||
|
wait;
|
||||||
|
# Did it compute correctly?
|
||||||
|
cat $T/1/*/*/*/stdout
|
||||||
|
# Did it shuffle
|
||||||
|
SHUF=$(sql $SERVERURL "select Host,Command,V1,V2,Stdout,Stderr from $TABLE order by seq;")
|
||||||
|
export PARALLEL="--result $T"
|
||||||
|
parallel --sqlandworker $DBURL sleep .3\;echo \
|
||||||
|
::: {1..5} ::: {a..e} >$T2;
|
||||||
|
parallel --sqlworker $DBURL sleep .3\;echo >$T2 &
|
||||||
|
parallel --sqlworker $DBURL sleep .3\;echo >$T2 &
|
||||||
|
parallel --sqlworker $DBURL sleep .3\;echo >$T2 &
|
||||||
|
parallel --sqlworker $DBURL sleep .3\;echo >$T2 &
|
||||||
|
unset PARALLEL
|
||||||
|
wait;
|
||||||
|
NOSHUF=$(sql $SERVERURL "select Host,Command,V1,V2,Stdout,Stderr from $TABLE order by seq;")
|
||||||
|
DIFFSIZE=$(diff <(echo "$SHUF") <(echo "$NOSHUF") | wc -c)
|
||||||
|
if [ $DIFFSIZE -gt 2500 ]; then
|
||||||
|
echo OK: Diff bigger than 2500 char
|
||||||
|
fi
|
||||||
|
[ -e $T ] && rm -rf $T
|
||||||
|
touch $T1
|
||||||
|
}
|
||||||
|
|
||||||
#p_showsqlresult() {
|
|
||||||
# SERVERURL=$1
|
|
||||||
# TABLE=$2
|
|
||||||
# sql $SERVERURL "select Host,Command,V1,V2,Stdout,Stderr from $TABLE order by seq;"
|
|
||||||
#}
|
|
||||||
#
|
|
||||||
#p_wrapper() {
|
|
||||||
# INNER=$1
|
|
||||||
# SERVERURL=$(eval echo $2)
|
|
||||||
# TABLE=TBL$RANDOM
|
|
||||||
# DBURL=$SERVERURL/$TABLE
|
|
||||||
# T1=$(tempfile)
|
|
||||||
# T2=$(tempfile)
|
|
||||||
# eval "$INNER"
|
|
||||||
# echo Exit=$?
|
|
||||||
# wait
|
|
||||||
# echo Exit=$?
|
|
||||||
# $DEBUG && sort -u $T1 $T2;
|
|
||||||
# rm $T1 $T2
|
|
||||||
# p_showsqlresult $SERVERURL $TABLE
|
|
||||||
# $DEBUG || sql $SERVERURL "drop table $TABLE;" >/dev/null 2>/dev/null
|
|
||||||
#}
|
|
||||||
#
|
|
||||||
#p_template() {
|
|
||||||
# (sleep 2;
|
|
||||||
# parallel --sqlworker $DBURL "$@" sleep .3\;echo >$T1) &
|
|
||||||
# parallel --sqlandworker $DBURL "$@" sleep .3\;echo ::: {1..5} ::: {a..e} >$T2;
|
|
||||||
#}
|
|
||||||
#
|
|
||||||
#par_sqlandworker() {
|
|
||||||
# p_template
|
|
||||||
#}
|
|
||||||
#
|
|
||||||
#par_sqlandworker_lo() {
|
|
||||||
# p_template -S lo
|
|
||||||
#}
|
|
||||||
#
|
|
||||||
#par_sqlandworker_results() {
|
|
||||||
# p_template --results /tmp/out--sql
|
|
||||||
#}
|
|
||||||
#
|
|
||||||
#par_sqlandworker_linebuffer() {
|
|
||||||
# p_template --linebuffer
|
|
||||||
#}
|
|
||||||
#
|
|
||||||
#par_sqlandworker_tag() {
|
|
||||||
# p_template --tag
|
|
||||||
#}
|
|
||||||
#
|
|
||||||
#par_sqlandworker_linebuffer_tag() {
|
|
||||||
# p_template --linebuffer --tag
|
|
||||||
#}
|
|
||||||
#
|
|
||||||
#par_sqlandworker_compress_linebuffer_tag() {
|
|
||||||
# p_template --compress --linebuffer --tag
|
|
||||||
#}
|
|
||||||
#
|
|
||||||
#par_sqlandworker_unbuffer() {
|
|
||||||
# p_template -u
|
|
||||||
#}
|
|
||||||
#
|
|
||||||
#par_sqlandworker_total_jobs() {
|
|
||||||
# p_template echo {#} of '{=1 $_=total_jobs(); =};'
|
|
||||||
#}
|
|
||||||
#
|
|
||||||
#par_append() {
|
|
||||||
# parallel --sqlmaster $DBURL sleep .3\;echo ::: {1..5} ::: {a..e} >$T2;
|
|
||||||
# parallel --sqlmaster +$DBURL sleep .3\;echo ::: {11..15} ::: {A..E} >>$T2;
|
|
||||||
# parallel --sqlworker $DBURL sleep .3\;echo >$T1
|
|
||||||
#}
|
|
||||||
#
|
|
||||||
#par_shuf() {
|
|
||||||
# MD5=$(echo $SERVERURL | md5sum | perl -pe 's/(...).*/$1/')
|
|
||||||
# T=/tmp/parallel-bug49791-$MD5
|
|
||||||
# [ -e $T ] && rm -rf $T
|
|
||||||
# export PARALLEL="--shuf --result $T"
|
|
||||||
# parallel --sqlandworker $DBURL sleep .3\;echo \
|
|
||||||
# ::: {1..5} ::: {a..e} >$T2;
|
|
||||||
# parallel --sqlworker $DBURL sleep .3\;echo >$T2 &
|
|
||||||
# parallel --sqlworker $DBURL sleep .3\;echo >$T2 &
|
|
||||||
# parallel --sqlworker $DBURL sleep .3\;echo >$T2 &
|
|
||||||
# parallel --sqlworker $DBURL sleep .3\;echo >$T2 &
|
|
||||||
# unset PARALLEL
|
|
||||||
# wait;
|
|
||||||
# # Did it compute correctly?
|
|
||||||
# cat $T/1/*/*/*/stdout
|
|
||||||
# # Did it shuffle
|
|
||||||
# SHUF=$(sql $SERVERURL "select Host,Command,V1,V2,Stdout,Stderr from $TABLE order by seq;")
|
|
||||||
# export PARALLEL="--result $T"
|
|
||||||
# parallel --sqlandworker $DBURL sleep .3\;echo \
|
|
||||||
# ::: {1..5} ::: {a..e} >$T2;
|
|
||||||
# parallel --sqlworker $DBURL sleep .3\;echo >$T2 &
|
|
||||||
# parallel --sqlworker $DBURL sleep .3\;echo >$T2 &
|
|
||||||
# parallel --sqlworker $DBURL sleep .3\;echo >$T2 &
|
|
||||||
# parallel --sqlworker $DBURL sleep .3\;echo >$T2 &
|
|
||||||
# unset PARALLEL
|
|
||||||
# wait;
|
|
||||||
# NOSHUF=$(sql $SERVERURL "select Host,Command,V1,V2,Stdout,Stderr from $TABLE order by seq;")
|
|
||||||
# DIFFSIZE=$(diff <(echo "$SHUF") <(echo "$NOSHUF") | wc -c)
|
|
||||||
# if [ $DIFFSIZE -gt 2500 ]; then
|
|
||||||
# echo OK: Diff bigger than 2500 char
|
|
||||||
# fi
|
|
||||||
# [ -e $T ] && rm -rf $T
|
|
||||||
# touch $T1
|
|
||||||
#}
|
|
||||||
#
|
|
||||||
par_empty() {
|
par_empty() {
|
||||||
true;
|
true;
|
||||||
}
|
}
|
||||||
|
@ -123,4 +124,4 @@ export -f $(compgen -A function | egrep 'p_|par_')
|
||||||
# Tested that -j0 in parallel is fastest (up to 15 jobs)
|
# Tested that -j0 in parallel is fastest (up to 15 jobs)
|
||||||
compgen -A function | grep par_ | sort |
|
compgen -A function | grep par_ | sort |
|
||||||
stdout parallel -vj5 -k --tag --joblog /tmp/jl-`basename $0` p_wrapper \
|
stdout parallel -vj5 -k --tag --joblog /tmp/jl-`basename $0` p_wrapper \
|
||||||
:::: - ::: \$MYSQL \$PG \$SQLITE
|
:::: - ::: \$MYSQL \$PG \$SQLITE | perl -pe 's/tbl\d+/TBL99999/gi'
|
||||||
|
|
|
@ -31,9 +31,6 @@ echo '### bug #41805: Idea: propagate --env for parallel --number-of-cores'
|
||||||
FOO=test_csh_filter parallel --filter-hosts --env FOO,HOME -S csh@lo -N0 env ::: "" |sort|egrep 'FOO|^HOME'
|
FOO=test_csh_filter parallel --filter-hosts --env FOO,HOME -S csh@lo -N0 env ::: "" |sort|egrep 'FOO|^HOME'
|
||||||
echo '** bug #41805 done'
|
echo '** bug #41805 done'
|
||||||
|
|
||||||
echo '### Deal with long command lines on remote servers'
|
|
||||||
perl -e 'print((("\""x5000)."\n")x26)' | parallel -j1 -S lo -N 10000 echo {} |wc
|
|
||||||
|
|
||||||
echo '### Test bug #34241: --pipe should not spawn unneeded processes'
|
echo '### Test bug #34241: --pipe should not spawn unneeded processes'
|
||||||
seq 5 | ssh csh@lo parallel -k --block 5 --pipe -j10 cat\\\;echo Block_end
|
seq 5 | ssh csh@lo parallel -k --block 5 --pipe -j10 cat\\\;echo Block_end
|
||||||
|
|
||||||
|
@ -140,7 +137,7 @@ echo '### bug #46519: --onall ignores --transfer'
|
||||||
|
|
||||||
echo '### Test --nice remote'
|
echo '### Test --nice remote'
|
||||||
stdout parallel --nice 1 -S lo -vv 'PAR=a bash -c "echo \$PAR {}"' ::: b |
|
stdout parallel --nice 1 -S lo -vv 'PAR=a bash -c "echo \$PAR {}"' ::: b |
|
||||||
perl -pe 's/\S*parallel-server\S*/one-server/;s:[a-z/\\+=0-9]{500,}:base64:i;'
|
perl -pe 's/\S*parallel-server\S*/one-server/;s:="[0-9]+":="XXXXX":i;'
|
||||||
|
|
||||||
echo '**'
|
echo '**'
|
||||||
|
|
||||||
|
|
|
@ -347,6 +347,8 @@ par_ksh_man() {
|
||||||
env_parallel -k --env myarray echo '"${myarray[{}]}"' ::: 0 1 2 3
|
env_parallel -k --env myarray echo '"${myarray[{}]}"' ::: 0 1 2 3
|
||||||
env_parallel -k --env myarray -S server echo '"${myarray[{}]}"' ::: 0 1 2 3
|
env_parallel -k --env myarray -S server echo '"${myarray[{}]}"' ::: 0 1 2 3
|
||||||
|
|
||||||
|
echo This may never work
|
||||||
|
echo https://unix.stackexchange.com/questions/457031/extract-full-function-definitions
|
||||||
env_parallel --argsep --- env_parallel -k echo ::: multi level --- env_parallel
|
env_parallel --argsep --- env_parallel -k echo ::: multi level --- env_parallel
|
||||||
|
|
||||||
env_parallel ::: true false true false
|
env_parallel ::: true false true false
|
||||||
|
@ -1502,6 +1504,7 @@ par_fish_env_parallel() {
|
||||||
echo 'bug #50435: Remote fifo broke in 20150522'
|
echo 'bug #50435: Remote fifo broke in 20150522'
|
||||||
# Due to $PARALLEL_TMP being transferred
|
# Due to $PARALLEL_TMP being transferred
|
||||||
set OK OK
|
set OK OK
|
||||||
|
echo TODO fix env_parallel --fifo
|
||||||
echo data from stdin | env_parallel --pipe -S lo --fifo 'cat {}; and echo $OK'
|
echo data from stdin | env_parallel --pipe -S lo --fifo 'cat {}; and echo $OK'
|
||||||
echo data from stdin | env_parallel --pipe -S lo --cat 'cat {}; and echo $OK'
|
echo data from stdin | env_parallel --pipe -S lo --cat 'cat {}; and echo $OK'
|
||||||
_EOF
|
_EOF
|
||||||
|
|
|
@ -41,6 +41,7 @@ rm /tmp/parallel-script-for-script3
|
||||||
stdout parallel --citation < /dev/null
|
stdout parallel --citation < /dev/null
|
||||||
|
|
||||||
touch ~/.parallel/will-cite
|
touch ~/.parallel/will-cite
|
||||||
|
echo 1 > ~/.parallel/runs-without-willing-to-cite
|
||||||
# Clear screen
|
# Clear screen
|
||||||
eval `resize`
|
eval `resize`
|
||||||
seq $LINES | parallel -N0 echo > /dev/tty
|
seq $LINES | parallel -N0 echo > /dev/tty
|
||||||
|
|
|
@ -18,8 +18,8 @@ perl -e 'print map {"more_than_5000-$_\n" } (4000..9999)' | parallel -vj 0 touch
|
||||||
echo '### rm'
|
echo '### rm'
|
||||||
perl -e 'print map {"more_than_5000-$_\n" } (4000..9900)' | parallel -j 0 rm | sort
|
perl -e 'print map {"more_than_5000-$_\n" } (4000..9900)' | parallel -j 0 rm | sort
|
||||||
cat <<'EOF' | sed -e 's/;$/; /;s/$SERVER1/'$SERVER1'/;s/$SERVER2/'$SERVER2'/' | stdout parallel -vj0 -k --joblog /tmp/jl-`basename $0` -L1 | egrep -v 'parallel: Warning: Starting|parallel: Warning: Consider'
|
cat <<'EOF' | sed -e 's/;$/; /;s/$SERVER1/'$SERVER1'/;s/$SERVER2/'$SERVER2'/' | stdout parallel -vj0 -k --joblog /tmp/jl-`basename $0` -L1 | egrep -v 'parallel: Warning: Starting|parallel: Warning: Consider'
|
||||||
ls | parallel -j500 'sleep 1; find {} -type f | perl -ne "END{print $..\" {}\n\"}"' | sort
|
ls | parallel -j500 'sleep 1; find {} -type f | perl -ne "END{print $..\" "{=$_=pQ($_)=}"\n\"}"' | sort
|
||||||
ls | parallel --group -j500 'sleep 1; find {} -type f | perl -ne "END{print $..\" {}\n\"}"' | sort
|
ls | parallel --group -j500 'sleep 1; find {} -type f | perl -ne "END{print $..\" "{=$_=pQ($_)=}"\n\"}"' | sort
|
||||||
find . -type f | parallel --group "perl -ne '/^\\S+\\s+\\S+$/ and print \$ARGV,\"\\n\"'" | sort
|
find . -type f | parallel --group "perl -ne '/^\\S+\\s+\\S+$/ and print \$ARGV,\"\\n\"'" | sort
|
||||||
find . -type f | parallel -v --group "perl -ne '/^\\S+\\s+\\S+$/ and print \$ARGV,\"\\n\"'" | sort
|
find . -type f | parallel -v --group "perl -ne '/^\\S+\\s+\\S+$/ and print \$ARGV,\"\\n\"'" | sort
|
||||||
find . -type f | parallel -q --group perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\n"' | sort
|
find . -type f | parallel -q --group perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\n"' | sort
|
||||||
|
|
|
@ -37,6 +37,7 @@ par_special_char() {
|
||||||
echo a"$SPC"b 5
|
echo a"$SPC"b 5
|
||||||
LANG=C stdout parallel --env SPC echo 'a"$SPC"b' ::: 5
|
LANG=C stdout parallel --env SPC echo 'a"$SPC"b' ::: 5
|
||||||
LANG=C stdout parallel -S localhost --env SPC echo 'a"$SPC"b' ::: 5
|
LANG=C stdout parallel -S localhost --env SPC echo 'a"$SPC"b' ::: 5
|
||||||
|
# \ misses due to quoting incompatiblilty between bash and csh
|
||||||
LANG=C stdout parallel -S csh@localhost --env SPC echo 'a"$SPC"b' ::: 5
|
LANG=C stdout parallel -S csh@localhost --env SPC echo 'a"$SPC"b' ::: 5
|
||||||
LANG=C stdout parallel -S tcsh@localhost --env SPC echo 'a"$SPC"b' ::: 5
|
LANG=C stdout parallel -S tcsh@localhost --env SPC echo 'a"$SPC"b' ::: 5
|
||||||
}
|
}
|
||||||
|
|
|
@ -27,40 +27,28 @@ export -f par_tmux
|
||||||
cat <<'EOF' | sed -e 's/;$/; /;s/$SERVER1/'$SERVER1'/;s/$SERVER2/'$SERVER2'/' | stdout parallel -vj8 --delay 1 --timeout 100 --retries 1 -k --joblog /tmp/jl-`basename $0` -L1
|
cat <<'EOF' | sed -e 's/;$/; /;s/$SERVER1/'$SERVER1'/;s/$SERVER2/'$SERVER2'/' | stdout parallel -vj8 --delay 1 --timeout 100 --retries 1 -k --joblog /tmp/jl-`basename $0` -L1
|
||||||
|
|
||||||
echo '### tmux-1.9'
|
echo '### tmux-1.9'
|
||||||
seq 000 100 | PARALLEL_TMUX=tmux-1.9 par_tmux
|
seq 0000 10 1000 | PARALLEL_TMUX=tmux-1.9 par_tmux
|
||||||
seq 100 200 | PARALLEL_TMUX=tmux-1.9 par_tmux
|
seq 1001 10 2000 | PARALLEL_TMUX=tmux-1.9 par_tmux
|
||||||
seq 200 300 | PARALLEL_TMUX=tmux-1.9 par_tmux
|
seq 2001 10 3000 | PARALLEL_TMUX=tmux-1.9 par_tmux
|
||||||
seq 300 400 | PARALLEL_TMUX=tmux-1.9 par_tmux
|
seq 3001 10 4000 | PARALLEL_TMUX=tmux-1.9 par_tmux
|
||||||
seq 400 500 | PARALLEL_TMUX=tmux-1.9 par_tmux
|
seq 4001 10 4030 | PARALLEL_TMUX=tmux-1.9 par_tmux
|
||||||
seq 500 600 | PARALLEL_TMUX=tmux-1.9 par_tmux
|
|
||||||
seq 600 700 | PARALLEL_TMUX=tmux-1.9 par_tmux
|
|
||||||
seq 700 800 | PARALLEL_TMUX=tmux-1.9 par_tmux
|
|
||||||
seq 800 900 | PARALLEL_TMUX=tmux-1.9 par_tmux
|
|
||||||
seq 900 1000 | PARALLEL_TMUX=tmux-1.9 par_tmux
|
|
||||||
seq 1000 1100 | PARALLEL_TMUX=tmux-1.9 par_tmux
|
|
||||||
seq 1100 1200 | PARALLEL_TMUX=tmux-1.9 par_tmux
|
|
||||||
seq 1200 1300 | PARALLEL_TMUX=tmux-1.9 par_tmux
|
|
||||||
seq 1300 1400 | PARALLEL_TMUX=tmux-1.9 par_tmux
|
|
||||||
seq 1400 1500 | PARALLEL_TMUX=tmux-1.9 par_tmux
|
|
||||||
seq 1500 1600 | PARALLEL_TMUX=tmux-1.9 par_tmux
|
|
||||||
seq 1600 1700 | PARALLEL_TMUX=tmux-1.9 par_tmux
|
|
||||||
seq 1700 1800 | PARALLEL_TMUX=tmux-1.9 par_tmux
|
|
||||||
seq 1800 1900 | PARALLEL_TMUX=tmux-1.9 par_tmux
|
|
||||||
seq 1900 2000 | PARALLEL_TMUX=tmux-1.9 par_tmux
|
|
||||||
seq 2000 2018 | PARALLEL_TMUX=tmux-1.9 par_tmux
|
|
||||||
echo '### tmux-1.9 fails'
|
echo '### tmux-1.9 fails'
|
||||||
echo 2019 | PARALLEL_TMUX=tmux-1.9 par_tmux
|
echo 4036 | PARALLEL_TMUX=tmux-1.9 par_tmux
|
||||||
echo 2020 | PARALLEL_TMUX=tmux-1.9 par_tmux
|
echo 4037 | PARALLEL_TMUX=tmux-1.9 par_tmux
|
||||||
echo 2021 | PARALLEL_TMUX=tmux-1.9 par_tmux
|
echo 4038 | PARALLEL_TMUX=tmux-1.9 par_tmux
|
||||||
|
|
||||||
echo '### tmux-1.8'
|
echo '### tmux-1.8'
|
||||||
seq 1 100 | PARALLEL_TMUX=tmux-1.8 par_tmux
|
seq 1 5 100 | PARALLEL_TMUX=tmux-1.8 par_tmux
|
||||||
seq 101 200 | PARALLEL_TMUX=tmux-1.8 par_tmux
|
seq 101 5 200 | PARALLEL_TMUX=tmux-1.8 par_tmux
|
||||||
seq 201 231 | PARALLEL_TMUX=tmux-1.8 par_tmux
|
seq 201 5 300 | PARALLEL_TMUX=tmux-1.8 par_tmux
|
||||||
|
seq 301 5 400 | PARALLEL_TMUX=tmux-1.8 par_tmux
|
||||||
|
seq 401 5 460 | PARALLEL_TMUX=tmux-1.8 par_tmux
|
||||||
|
|
||||||
echo '### tmux-1.8 fails'
|
echo '### tmux-1.8 fails'
|
||||||
echo 232 | PARALLEL_TMUX=tmux-1.8 par_tmux
|
echo 462 | PARALLEL_TMUX=tmux-1.8 par_tmux
|
||||||
echo 233 | PARALLEL_TMUX=tmux-1.8 par_tmux
|
echo 463 | PARALLEL_TMUX=tmux-1.8 par_tmux
|
||||||
echo 234 | PARALLEL_TMUX=tmux-1.8 par_tmux
|
echo 464 | PARALLEL_TMUX=tmux-1.8 par_tmux
|
||||||
|
|
||||||
echo '### tmux-1.8 0..255 ascii'
|
echo '### tmux-1.8 0..255 ascii'
|
||||||
perl -e 'print map { ($_, map { pack("c*",$_) } grep { $_>=1 && $_!=10 } $_-110..$_),"\n" } 0..255' |
|
perl -e 'print map { ($_, map { pack("c*",$_) } grep { $_>=1 && $_!=10 } $_-110..$_),"\n" } 0..255' |
|
||||||
|
|
|
@ -49,18 +49,6 @@ echo '### Test --spreadstdin -k';
|
||||||
echo '### Test --spreadstdin --files';
|
echo '### Test --spreadstdin --files';
|
||||||
nice seq 1 1000000 | shuf | $NICEPAR --files --recend "\n" -j10 --spreadstdin sort -n | parallel -Xj1 sort -nm {} ";"rm {} | md5sum
|
nice seq 1 1000000 | shuf | $NICEPAR --files --recend "\n" -j10 --spreadstdin sort -n | parallel -Xj1 sort -nm {} ";"rm {} | md5sum
|
||||||
|
|
||||||
echo '### Test --number-of-cpus';
|
|
||||||
stdout $NICEPAR --number-of-cpus
|
|
||||||
|
|
||||||
echo '### Test --number-of-cores';
|
|
||||||
stdout $NICEPAR --number-of-cores
|
|
||||||
|
|
||||||
echo '### Test --use-cpus-instead-of-cores';
|
|
||||||
(seq 1 8 | stdout parallel --use-cpus-instead-of-cores -j100% sleep) && echo CPUs done &
|
|
||||||
(seq 1 8 | stdout parallel -j100% sleep) && echo cores done &
|
|
||||||
echo 'Cores should complete first on machines with less than 8 physical CPUs';
|
|
||||||
wait
|
|
||||||
|
|
||||||
echo '### Test --tag ::: a ::: b';
|
echo '### Test --tag ::: a ::: b';
|
||||||
stdout $NICEPAR -k --tag -j1 echo stderr-{.} ">&2;" echo stdout-{} ::: a ::: b
|
stdout $NICEPAR -k --tag -j1 echo stderr-{.} ">&2;" echo stdout-{} ::: a ::: b
|
||||||
|
|
||||||
|
|
|
@ -348,9 +348,9 @@ echo '**'
|
||||||
echo 'bug #47290: xargs: Warning: a NUL character occurred in the input'
|
echo 'bug #47290: xargs: Warning: a NUL character occurred in the input'
|
||||||
bug #47290: xargs: Warning: a NUL character occurred in the input
|
bug #47290: xargs: Warning: a NUL character occurred in the input
|
||||||
perl -e 'print "foo\0not printed"' | parallel echo
|
perl -e 'print "foo\0not printed"' | parallel echo
|
||||||
foo
|
foo\0not printed
|
||||||
parallel: Warning: a NUL character occurred in the input.
|
parallel: Warning: A NUL character in the input was replaced with \0.
|
||||||
parallel: Warning: It cannot be passed through in the argument list.
|
parallel: Warning: NUL cannot be passed through in the argument list.
|
||||||
parallel: Warning: Did you mean to use the --null option?
|
parallel: Warning: Did you mean to use the --null option?
|
||||||
echo '**'
|
echo '**'
|
||||||
**
|
**
|
||||||
|
@ -979,106 +979,106 @@ h i
|
||||||
97
|
97
|
||||||
98
|
98
|
||||||
99
|
99
|
||||||
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 1
|
perl -e '$r=rand(shift);for($f=0;$f<$r;$f++){$a="a"x100};print shift,"\n"' 10000 1
|
||||||
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 10
|
perl -e '$r=rand(shift);for($f=0;$f<$r;$f++){$a="a"x100};print shift,"\n"' 10000 10
|
||||||
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 100
|
perl -e '$r=rand(shift);for($f=0;$f<$r;$f++){$a="a"x100};print shift,"\n"' 10000 100
|
||||||
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 11
|
perl -e '$r=rand(shift);for($f=0;$f<$r;$f++){$a="a"x100};print shift,"\n"' 10000 11
|
||||||
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 12
|
perl -e '$r=rand(shift);for($f=0;$f<$r;$f++){$a="a"x100};print shift,"\n"' 10000 12
|
||||||
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 13
|
perl -e '$r=rand(shift);for($f=0;$f<$r;$f++){$a="a"x100};print shift,"\n"' 10000 13
|
||||||
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 14
|
perl -e '$r=rand(shift);for($f=0;$f<$r;$f++){$a="a"x100};print shift,"\n"' 10000 14
|
||||||
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 15
|
perl -e '$r=rand(shift);for($f=0;$f<$r;$f++){$a="a"x100};print shift,"\n"' 10000 15
|
||||||
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 16
|
perl -e '$r=rand(shift);for($f=0;$f<$r;$f++){$a="a"x100};print shift,"\n"' 10000 16
|
||||||
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 17
|
perl -e '$r=rand(shift);for($f=0;$f<$r;$f++){$a="a"x100};print shift,"\n"' 10000 17
|
||||||
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 18
|
perl -e '$r=rand(shift);for($f=0;$f<$r;$f++){$a="a"x100};print shift,"\n"' 10000 18
|
||||||
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 19
|
perl -e '$r=rand(shift);for($f=0;$f<$r;$f++){$a="a"x100};print shift,"\n"' 10000 19
|
||||||
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 2
|
perl -e '$r=rand(shift);for($f=0;$f<$r;$f++){$a="a"x100};print shift,"\n"' 10000 2
|
||||||
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 20
|
perl -e '$r=rand(shift);for($f=0;$f<$r;$f++){$a="a"x100};print shift,"\n"' 10000 20
|
||||||
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 21
|
perl -e '$r=rand(shift);for($f=0;$f<$r;$f++){$a="a"x100};print shift,"\n"' 10000 21
|
||||||
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 22
|
perl -e '$r=rand(shift);for($f=0;$f<$r;$f++){$a="a"x100};print shift,"\n"' 10000 22
|
||||||
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 23
|
perl -e '$r=rand(shift);for($f=0;$f<$r;$f++){$a="a"x100};print shift,"\n"' 10000 23
|
||||||
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 24
|
perl -e '$r=rand(shift);for($f=0;$f<$r;$f++){$a="a"x100};print shift,"\n"' 10000 24
|
||||||
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 25
|
perl -e '$r=rand(shift);for($f=0;$f<$r;$f++){$a="a"x100};print shift,"\n"' 10000 25
|
||||||
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 26
|
perl -e '$r=rand(shift);for($f=0;$f<$r;$f++){$a="a"x100};print shift,"\n"' 10000 26
|
||||||
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 27
|
perl -e '$r=rand(shift);for($f=0;$f<$r;$f++){$a="a"x100};print shift,"\n"' 10000 27
|
||||||
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 28
|
perl -e '$r=rand(shift);for($f=0;$f<$r;$f++){$a="a"x100};print shift,"\n"' 10000 28
|
||||||
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 29
|
perl -e '$r=rand(shift);for($f=0;$f<$r;$f++){$a="a"x100};print shift,"\n"' 10000 29
|
||||||
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 3
|
perl -e '$r=rand(shift);for($f=0;$f<$r;$f++){$a="a"x100};print shift,"\n"' 10000 3
|
||||||
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 30
|
perl -e '$r=rand(shift);for($f=0;$f<$r;$f++){$a="a"x100};print shift,"\n"' 10000 30
|
||||||
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 31
|
perl -e '$r=rand(shift);for($f=0;$f<$r;$f++){$a="a"x100};print shift,"\n"' 10000 31
|
||||||
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 32
|
perl -e '$r=rand(shift);for($f=0;$f<$r;$f++){$a="a"x100};print shift,"\n"' 10000 32
|
||||||
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 33
|
perl -e '$r=rand(shift);for($f=0;$f<$r;$f++){$a="a"x100};print shift,"\n"' 10000 33
|
||||||
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 34
|
perl -e '$r=rand(shift);for($f=0;$f<$r;$f++){$a="a"x100};print shift,"\n"' 10000 34
|
||||||
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 35
|
perl -e '$r=rand(shift);for($f=0;$f<$r;$f++){$a="a"x100};print shift,"\n"' 10000 35
|
||||||
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 36
|
perl -e '$r=rand(shift);for($f=0;$f<$r;$f++){$a="a"x100};print shift,"\n"' 10000 36
|
||||||
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 37
|
perl -e '$r=rand(shift);for($f=0;$f<$r;$f++){$a="a"x100};print shift,"\n"' 10000 37
|
||||||
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 38
|
perl -e '$r=rand(shift);for($f=0;$f<$r;$f++){$a="a"x100};print shift,"\n"' 10000 38
|
||||||
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 39
|
perl -e '$r=rand(shift);for($f=0;$f<$r;$f++){$a="a"x100};print shift,"\n"' 10000 39
|
||||||
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 4
|
perl -e '$r=rand(shift);for($f=0;$f<$r;$f++){$a="a"x100};print shift,"\n"' 10000 4
|
||||||
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 40
|
perl -e '$r=rand(shift);for($f=0;$f<$r;$f++){$a="a"x100};print shift,"\n"' 10000 40
|
||||||
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 41
|
perl -e '$r=rand(shift);for($f=0;$f<$r;$f++){$a="a"x100};print shift,"\n"' 10000 41
|
||||||
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 42
|
perl -e '$r=rand(shift);for($f=0;$f<$r;$f++){$a="a"x100};print shift,"\n"' 10000 42
|
||||||
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 43
|
perl -e '$r=rand(shift);for($f=0;$f<$r;$f++){$a="a"x100};print shift,"\n"' 10000 43
|
||||||
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 44
|
perl -e '$r=rand(shift);for($f=0;$f<$r;$f++){$a="a"x100};print shift,"\n"' 10000 44
|
||||||
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 45
|
perl -e '$r=rand(shift);for($f=0;$f<$r;$f++){$a="a"x100};print shift,"\n"' 10000 45
|
||||||
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 46
|
perl -e '$r=rand(shift);for($f=0;$f<$r;$f++){$a="a"x100};print shift,"\n"' 10000 46
|
||||||
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 47
|
perl -e '$r=rand(shift);for($f=0;$f<$r;$f++){$a="a"x100};print shift,"\n"' 10000 47
|
||||||
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 48
|
perl -e '$r=rand(shift);for($f=0;$f<$r;$f++){$a="a"x100};print shift,"\n"' 10000 48
|
||||||
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 49
|
perl -e '$r=rand(shift);for($f=0;$f<$r;$f++){$a="a"x100};print shift,"\n"' 10000 49
|
||||||
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 5
|
perl -e '$r=rand(shift);for($f=0;$f<$r;$f++){$a="a"x100};print shift,"\n"' 10000 5
|
||||||
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 50
|
perl -e '$r=rand(shift);for($f=0;$f<$r;$f++){$a="a"x100};print shift,"\n"' 10000 50
|
||||||
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 51
|
perl -e '$r=rand(shift);for($f=0;$f<$r;$f++){$a="a"x100};print shift,"\n"' 10000 51
|
||||||
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 52
|
perl -e '$r=rand(shift);for($f=0;$f<$r;$f++){$a="a"x100};print shift,"\n"' 10000 52
|
||||||
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 53
|
perl -e '$r=rand(shift);for($f=0;$f<$r;$f++){$a="a"x100};print shift,"\n"' 10000 53
|
||||||
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 54
|
perl -e '$r=rand(shift);for($f=0;$f<$r;$f++){$a="a"x100};print shift,"\n"' 10000 54
|
||||||
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 55
|
perl -e '$r=rand(shift);for($f=0;$f<$r;$f++){$a="a"x100};print shift,"\n"' 10000 55
|
||||||
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 56
|
perl -e '$r=rand(shift);for($f=0;$f<$r;$f++){$a="a"x100};print shift,"\n"' 10000 56
|
||||||
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 57
|
perl -e '$r=rand(shift);for($f=0;$f<$r;$f++){$a="a"x100};print shift,"\n"' 10000 57
|
||||||
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 58
|
perl -e '$r=rand(shift);for($f=0;$f<$r;$f++){$a="a"x100};print shift,"\n"' 10000 58
|
||||||
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 59
|
perl -e '$r=rand(shift);for($f=0;$f<$r;$f++){$a="a"x100};print shift,"\n"' 10000 59
|
||||||
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 6
|
perl -e '$r=rand(shift);for($f=0;$f<$r;$f++){$a="a"x100};print shift,"\n"' 10000 6
|
||||||
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 60
|
perl -e '$r=rand(shift);for($f=0;$f<$r;$f++){$a="a"x100};print shift,"\n"' 10000 60
|
||||||
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 61
|
perl -e '$r=rand(shift);for($f=0;$f<$r;$f++){$a="a"x100};print shift,"\n"' 10000 61
|
||||||
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 62
|
perl -e '$r=rand(shift);for($f=0;$f<$r;$f++){$a="a"x100};print shift,"\n"' 10000 62
|
||||||
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 63
|
perl -e '$r=rand(shift);for($f=0;$f<$r;$f++){$a="a"x100};print shift,"\n"' 10000 63
|
||||||
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 64
|
perl -e '$r=rand(shift);for($f=0;$f<$r;$f++){$a="a"x100};print shift,"\n"' 10000 64
|
||||||
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 65
|
perl -e '$r=rand(shift);for($f=0;$f<$r;$f++){$a="a"x100};print shift,"\n"' 10000 65
|
||||||
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 66
|
perl -e '$r=rand(shift);for($f=0;$f<$r;$f++){$a="a"x100};print shift,"\n"' 10000 66
|
||||||
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 67
|
perl -e '$r=rand(shift);for($f=0;$f<$r;$f++){$a="a"x100};print shift,"\n"' 10000 67
|
||||||
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 68
|
perl -e '$r=rand(shift);for($f=0;$f<$r;$f++){$a="a"x100};print shift,"\n"' 10000 68
|
||||||
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 69
|
perl -e '$r=rand(shift);for($f=0;$f<$r;$f++){$a="a"x100};print shift,"\n"' 10000 69
|
||||||
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 7
|
perl -e '$r=rand(shift);for($f=0;$f<$r;$f++){$a="a"x100};print shift,"\n"' 10000 7
|
||||||
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 70
|
perl -e '$r=rand(shift);for($f=0;$f<$r;$f++){$a="a"x100};print shift,"\n"' 10000 70
|
||||||
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 71
|
perl -e '$r=rand(shift);for($f=0;$f<$r;$f++){$a="a"x100};print shift,"\n"' 10000 71
|
||||||
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 72
|
perl -e '$r=rand(shift);for($f=0;$f<$r;$f++){$a="a"x100};print shift,"\n"' 10000 72
|
||||||
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 73
|
perl -e '$r=rand(shift);for($f=0;$f<$r;$f++){$a="a"x100};print shift,"\n"' 10000 73
|
||||||
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 74
|
perl -e '$r=rand(shift);for($f=0;$f<$r;$f++){$a="a"x100};print shift,"\n"' 10000 74
|
||||||
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 75
|
perl -e '$r=rand(shift);for($f=0;$f<$r;$f++){$a="a"x100};print shift,"\n"' 10000 75
|
||||||
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 76
|
perl -e '$r=rand(shift);for($f=0;$f<$r;$f++){$a="a"x100};print shift,"\n"' 10000 76
|
||||||
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 77
|
perl -e '$r=rand(shift);for($f=0;$f<$r;$f++){$a="a"x100};print shift,"\n"' 10000 77
|
||||||
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 78
|
perl -e '$r=rand(shift);for($f=0;$f<$r;$f++){$a="a"x100};print shift,"\n"' 10000 78
|
||||||
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 79
|
perl -e '$r=rand(shift);for($f=0;$f<$r;$f++){$a="a"x100};print shift,"\n"' 10000 79
|
||||||
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 8
|
perl -e '$r=rand(shift);for($f=0;$f<$r;$f++){$a="a"x100};print shift,"\n"' 10000 8
|
||||||
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 80
|
perl -e '$r=rand(shift);for($f=0;$f<$r;$f++){$a="a"x100};print shift,"\n"' 10000 80
|
||||||
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 81
|
perl -e '$r=rand(shift);for($f=0;$f<$r;$f++){$a="a"x100};print shift,"\n"' 10000 81
|
||||||
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 82
|
perl -e '$r=rand(shift);for($f=0;$f<$r;$f++){$a="a"x100};print shift,"\n"' 10000 82
|
||||||
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 83
|
perl -e '$r=rand(shift);for($f=0;$f<$r;$f++){$a="a"x100};print shift,"\n"' 10000 83
|
||||||
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 84
|
perl -e '$r=rand(shift);for($f=0;$f<$r;$f++){$a="a"x100};print shift,"\n"' 10000 84
|
||||||
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 85
|
perl -e '$r=rand(shift);for($f=0;$f<$r;$f++){$a="a"x100};print shift,"\n"' 10000 85
|
||||||
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 86
|
perl -e '$r=rand(shift);for($f=0;$f<$r;$f++){$a="a"x100};print shift,"\n"' 10000 86
|
||||||
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 87
|
perl -e '$r=rand(shift);for($f=0;$f<$r;$f++){$a="a"x100};print shift,"\n"' 10000 87
|
||||||
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 88
|
perl -e '$r=rand(shift);for($f=0;$f<$r;$f++){$a="a"x100};print shift,"\n"' 10000 88
|
||||||
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 89
|
perl -e '$r=rand(shift);for($f=0;$f<$r;$f++){$a="a"x100};print shift,"\n"' 10000 89
|
||||||
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 9
|
perl -e '$r=rand(shift);for($f=0;$f<$r;$f++){$a="a"x100};print shift,"\n"' 10000 9
|
||||||
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 90
|
perl -e '$r=rand(shift);for($f=0;$f<$r;$f++){$a="a"x100};print shift,"\n"' 10000 90
|
||||||
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 91
|
perl -e '$r=rand(shift);for($f=0;$f<$r;$f++){$a="a"x100};print shift,"\n"' 10000 91
|
||||||
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 92
|
perl -e '$r=rand(shift);for($f=0;$f<$r;$f++){$a="a"x100};print shift,"\n"' 10000 92
|
||||||
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 93
|
perl -e '$r=rand(shift);for($f=0;$f<$r;$f++){$a="a"x100};print shift,"\n"' 10000 93
|
||||||
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 94
|
perl -e '$r=rand(shift);for($f=0;$f<$r;$f++){$a="a"x100};print shift,"\n"' 10000 94
|
||||||
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 95
|
perl -e '$r=rand(shift);for($f=0;$f<$r;$f++){$a="a"x100};print shift,"\n"' 10000 95
|
||||||
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 96
|
perl -e '$r=rand(shift);for($f=0;$f<$r;$f++){$a="a"x100};print shift,"\n"' 10000 96
|
||||||
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 97
|
perl -e '$r=rand(shift);for($f=0;$f<$r;$f++){$a="a"x100};print shift,"\n"' 10000 97
|
||||||
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 98
|
perl -e '$r=rand(shift);for($f=0;$f<$r;$f++){$a="a"x100};print shift,"\n"' 10000 98
|
||||||
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 99
|
perl -e '$r=rand(shift);for($f=0;$f<$r;$f++){$a="a"x100};print shift,"\n"' 10000 99
|
||||||
echo '### Test 0-arguments'
|
echo '### Test 0-arguments'
|
||||||
### Test 0-arguments
|
### Test 0-arguments
|
||||||
seq 1 2 | parallel -k -n0 echo n0
|
seq 1 2 | parallel -k -n0 echo n0
|
||||||
|
@ -1321,7 +1321,7 @@ par_expansion_in_colsep AB
|
||||||
par_extglob env_parallel
|
par_extglob env_parallel
|
||||||
par_file_ending_in_newline ### Hans found a bug giving unitialized variable
|
par_file_ending_in_newline ### Hans found a bug giving unitialized variable
|
||||||
par_file_ending_in_newline gzip /tmp/parallel_f1
|
par_file_ending_in_newline gzip /tmp/parallel_f1
|
||||||
par_file_ending_in_newline gzip /tmp/parallel_f2'
|
par_file_ending_in_newline gzip '/tmp/parallel_f2
|
||||||
par_file_ending_in_newline '
|
par_file_ending_in_newline '
|
||||||
par_halt_one_job # Halt soon if there is a single job
|
par_halt_one_job # Halt soon if there is a single job
|
||||||
par_halt_one_job should run 0 1 = job 1 2
|
par_halt_one_job should run 0 1 = job 1 2
|
||||||
|
@ -1372,8 +1372,8 @@ par_link_files_as_only_arg 3 3 3
|
||||||
par_locale_quoting ### quoting in different locales
|
par_locale_quoting ### quoting in different locales
|
||||||
par_locale_quoting £`/tmp/test£`
|
par_locale_quoting £`/tmp/test£`
|
||||||
par_locale_quoting $LC_ALL £`/tmp/test£`
|
par_locale_quoting $LC_ALL £`/tmp/test£`
|
||||||
par_locale_quoting echo $LC_ALL \£\`/tmp/test\£\`
|
par_locale_quoting echo $LC_ALL '£`/tmp/test£`'
|
||||||
par_locale_quoting C £`/tmp/test£`
|
par_locale_quoting zh_HK.big5hkscs £`/tmp/test£`
|
||||||
par_newline_in_command Command with newline and positional replacement strings
|
par_newline_in_command Command with newline and positional replacement strings
|
||||||
par_newline_in_command O K
|
par_newline_in_command O K
|
||||||
par_no_command_given ### Test bugfix if no command given
|
par_no_command_given ### Test bugfix if no command given
|
||||||
|
|
|
@ -256,6 +256,9 @@ par_linebuffer_tag_slow_output a a
|
||||||
par_linebuffer_tag_slow_output a
|
par_linebuffer_tag_slow_output a
|
||||||
par_linebuffer_tag_slow_output b b
|
par_linebuffer_tag_slow_output b b
|
||||||
par_linebuffer_tag_slow_output b
|
par_linebuffer_tag_slow_output b
|
||||||
|
par_long_line_remote ### Deal with long command lines on remote servers
|
||||||
|
par_long_line_remote 2 6 30006
|
||||||
|
par_long_line_remote 2 50 250050
|
||||||
par_maxlinelen_X_I ### Test max line length -X -I
|
par_maxlinelen_X_I ### Test max line length -X -I
|
||||||
par_maxlinelen_X_I 3cfc69ee81b0fe7fdbe8eb059ad2da61 -
|
par_maxlinelen_X_I 3cfc69ee81b0fe7fdbe8eb059ad2da61 -
|
||||||
par_maxlinelen_X_I Chars per line (817788/7): 116826
|
par_maxlinelen_X_I Chars per line (817788/7): 116826
|
||||||
|
@ -523,6 +526,15 @@ par_slow_total_jobs b
|
||||||
par_slow_total_jobs 1
|
par_slow_total_jobs 1
|
||||||
par_slow_total_jobs 2
|
par_slow_total_jobs 2
|
||||||
par_slow_total_jobs parallel: Warning: Reading X arguments took longer than XX seconds.
|
par_slow_total_jobs parallel: Warning: Reading X arguments took longer than XX seconds.
|
||||||
|
par_sockets_cores_threads ### Test --number-of-sockets/cores/threads
|
||||||
|
par_sockets_cores_threads 1
|
||||||
|
par_sockets_cores_threads 2
|
||||||
|
par_sockets_cores_threads 2
|
||||||
|
par_sockets_cores_threads 2
|
||||||
|
par_sockets_cores_threads ### Test --use-sockets-instead-of-threads
|
||||||
|
par_sockets_cores_threads threads done
|
||||||
|
par_sockets_cores_threads sockets done
|
||||||
|
par_sockets_cores_threads Threads should complete first on machines with less than 8 sockets
|
||||||
par_tmux_fg bug #50107: --tmux --fg should also write how to access it
|
par_tmux_fg bug #50107: --tmux --fg should also write how to access it
|
||||||
par_tmux_fg See output with: tmux -S tmp attach
|
par_tmux_fg See output with: tmux -S tmp attach
|
||||||
par_tmux_fg open terminal failed: not a terminal
|
par_tmux_fg open terminal failed: not a terminal
|
||||||
|
|
|
@ -27,84 +27,84 @@ par_failing_compressor Compress with failing (de)compressor
|
||||||
par_failing_compressor Test --tag/--line-buffer/--files in all combinations
|
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 Test working/failing compressor/decompressor in all combinations
|
||||||
par_failing_compressor (-k is used as a dummy argument)
|
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 echo ::: C=cat\;true,D=cat\;true
|
par_failing_compressor parallel -k --tag --line-buffer --files --compress --compress-program 'cat;true' --decompress-program 'cat;true' echo ::: C='cat;true',D='cat;true'
|
||||||
par_failing_compressor C=cat;true,D=cat;true /tmp/parallel-local-1s-tmpdir/tmpfile
|
par_failing_compressor C=cat;true,D=cat;true /tmp/parallel-local-1s-tmpdir/tmpfile
|
||||||
par_failing_compressor parallel -k --tag --line-buffer --files --compress --compress-program cat\;true --decompress-program cat\;false echo ::: C=cat\;true,D=cat\;false
|
par_failing_compressor parallel -k --tag --line-buffer --files --compress --compress-program 'cat;true' --decompress-program 'cat;false' echo ::: C='cat;true',D='cat;false'
|
||||||
par_failing_compressor C=cat;true,D=cat;false /tmp/parallel-local-1s-tmpdir/tmpfile
|
par_failing_compressor C=cat;true,D=cat;false /tmp/parallel-local-1s-tmpdir/tmpfile
|
||||||
par_failing_compressor parallel -k --tag --line-buffer --files --compress --compress-program cat\;false --decompress-program cat\;true echo ::: C=cat\;false,D=cat\;true
|
par_failing_compressor parallel -k --tag --line-buffer --files --compress --compress-program 'cat;false' --decompress-program 'cat;true' echo ::: C='cat;false',D='cat;true'
|
||||||
par_failing_compressor C=cat;false,D=cat;true /tmp/parallel-local-1s-tmpdir/tmpfile
|
par_failing_compressor C=cat;false,D=cat;true /tmp/parallel-local-1s-tmpdir/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 echo ::: C=cat\;false,D=cat\;false
|
par_failing_compressor parallel -k --tag --line-buffer --files --compress --compress-program 'cat;false' --decompress-program 'cat;false' echo ::: C='cat;false',D='cat;false'
|
||||||
par_failing_compressor C=cat;false,D=cat;false /tmp/parallel-local-1s-tmpdir/tmpfile
|
par_failing_compressor C=cat;false,D=cat;false /tmp/parallel-local-1s-tmpdir/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 echo ::: C=cat\;true,D=cat\;true
|
par_failing_compressor parallel -k --tag --line-buffer -k --compress --compress-program 'cat;true' --decompress-program 'cat;true' echo ::: C='cat;true',D='cat;true'
|
||||||
par_failing_compressor C=cat;true,D=cat;true C=cat;true,D=cat;true
|
par_failing_compressor C=cat;true,D=cat;true C=cat;true,D=cat;true
|
||||||
par_failing_compressor parallel -k --tag --line-buffer -k --compress --compress-program cat\;true --decompress-program cat\;false echo ::: C=cat\;true,D=cat\;false
|
par_failing_compressor parallel -k --tag --line-buffer -k --compress --compress-program 'cat;true' --decompress-program 'cat;false' echo ::: C='cat;true',D='cat;false'
|
||||||
par_failing_compressor C=cat;true,D=cat;false C=cat;true,D=cat;false
|
par_failing_compressor C=cat;true,D=cat;false C=cat;true,D=cat;false
|
||||||
par_failing_compressor parallel -k --tag --line-buffer -k --compress --compress-program cat\;false --decompress-program cat\;true echo ::: C=cat\;false,D=cat\;true
|
par_failing_compressor parallel -k --tag --line-buffer -k --compress --compress-program 'cat;false' --decompress-program 'cat;true' echo ::: C='cat;false',D='cat;true'
|
||||||
par_failing_compressor C=cat;false,D=cat;true C=cat;false,D=cat;true
|
par_failing_compressor C=cat;false,D=cat;true C=cat;false,D=cat;true
|
||||||
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\;false --decompress-program cat\;false echo ::: C=cat\;false,D=cat\;false
|
par_failing_compressor parallel -k --tag --line-buffer -k --compress --compress-program 'cat;false' --decompress-program 'cat;false' echo ::: C='cat;false',D='cat;false'
|
||||||
par_failing_compressor C=cat;false,D=cat;false C=cat;false,D=cat;false
|
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 parallel -k --tag -k --files --compress --compress-program cat\;true --decompress-program cat\;true echo ::: C=cat\;true,D=cat\;true
|
par_failing_compressor parallel -k --tag -k --files --compress --compress-program 'cat;true' --decompress-program 'cat;true' echo ::: C='cat;true',D='cat;true'
|
||||||
par_failing_compressor C=cat;true,D=cat;true /tmp/parallel-local-1s-tmpdir/tmpfile
|
par_failing_compressor C=cat;true,D=cat;true /tmp/parallel-local-1s-tmpdir/tmpfile
|
||||||
par_failing_compressor parallel -k --tag -k --files --compress --compress-program cat\;true --decompress-program cat\;false echo ::: C=cat\;true,D=cat\;false
|
par_failing_compressor parallel -k --tag -k --files --compress --compress-program 'cat;true' --decompress-program 'cat;false' echo ::: C='cat;true',D='cat;false'
|
||||||
par_failing_compressor C=cat;true,D=cat;false /tmp/parallel-local-1s-tmpdir/tmpfile
|
par_failing_compressor C=cat;true,D=cat;false /tmp/parallel-local-1s-tmpdir/tmpfile
|
||||||
par_failing_compressor parallel -k --tag -k --files --compress --compress-program cat\;false --decompress-program cat\;true echo ::: C=cat\;false,D=cat\;true
|
par_failing_compressor parallel -k --tag -k --files --compress --compress-program 'cat;false' --decompress-program 'cat;true' echo ::: C='cat;false',D='cat;true'
|
||||||
par_failing_compressor C=cat;false,D=cat;true /tmp/parallel-local-1s-tmpdir/tmpfile
|
par_failing_compressor C=cat;false,D=cat;true /tmp/parallel-local-1s-tmpdir/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 echo ::: C=cat\;false,D=cat\;false
|
par_failing_compressor parallel -k --tag -k --files --compress --compress-program 'cat;false' --decompress-program 'cat;false' echo ::: C='cat;false',D='cat;false'
|
||||||
par_failing_compressor C=cat;false,D=cat;false /tmp/parallel-local-1s-tmpdir/tmpfile
|
par_failing_compressor C=cat;false,D=cat;false /tmp/parallel-local-1s-tmpdir/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 echo ::: C=cat\;true,D=cat\;true
|
par_failing_compressor parallel -k --tag -k -k --compress --compress-program 'cat;true' --decompress-program 'cat;true' echo ::: C='cat;true',D='cat;true'
|
||||||
par_failing_compressor C=cat;true,D=cat;true C=cat;true,D=cat;true
|
par_failing_compressor C=cat;true,D=cat;true C=cat;true,D=cat;true
|
||||||
par_failing_compressor parallel -k --tag -k -k --compress --compress-program cat\;true --decompress-program cat\;false echo ::: C=cat\;true,D=cat\;false
|
par_failing_compressor parallel -k --tag -k -k --compress --compress-program 'cat;true' --decompress-program 'cat;false' echo ::: C='cat;true',D='cat;false'
|
||||||
par_failing_compressor C=cat;true,D=cat;false C=cat;true,D=cat;false
|
par_failing_compressor C=cat;true,D=cat;false C=cat;true,D=cat;false
|
||||||
par_failing_compressor parallel -k --tag -k -k --compress --compress-program cat\;false --decompress-program cat\;true echo ::: C=cat\;false,D=cat\;true
|
par_failing_compressor parallel -k --tag -k -k --compress --compress-program 'cat;false' --decompress-program 'cat;true' echo ::: C='cat;false',D='cat;true'
|
||||||
par_failing_compressor C=cat;false,D=cat;true C=cat;false,D=cat;true
|
par_failing_compressor C=cat;false,D=cat;true C=cat;false,D=cat;true
|
||||||
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\;false --decompress-program cat\;false echo ::: C=cat\;false,D=cat\;false
|
par_failing_compressor parallel -k --tag -k -k --compress --compress-program 'cat;false' --decompress-program 'cat;false' echo ::: C='cat;false',D='cat;false'
|
||||||
par_failing_compressor C=cat;false,D=cat;false C=cat;false,D=cat;false
|
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 parallel -k -k --line-buffer --files --compress --compress-program cat\;true --decompress-program cat\;true echo ::: C=cat\;true,D=cat\;true
|
par_failing_compressor parallel -k -k --line-buffer --files --compress --compress-program 'cat;true' --decompress-program 'cat;true' echo ::: C='cat;true',D='cat;true'
|
||||||
par_failing_compressor /tmp/parallel-local-1s-tmpdir/tmpfile
|
par_failing_compressor /tmp/parallel-local-1s-tmpdir/tmpfile
|
||||||
par_failing_compressor parallel -k -k --line-buffer --files --compress --compress-program cat\;true --decompress-program cat\;false echo ::: C=cat\;true,D=cat\;false
|
par_failing_compressor parallel -k -k --line-buffer --files --compress --compress-program 'cat;true' --decompress-program 'cat;false' echo ::: C='cat;true',D='cat;false'
|
||||||
par_failing_compressor /tmp/parallel-local-1s-tmpdir/tmpfile
|
par_failing_compressor /tmp/parallel-local-1s-tmpdir/tmpfile
|
||||||
par_failing_compressor parallel -k -k --line-buffer --files --compress --compress-program cat\;false --decompress-program cat\;true echo ::: C=cat\;false,D=cat\;true
|
par_failing_compressor parallel -k -k --line-buffer --files --compress --compress-program 'cat;false' --decompress-program 'cat;true' echo ::: C='cat;false',D='cat;true'
|
||||||
par_failing_compressor /tmp/parallel-local-1s-tmpdir/tmpfile
|
par_failing_compressor /tmp/parallel-local-1s-tmpdir/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 echo ::: C=cat\;false,D=cat\;false
|
par_failing_compressor parallel -k -k --line-buffer --files --compress --compress-program 'cat;false' --decompress-program 'cat;false' echo ::: C='cat;false',D='cat;false'
|
||||||
par_failing_compressor /tmp/parallel-local-1s-tmpdir/tmpfile
|
par_failing_compressor /tmp/parallel-local-1s-tmpdir/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 echo ::: C=cat\;true,D=cat\;true
|
par_failing_compressor parallel -k -k --line-buffer -k --compress --compress-program 'cat;true' --decompress-program 'cat;true' echo ::: C='cat;true',D='cat;true'
|
||||||
par_failing_compressor C=cat;true,D=cat;true
|
par_failing_compressor C=cat;true,D=cat;true
|
||||||
par_failing_compressor parallel -k -k --line-buffer -k --compress --compress-program cat\;true --decompress-program cat\;false echo ::: C=cat\;true,D=cat\;false
|
par_failing_compressor parallel -k -k --line-buffer -k --compress --compress-program 'cat;true' --decompress-program 'cat;false' echo ::: C='cat;true',D='cat;false'
|
||||||
par_failing_compressor C=cat;true,D=cat;false
|
par_failing_compressor C=cat;true,D=cat;false
|
||||||
par_failing_compressor parallel -k -k --line-buffer -k --compress --compress-program cat\;false --decompress-program cat\;true echo ::: C=cat\;false,D=cat\;true
|
par_failing_compressor parallel -k -k --line-buffer -k --compress --compress-program 'cat;false' --decompress-program 'cat;true' echo ::: C='cat;false',D='cat;true'
|
||||||
par_failing_compressor C=cat;false,D=cat;true
|
par_failing_compressor C=cat;false,D=cat;true
|
||||||
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\;false --decompress-program cat\;false echo ::: C=cat\;false,D=cat\;false
|
par_failing_compressor parallel -k -k --line-buffer -k --compress --compress-program 'cat;false' --decompress-program 'cat;false' echo ::: C='cat;false',D='cat;false'
|
||||||
par_failing_compressor C=cat;false,D=cat;false
|
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 parallel -k -k -k --files --compress --compress-program cat\;true --decompress-program cat\;true echo ::: C=cat\;true,D=cat\;true
|
par_failing_compressor parallel -k -k -k --files --compress --compress-program 'cat;true' --decompress-program 'cat;true' echo ::: C='cat;true',D='cat;true'
|
||||||
par_failing_compressor /tmp/parallel-local-1s-tmpdir/tmpfile
|
par_failing_compressor /tmp/parallel-local-1s-tmpdir/tmpfile
|
||||||
par_failing_compressor parallel -k -k -k --files --compress --compress-program cat\;true --decompress-program cat\;false echo ::: C=cat\;true,D=cat\;false
|
par_failing_compressor parallel -k -k -k --files --compress --compress-program 'cat;true' --decompress-program 'cat;false' echo ::: C='cat;true',D='cat;false'
|
||||||
par_failing_compressor /tmp/parallel-local-1s-tmpdir/tmpfile
|
par_failing_compressor /tmp/parallel-local-1s-tmpdir/tmpfile
|
||||||
par_failing_compressor parallel -k -k -k --files --compress --compress-program cat\;false --decompress-program cat\;true echo ::: C=cat\;false,D=cat\;true
|
par_failing_compressor parallel -k -k -k --files --compress --compress-program 'cat;false' --decompress-program 'cat;true' echo ::: C='cat;false',D='cat;true'
|
||||||
par_failing_compressor /tmp/parallel-local-1s-tmpdir/tmpfile
|
par_failing_compressor /tmp/parallel-local-1s-tmpdir/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 echo ::: C=cat\;false,D=cat\;false
|
par_failing_compressor parallel -k -k -k --files --compress --compress-program 'cat;false' --decompress-program 'cat;false' echo ::: C='cat;false',D='cat;false'
|
||||||
par_failing_compressor /tmp/parallel-local-1s-tmpdir/tmpfile
|
par_failing_compressor /tmp/parallel-local-1s-tmpdir/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 echo ::: C=cat\;true,D=cat\;true
|
par_failing_compressor parallel -k -k -k -k --compress --compress-program 'cat;true' --decompress-program 'cat;true' echo ::: C='cat;true',D='cat;true'
|
||||||
par_failing_compressor C=cat;true,D=cat;true
|
par_failing_compressor C=cat;true,D=cat;true
|
||||||
par_failing_compressor parallel -k -k -k -k --compress --compress-program cat\;true --decompress-program cat\;false echo ::: C=cat\;true,D=cat\;false
|
par_failing_compressor parallel -k -k -k -k --compress --compress-program 'cat;true' --decompress-program 'cat;false' echo ::: C='cat;true',D='cat;false'
|
||||||
par_failing_compressor C=cat;true,D=cat;false
|
par_failing_compressor C=cat;true,D=cat;false
|
||||||
par_failing_compressor parallel -k -k -k -k --compress --compress-program cat\;false --decompress-program cat\;true echo ::: C=cat\;false,D=cat\;true
|
par_failing_compressor parallel -k -k -k -k --compress --compress-program 'cat;false' --decompress-program 'cat;true' echo ::: C='cat;false',D='cat;true'
|
||||||
par_failing_compressor C=cat;false,D=cat;true
|
par_failing_compressor C=cat;false,D=cat;true
|
||||||
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\;false --decompress-program cat\;false echo ::: C=cat\;false,D=cat\;false
|
par_failing_compressor parallel -k -k -k -k --compress --compress-program 'cat;false' --decompress-program 'cat;false' echo ::: C='cat;false',D='cat;false'
|
||||||
par_failing_compressor C=cat;false,D=cat;false
|
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_fifo_under_csh ### Test --fifo under csh
|
par_fifo_under_csh ### Test --fifo under csh
|
||||||
|
@ -371,26 +371,26 @@ par_result /tmp/parallel_results_test/testC/a/II/b/IIII/seq
|
||||||
par_result /tmp/parallel_results_test/testC/a/II/b/IIII/stderr
|
par_result /tmp/parallel_results_test/testC/a/II/b/IIII/stderr
|
||||||
par_result /tmp/parallel_results_test/testC/a/II/b/IIII/stdout
|
par_result /tmp/parallel_results_test/testC/a/II/b/IIII/stdout
|
||||||
par_result ### Test --results --header : piped
|
par_result ### Test --results --header : piped
|
||||||
par_result parallel: Warning: a NUL character occurred in the input.
|
par_result parallel: Warning: A NUL character in the input was replaced with \0.
|
||||||
par_result parallel: Warning: It cannot be passed through in the argument list.
|
par_result parallel: Warning: NUL cannot be passed through in the argument list.
|
||||||
par_result parallel: Warning: Did you mean to use the --null option?
|
par_result parallel: Warning: Did you mean to use the --null option?
|
||||||
par_result /tmp/parallel_results_test/testF/Col/backslash\\tab/2
|
par_result /tmp/parallel_results_test/testF/Col/backslash\\tab/2
|
||||||
par_result /tmp/parallel_results_test/testF/Col/backslash\\tab/2/slash\_null\0eof
|
par_result /tmp/parallel_results_test/testF/Col/backslash\\tab/2/slash\_null\\0eof
|
||||||
par_result /tmp/parallel_results_test/testF/Col/backslash\\tab/2/slash\_null\0eof/seq
|
par_result /tmp/parallel_results_test/testF/Col/backslash\\tab/2/slash\_null\\0eof/seq
|
||||||
par_result /tmp/parallel_results_test/testF/Col/backslash\\tab/2/slash\_null\0eof/stderr
|
par_result /tmp/parallel_results_test/testF/Col/backslash\\tab/2/slash\_null\\0eof/stderr
|
||||||
par_result /tmp/parallel_results_test/testF/Col/backslash\\tab/2/slash\_null\0eof/stdout
|
par_result /tmp/parallel_results_test/testF/Col/backslash\\tab/2/slash\_null\\0eof/stdout
|
||||||
par_result ### Test --results --header : piped - non-existing column header
|
par_result ### Test --results --header : piped - non-existing column header
|
||||||
par_result parallel: Warning: a NUL character occurred in the input.
|
par_result parallel: Warning: A NUL character in the input was replaced with \0.
|
||||||
par_result parallel: Warning: It cannot be passed through in the argument list.
|
par_result parallel: Warning: NUL cannot be passed through in the argument list.
|
||||||
par_result parallel: Warning: Did you mean to use the --null option?
|
par_result parallel: Warning: Did you mean to use the --null option?
|
||||||
par_result /tmp/parallel_results_test/testG/
|
par_result /tmp/parallel_results_test/testG/
|
||||||
par_result /tmp/parallel_results_test/testG/Col1
|
par_result /tmp/parallel_results_test/testG/Col1
|
||||||
par_result /tmp/parallel_results_test/testG/Col1/backslash\\tab
|
par_result /tmp/parallel_results_test/testG/Col1/backslash\\tab
|
||||||
par_result /tmp/parallel_results_test/testG/Col1/backslash\\tab/2
|
par_result /tmp/parallel_results_test/testG/Col1/backslash\\tab/2
|
||||||
par_result /tmp/parallel_results_test/testG/Col1/backslash\\tab/2/slash\_null\0eof
|
par_result /tmp/parallel_results_test/testG/Col1/backslash\\tab/2/slash\_null\\0eof
|
||||||
par_result /tmp/parallel_results_test/testG/Col1/backslash\\tab/2/slash\_null\0eof/seq
|
par_result /tmp/parallel_results_test/testG/Col1/backslash\\tab/2/slash\_null\\0eof/seq
|
||||||
par_result /tmp/parallel_results_test/testG/Col1/backslash\\tab/2/slash\_null\0eof/stderr
|
par_result /tmp/parallel_results_test/testG/Col1/backslash\\tab/2/slash\_null\\0eof/stderr
|
||||||
par_result /tmp/parallel_results_test/testG/Col1/backslash\\tab/2/slash\_null\0eof/stdout
|
par_result /tmp/parallel_results_test/testG/Col1/backslash\\tab/2/slash\_null\\0eof/stdout
|
||||||
par_result /tmp/parallel_results_test/testG/Col1/v1
|
par_result /tmp/parallel_results_test/testG/Col1/v1
|
||||||
par_result /tmp/parallel_results_test/testG/Col1/v1/2
|
par_result /tmp/parallel_results_test/testG/Col1/v1/2
|
||||||
par_result /tmp/parallel_results_test/testG/Col1/v1/2/v2
|
par_result /tmp/parallel_results_test/testG/Col1/v1/2/v2
|
||||||
|
|
|
@ -108,8 +108,8 @@ par_macron
|
||||||
par_macron "¯" ¯
|
par_macron "¯" ¯
|
||||||
par_macron ¯®
|
par_macron ¯®
|
||||||
par_macron ¯®
|
par_macron ¯®
|
||||||
par_macron ¯® ¯®
|
par_macron ¯® ¯
|
||||||
par_macron ¯® ¯®
|
par_macron ¯® ¯
|
||||||
par_macron ¯®
|
par_macron ¯®
|
||||||
par_macron ¯® ¯
|
par_macron ¯® ¯
|
||||||
par_macron "¯®" ¯
|
par_macron "¯®" ¯
|
||||||
|
@ -164,41 +164,41 @@ par_race_condition1 8
|
||||||
par_race_condition1 9
|
par_race_condition1 9
|
||||||
par_race_condition1 10
|
par_race_condition1 10
|
||||||
par_shellquote ### Test --shellquote in all shells
|
par_shellquote ### Test --shellquote in all shells
|
||||||
par_shellquote ash \\\\\\\\ '
|
par_shellquote ash '
|
||||||
par_shellquote ash '\\\
\\\\\\\\\\\\\\ \!\"\#\$%\&\'\(\)\*+,-./0123456789:\;\<\=\>\?@ABCDEFGHIJKLMNOPQRSTUVWXYZ\[\\\]\^_\`abcdefghijklmnopqrstuvwxyz\{\|\}\~€<7F>\‚\ƒ\„\…\†\‡\ˆ\‰\Š\‹\Œ\<5C>\Ž\<5C>\<5C>\‘\’\“\”\•\–\—\˜\™\š\›\œ\<5C>\ž\Ÿ\ \¡\¢\£\¤\¥\¦\§\¨\©\ª\«\¬\\®\¯\°\±\²\³\´\µ\¶\·\¸\¹\º\»\¼\½\¾\¿\À\Á\Â\Ã\Ä\Å\Æ\Ç\È\É\Ê\Ë\Ì\Í\Î\Ï\Ð\Ñ\Ò\Ó\Ô\Õ\Ö\×\Ø\Ù\Ú\Û\Ü\Ý\Þ\ß\à\á\â\ã\ä\å\æ\ç\è\é\ê\ë\ì\í\î\ï\ð\ñ\ò\ó\ô\õ\ö\÷\ø\ù\ú\û\ü\ý\þ\ÿ
|
par_shellquote ash
!"#$%&'"'"'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€<7F>‚ƒ„…†‡ˆ‰Š‹Œ<E280B9>Ž<EFBFBD><C5BD>‘’“”•–—˜™š›œ<E280BA>žŸ ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ'
|
||||||
par_shellquote bash \\\\\\\\ '
|
par_shellquote bash '
|
||||||
par_shellquote bash '\\\
\\\\\\\\\\\\\\ \!\"\#\$%\&\'\(\)\*+,-./0123456789:\;\<\=\>\?@ABCDEFGHIJKLMNOPQRSTUVWXYZ\[\\\]\^_\`abcdefghijklmnopqrstuvwxyz\{\|\}\~€<7F>\‚\ƒ\„\…\†\‡\ˆ\‰\Š\‹\Œ\<5C>\Ž\<5C>\<5C>\‘\’\“\”\•\–\—\˜\™\š\›\œ\<5C>\ž\Ÿ\ \¡\¢\£\¤\¥\¦\§\¨\©\ª\«\¬\\®\¯\°\±\²\³\´\µ\¶\·\¸\¹\º\»\¼\½\¾\¿\À\Á\Â\Ã\Ä\Å\Æ\Ç\È\É\Ê\Ë\Ì\Í\Î\Ï\Ð\Ñ\Ò\Ó\Ô\Õ\Ö\×\Ø\Ù\Ú\Û\Ü\Ý\Þ\ß\à\á\â\ã\ä\å\æ\ç\è\é\ê\ë\ì\í\î\ï\ð\ñ\ò\ó\ô\õ\ö\÷\ø\ù\ú\û\ü\ý\þ\ÿ
|
par_shellquote bash
!"#$%&'"'"'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€<7F>‚ƒ„…†‡ˆ‰Š‹Œ<E280B9>Ž<EFBFBD><C5BD>‘’“”•–—˜™š›œ<E280BA>žŸ ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ'
|
||||||
par_shellquote csh \\\\\\\\ "\
|
par_shellquote csh \\\\\\\\ "\
|
||||||
par_shellquote csh "\\\
\\\\\\\\\\\\\\ \!\"\#\$%\&\'\(\)\*+,-./0123456789:\;\<\=\>\?@ABCDEFGHIJKLMNOPQRSTUVWXYZ\[\\\]\^_\`abcdefghijklmnopqrstuvwxyz\{\|\}\~€<7F>\‚\ƒ\„\…\†\‡\ˆ\‰\Š\‹\Œ\<5C>\Ž\<5C>\<5C>\‘\’\“\”\•\–\—\˜\™\š\›\œ\<5C>\ž\Ÿ\ \¡\¢\£\¤\¥\¦\§\¨\©\ª\«\¬\\®\¯\°\±\²\³\´\µ\¶\·\¸\¹\º\»\¼\½\¾\¿\À\Á\Â\Ã\Ä\Å\Æ\Ç\È\É\Ê\Ë\Ì\Í\Î\Ï\Ð\Ñ\Ò\Ó\Ô\Õ\Ö\×\Ø\Ù\Ú\Û\Ü\Ý\Þ\ß\à\á\â\ã\ä\å\æ\ç\è\é\ê\ë\ì\í\î\ï\ð\ñ\ò\ó\ô\õ\ö\÷\ø\ù\ú\û\ü\ý\þ\ÿ
|
par_shellquote csh "\\\
\\\\\\\\\\\\\\ \!\"\#\$%\&\'\(\)\*+,-./0123456789:\;\<\=\>\?@ABCDEFGHIJKLMNOPQRSTUVWXYZ\[\\\]\^_\`abcdefghijklmnopqrstuvwxyz\{\|\}\~€<7F>\‚\ƒ\„\…\†\‡\ˆ\‰\Š\‹\Œ\<5C>\Ž\<5C>\<5C>\‘\’\“\”\•\–\—\˜\™\š\›\œ\<5C>\ž\Ÿ\ \¡\¢\£\¤\¥\¦\§\¨\©\ª\«\¬\\®\¯\°\±\²\³\´\µ\¶\·\¸\¹\º\»\¼\½\¾\¿\À\Á\Â\Ã\Ä\Å\Æ\Ç\È\É\Ê\Ë\Ì\Í\Î\Ï\Ð\Ñ\Ò\Ó\Ô\Õ\Ö\×\Ø\Ù\Ú\Û\Ü\Ý\Þ\ß\à\á\â\ã\ä\å\æ\ç\è\é\ê\ë\ì\í\î\ï\ð\ñ\ò\ó\ô\õ\ö\÷\ø\ù\ú\û\ü\ý\þ\ÿ
|
||||||
par_shellquote dash \\\\\\\\ '
|
par_shellquote dash '
|
||||||
par_shellquote dash '\\\
\\\\\\\\\\\\\\ \!\"\#\$%\&\'\(\)\*+,-./0123456789:\;\<\=\>\?@ABCDEFGHIJKLMNOPQRSTUVWXYZ\[\\\]\^_\`abcdefghijklmnopqrstuvwxyz\{\|\}\~€<7F>\‚\ƒ\„\…\†\‡\ˆ\‰\Š\‹\Œ\<5C>\Ž\<5C>\<5C>\‘\’\“\”\•\–\—\˜\™\š\›\œ\<5C>\ž\Ÿ\ \¡\¢\£\¤\¥\¦\§\¨\©\ª\«\¬\\®\¯\°\±\²\³\´\µ\¶\·\¸\¹\º\»\¼\½\¾\¿\À\Á\Â\Ã\Ä\Å\Æ\Ç\È\É\Ê\Ë\Ì\Í\Î\Ï\Ð\Ñ\Ò\Ó\Ô\Õ\Ö\×\Ø\Ù\Ú\Û\Ü\Ý\Þ\ß\à\á\â\ã\ä\å\æ\ç\è\é\ê\ë\ì\í\î\ï\ð\ñ\ò\ó\ô\õ\ö\÷\ø\ù\ú\û\ü\ý\þ\ÿ
|
par_shellquote dash
!"#$%&'"'"'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€<7F>‚ƒ„…†‡ˆ‰Š‹Œ<E280B9>Ž<EFBFBD><C5BD>‘’“”•–—˜™š›œ<E280BA>žŸ ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ'
|
||||||
par_shellquote fish \\\\\\\\ '
|
par_shellquote fish '
|
||||||
par_shellquote fish '\\\
\\\\\\\\\\\\\\ \!\"\#\$%\&\'\(\)\*+,-./0123456789:\;\<\=\>\?@ABCDEFGHIJKLMNOPQRSTUVWXYZ\[\\\]\^_\`abcdefghijklmnopqrstuvwxyz\{\|\}\~€<7F>\‚\ƒ\„\…\†\‡\ˆ\‰\Š\‹\Œ\<5C>\Ž\<5C>\<5C>\‘\’\“\”\•\–\—\˜\™\š\›\œ\<5C>\ž\Ÿ\ \¡\¢\£\¤\¥\¦\§\¨\©\ª\«\¬\\®\¯\°\±\²\³\´\µ\¶\·\¸\¹\º\»\¼\½\¾\¿\À\Á\Â\Ã\Ä\Å\Æ\Ç\È\É\Ê\Ë\Ì\Í\Î\Ï\Ð\Ñ\Ò\Ó\Ô\Õ\Ö\×\Ø\Ù\Ú\Û\Ü\Ý\Þ\ß\à\á\â\ã\ä\å\æ\ç\è\é\ê\ë\ì\í\î\ï\ð\ñ\ò\ó\ô\õ\ö\÷\ø\ù\ú\û\ü\ý\þ\ÿ
|
par_shellquote fish
!"#$%&'"'"'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€<7F>‚ƒ„…†‡ˆ‰Š‹Œ<E280B9>Ž<EFBFBD><C5BD>‘’“”•–—˜™š›œ<E280BA>žŸ ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ'
|
||||||
par_shellquote fizsh \\\\\\\\ '
|
par_shellquote fizsh '
|
||||||
par_shellquote fizsh '\\\
\\\\\\\\\\\\\\ \!\"\#\$%\&\'\(\)\*+,-./0123456789:\;\<\=\>\?@ABCDEFGHIJKLMNOPQRSTUVWXYZ\[\\\]\^_\`abcdefghijklmnopqrstuvwxyz\{\|\}\~€<7F>\‚\ƒ\„\…\†\‡\ˆ\‰\Š\‹\Œ\<5C>\Ž\<5C>\<5C>\‘\’\“\”\•\–\—\˜\™\š\›\œ\<5C>\ž\Ÿ\ \¡\¢\£\¤\¥\¦\§\¨\©\ª\«\¬\\®\¯\°\±\²\³\´\µ\¶\·\¸\¹\º\»\¼\½\¾\¿\À\Á\Â\Ã\Ä\Å\Æ\Ç\È\É\Ê\Ë\Ì\Í\Î\Ï\Ð\Ñ\Ò\Ó\Ô\Õ\Ö\×\Ø\Ù\Ú\Û\Ü\Ý\Þ\ß\à\á\â\ã\ä\å\æ\ç\è\é\ê\ë\ì\í\î\ï\ð\ñ\ò\ó\ô\õ\ö\÷\ø\ù\ú\û\ü\ý\þ\ÿ
|
par_shellquote fizsh
!"#$%&'"'"'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€<7F>‚ƒ„…†‡ˆ‰Š‹Œ<E280B9>Ž<EFBFBD><C5BD>‘’“”•–—˜™š›œ<E280BA>žŸ ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ'
|
||||||
par_shellquote ksh \\\\\\\\ '
|
par_shellquote ksh '
|
||||||
par_shellquote ksh '\\\
\\\\\\\\\\\\\\ \!\"\#\$%\&\'\(\)\*+,-./0123456789:\;\<\=\>\?@ABCDEFGHIJKLMNOPQRSTUVWXYZ\[\\\]\^_\`abcdefghijklmnopqrstuvwxyz\{\|\}\~€<7F>\‚\ƒ\„\…\†\‡\ˆ\‰\Š\‹\Œ\<5C>\Ž\<5C>\<5C>\‘\’\“\”\•\–\—\˜\™\š\›\œ\<5C>\ž\Ÿ\ \¡\¢\£\¤\¥\¦\§\¨\©\ª\«\¬\\®\¯\°\±\²\³\´\µ\¶\·\¸\¹\º\»\¼\½\¾\¿\À\Á\Â\Ã\Ä\Å\Æ\Ç\È\É\Ê\Ë\Ì\Í\Î\Ï\Ð\Ñ\Ò\Ó\Ô\Õ\Ö\×\Ø\Ù\Ú\Û\Ü\Ý\Þ\ß\à\á\â\ã\ä\å\æ\ç\è\é\ê\ë\ì\í\î\ï\ð\ñ\ò\ó\ô\õ\ö\÷\ø\ù\ú\û\ü\ý\þ\ÿ
|
par_shellquote ksh
!"#$%&'"'"'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€<7F>‚ƒ„…†‡ˆ‰Š‹Œ<E280B9>Ž<EFBFBD><C5BD>‘’“”•–—˜™š›œ<E280BA>žŸ ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ'
|
||||||
par_shellquote ksh93 \\\\\\\\ '
|
par_shellquote ksh93 '
|
||||||
par_shellquote ksh93 '\\\
\\\\\\\\\\\\\\ \!\"\#\$%\&\'\(\)\*+,-./0123456789:\;\<\=\>\?@ABCDEFGHIJKLMNOPQRSTUVWXYZ\[\\\]\^_\`abcdefghijklmnopqrstuvwxyz\{\|\}\~€<7F>\‚\ƒ\„\…\†\‡\ˆ\‰\Š\‹\Œ\<5C>\Ž\<5C>\<5C>\‘\’\“\”\•\–\—\˜\™\š\›\œ\<5C>\ž\Ÿ\ \¡\¢\£\¤\¥\¦\§\¨\©\ª\«\¬\\®\¯\°\±\²\³\´\µ\¶\·\¸\¹\º\»\¼\½\¾\¿\À\Á\Â\Ã\Ä\Å\Æ\Ç\È\É\Ê\Ë\Ì\Í\Î\Ï\Ð\Ñ\Ò\Ó\Ô\Õ\Ö\×\Ø\Ù\Ú\Û\Ü\Ý\Þ\ß\à\á\â\ã\ä\å\æ\ç\è\é\ê\ë\ì\í\î\ï\ð\ñ\ò\ó\ô\õ\ö\÷\ø\ù\ú\û\ü\ý\þ\ÿ
|
par_shellquote ksh93
!"#$%&'"'"'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€<7F>‚ƒ„…†‡ˆ‰Š‹Œ<E280B9>Ž<EFBFBD><C5BD>‘’“”•–—˜™š›œ<E280BA>žŸ ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ'
|
||||||
par_shellquote lksh \\\\\\\\ '
|
par_shellquote lksh '
|
||||||
par_shellquote lksh '\\\
\\\\\\\\\\\\\\ \!\"\#\$%\&\'\(\)\*+,-./0123456789:\;\<\=\>\?@ABCDEFGHIJKLMNOPQRSTUVWXYZ\[\\\]\^_\`abcdefghijklmnopqrstuvwxyz\{\|\}\~€<7F>\‚\ƒ\„\…\†\‡\ˆ\‰\Š\‹\Œ\<5C>\Ž\<5C>\<5C>\‘\’\“\”\•\–\—\˜\™\š\›\œ\<5C>\ž\Ÿ\ \¡\¢\£\¤\¥\¦\§\¨\©\ª\«\¬\\®\¯\°\±\²\³\´\µ\¶\·\¸\¹\º\»\¼\½\¾\¿\À\Á\Â\Ã\Ä\Å\Æ\Ç\È\É\Ê\Ë\Ì\Í\Î\Ï\Ð\Ñ\Ò\Ó\Ô\Õ\Ö\×\Ø\Ù\Ú\Û\Ü\Ý\Þ\ß\à\á\â\ã\ä\å\æ\ç\è\é\ê\ë\ì\í\î\ï\ð\ñ\ò\ó\ô\õ\ö\÷\ø\ù\ú\û\ü\ý\þ\ÿ
|
par_shellquote lksh
!"#$%&'"'"'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€<7F>‚ƒ„…†‡ˆ‰Š‹Œ<E280B9>Ž<EFBFBD><C5BD>‘’“”•–—˜™š›œ<E280BA>žŸ ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ'
|
||||||
par_shellquote mksh \\\\\\\\ '
|
par_shellquote mksh '
|
||||||
par_shellquote mksh '\\\
\\\\\\\\\\\\\\ \!\"\#\$%\&\'\(\)\*+,-./0123456789:\;\<\=\>\?@ABCDEFGHIJKLMNOPQRSTUVWXYZ\[\\\]\^_\`abcdefghijklmnopqrstuvwxyz\{\|\}\~€<7F>\‚\ƒ\„\…\†\‡\ˆ\‰\Š\‹\Œ\<5C>\Ž\<5C>\<5C>\‘\’\“\”\•\–\—\˜\™\š\›\œ\<5C>\ž\Ÿ\ \¡\¢\£\¤\¥\¦\§\¨\©\ª\«\¬\\®\¯\°\±\²\³\´\µ\¶\·\¸\¹\º\»\¼\½\¾\¿\À\Á\Â\Ã\Ä\Å\Æ\Ç\È\É\Ê\Ë\Ì\Í\Î\Ï\Ð\Ñ\Ò\Ó\Ô\Õ\Ö\×\Ø\Ù\Ú\Û\Ü\Ý\Þ\ß\à\á\â\ã\ä\å\æ\ç\è\é\ê\ë\ì\í\î\ï\ð\ñ\ò\ó\ô\õ\ö\÷\ø\ù\ú\û\ü\ý\þ\ÿ
|
par_shellquote mksh
!"#$%&'"'"'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€<7F>‚ƒ„…†‡ˆ‰Š‹Œ<E280B9>Ž<EFBFBD><C5BD>‘’“”•–—˜™š›œ<E280BA>žŸ ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ'
|
||||||
par_shellquote posh \\\\\\\\ '
|
par_shellquote posh '
|
||||||
par_shellquote posh '\\\
\\\\\\\\\\\\\\ \!\"\#\$%\&\'\(\)\*+,-./0123456789:\;\<\=\>\?@ABCDEFGHIJKLMNOPQRSTUVWXYZ\[\\\]\^_\`abcdefghijklmnopqrstuvwxyz\{\|\}\~€<7F>\‚\ƒ\„\…\†\‡\ˆ\‰\Š\‹\Œ\<5C>\Ž\<5C>\<5C>\‘\’\“\”\•\–\—\˜\™\š\›\œ\<5C>\ž\Ÿ\ \¡\¢\£\¤\¥\¦\§\¨\©\ª\«\¬\\®\¯\°\±\²\³\´\µ\¶\·\¸\¹\º\»\¼\½\¾\¿\À\Á\Â\Ã\Ä\Å\Æ\Ç\È\É\Ê\Ë\Ì\Í\Î\Ï\Ð\Ñ\Ò\Ó\Ô\Õ\Ö\×\Ø\Ù\Ú\Û\Ü\Ý\Þ\ß\à\á\â\ã\ä\å\æ\ç\è\é\ê\ë\ì\í\î\ï\ð\ñ\ò\ó\ô\õ\ö\÷\ø\ù\ú\û\ü\ý\þ\ÿ
|
par_shellquote posh
!"#$%&'"'"'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€<7F>‚ƒ„…†‡ˆ‰Š‹Œ<E280B9>Ž<EFBFBD><C5BD>‘’“”•–—˜™š›œ<E280BA>žŸ ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ'
|
||||||
par_shellquote rzsh zsh:1: /bin/echo: restricted
|
par_shellquote rzsh zsh:1: /bin/echo: restricted
|
||||||
par_shellquote sash \\\\\\\\ '
|
par_shellquote sash '
|
||||||
par_shellquote sash '\\\
\\\\\\\\\\\\\\ \!\"\#\$%\&\'\(\)\*+,-./0123456789:\;\<\=\>\?@ABCDEFGHIJKLMNOPQRSTUVWXYZ\[\\\]\^_\`abcdefghijklmnopqrstuvwxyz\{\|\}\~€<7F>\‚\ƒ\„\…\†\‡\ˆ\‰\Š\‹\Œ\<5C>\Ž\<5C>\<5C>\‘\’\“\”\•\–\—\˜\™\š\›\œ\<5C>\ž\Ÿ\ \¡\¢\£\¤\¥\¦\§\¨\©\ª\«\¬\\®\¯\°\±\²\³\´\µ\¶\·\¸\¹\º\»\¼\½\¾\¿\À\Á\Â\Ã\Ä\Å\Æ\Ç\È\É\Ê\Ë\Ì\Í\Î\Ï\Ð\Ñ\Ò\Ó\Ô\Õ\Ö\×\Ø\Ù\Ú\Û\Ü\Ý\Þ\ß\à\á\â\ã\ä\å\æ\ç\è\é\ê\ë\ì\í\î\ï\ð\ñ\ò\ó\ô\õ\ö\÷\ø\ù\ú\û\ü\ý\þ\ÿ
|
par_shellquote sash
!"#$%&'"'"'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€<7F>‚ƒ„…†‡ˆ‰Š‹Œ<E280B9>Ž<EFBFBD><C5BD>‘’“”•–—˜™š›œ<E280BA>žŸ ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ'
|
||||||
par_shellquote sh \\\\\\\\ '
|
par_shellquote sh '
|
||||||
par_shellquote sh '\\\
\\\\\\\\\\\\\\ \!\"\#\$%\&\'\(\)\*+,-./0123456789:\;\<\=\>\?@ABCDEFGHIJKLMNOPQRSTUVWXYZ\[\\\]\^_\`abcdefghijklmnopqrstuvwxyz\{\|\}\~€<7F>\‚\ƒ\„\…\†\‡\ˆ\‰\Š\‹\Œ\<5C>\Ž\<5C>\<5C>\‘\’\“\”\•\–\—\˜\™\š\›\œ\<5C>\ž\Ÿ\ \¡\¢\£\¤\¥\¦\§\¨\©\ª\«\¬\\®\¯\°\±\²\³\´\µ\¶\·\¸\¹\º\»\¼\½\¾\¿\À\Á\Â\Ã\Ä\Å\Æ\Ç\È\É\Ê\Ë\Ì\Í\Î\Ï\Ð\Ñ\Ò\Ó\Ô\Õ\Ö\×\Ø\Ù\Ú\Û\Ü\Ý\Þ\ß\à\á\â\ã\ä\å\æ\ç\è\é\ê\ë\ì\í\î\ï\ð\ñ\ò\ó\ô\õ\ö\÷\ø\ù\ú\û\ü\ý\þ\ÿ
|
par_shellquote sh
!"#$%&'"'"'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€<7F>‚ƒ„…†‡ˆ‰Š‹Œ<E280B9>Ž<EFBFBD><C5BD>‘’“”•–—˜™š›œ<E280BA>žŸ ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ'
|
||||||
par_shellquote static-sh \\\\\\\\ '
|
par_shellquote static-sh '
|
||||||
par_shellquote static-sh '\\\
\\\\\\\\\\\\\\ \!\"\#\$%\&\'\(\)\*+,-./0123456789:\;\<\=\>\?@ABCDEFGHIJKLMNOPQRSTUVWXYZ\[\\\]\^_\`abcdefghijklmnopqrstuvwxyz\{\|\}\~€<7F>\‚\ƒ\„\…\†\‡\ˆ\‰\Š\‹\Œ\<5C>\Ž\<5C>\<5C>\‘\’\“\”\•\–\—\˜\™\š\›\œ\<5C>\ž\Ÿ\ \¡\¢\£\¤\¥\¦\§\¨\©\ª\«\¬\\®\¯\°\±\²\³\´\µ\¶\·\¸\¹\º\»\¼\½\¾\¿\À\Á\Â\Ã\Ä\Å\Æ\Ç\È\É\Ê\Ë\Ì\Í\Î\Ï\Ð\Ñ\Ò\Ó\Ô\Õ\Ö\×\Ø\Ù\Ú\Û\Ü\Ý\Þ\ß\à\á\â\ã\ä\å\æ\ç\è\é\ê\ë\ì\í\î\ï\ð\ñ\ò\ó\ô\õ\ö\÷\ø\ù\ú\û\ü\ý\þ\ÿ
|
par_shellquote static-sh
!"#$%&'"'"'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€<7F>‚ƒ„…†‡ˆ‰Š‹Œ<E280B9>Ž<EFBFBD><C5BD>‘’“”•–—˜™š›œ<E280BA>žŸ ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ'
|
||||||
par_shellquote tcsh \\\\\\\\ "\
|
par_shellquote tcsh \\\\\\\\ "\
|
||||||
par_shellquote tcsh "\\\
\\\\\\\\\\\\\\ \!\"\#\$%\&\'\(\)\*+,-./0123456789:\;\<\=\>\?@ABCDEFGHIJKLMNOPQRSTUVWXYZ\[\\\]\^_\`abcdefghijklmnopqrstuvwxyz\{\|\}\~€<7F>\‚\ƒ\„\…\†\‡\ˆ\‰\Š\‹\Œ\<5C>\Ž\<5C>\<5C>\‘\’\“\”\•\–\—\˜\™\š\›\œ\<5C>\ž\Ÿ\ \¡\¢\£\¤\¥\¦\§\¨\©\ª\«\¬\\®\¯\°\±\²\³\´\µ\¶\·\¸\¹\º\»\¼\½\¾\¿\À\Á\Â\Ã\Ä\Å\Æ\Ç\È\É\Ê\Ë\Ì\Í\Î\Ï\Ð\Ñ\Ò\Ó\Ô\Õ\Ö\×\Ø\Ù\Ú\Û\Ü\Ý\Þ\ß\à\á\â\ã\ä\å\æ\ç\è\é\ê\ë\ì\í\î\ï\ð\ñ\ò\ó\ô\õ\ö\÷\ø\ù\ú\û\ü\ý\þ\ÿ
|
par_shellquote tcsh "\\\
\\\\\\\\\\\\\\ \!\"\#\$%\&\'\(\)\*+,-./0123456789:\;\<\=\>\?@ABCDEFGHIJKLMNOPQRSTUVWXYZ\[\\\]\^_\`abcdefghijklmnopqrstuvwxyz\{\|\}\~€<7F>\‚\ƒ\„\…\†\‡\ˆ\‰\Š\‹\Œ\<5C>\Ž\<5C>\<5C>\‘\’\“\”\•\–\—\˜\™\š\›\œ\<5C>\ž\Ÿ\ \¡\¢\£\¤\¥\¦\§\¨\©\ª\«\¬\\®\¯\°\±\²\³\´\µ\¶\·\¸\¹\º\»\¼\½\¾\¿\À\Á\Â\Ã\Ä\Å\Æ\Ç\È\É\Ê\Ë\Ì\Í\Î\Ï\Ð\Ñ\Ò\Ó\Ô\Õ\Ö\×\Ø\Ù\Ú\Û\Ü\Ý\Þ\ß\à\á\â\ã\ä\å\æ\ç\è\é\ê\ë\ì\í\î\ï\ð\ñ\ò\ó\ô\õ\ö\÷\ø\ù\ú\û\ü\ý\þ\ÿ
|
||||||
par_shellquote yash \\\\\\\\ '
|
par_shellquote yash '
|
||||||
par_shellquote yash '\\\
\\\\\\\\\\\\\\ \!\"\#\$%\&\'\(\)\*+,-./0123456789:\;\<\=\>\?@ABCDEFGHIJKLMNOPQRSTUVWXYZ\[\\\]\^_\`abcdefghijklmnopqrstuvwxyz\{\|\}\~€<7F>\‚\ƒ\„\…\†\‡\ˆ\‰\Š\‹\Œ\<5C>\Ž\<5C>\<5C>\‘\’\“\”\•\–\—\˜\™\š\›\œ\<5C>\ž\Ÿ\ \¡\¢\£\¤\¥\¦\§\¨\©\ª\«\¬\\®\¯\°\±\²\³\´\µ\¶\·\¸\¹\º\»\¼\½\¾\¿\À\Á\Â\Ã\Ä\Å\Æ\Ç\È\É\Ê\Ë\Ì\Í\Î\Ï\Ð\Ñ\Ò\Ó\Ô\Õ\Ö\×\Ø\Ù\Ú\Û\Ü\Ý\Þ\ß\à\á\â\ã\ä\å\æ\ç\è\é\ê\ë\ì\í\î\ï\ð\ñ\ò\ó\ô\õ\ö\÷\ø\ù\ú\û\ü\ý\þ\ÿ
|
par_shellquote yash
!"#$%&'"'"'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€<7F>‚ƒ„…†‡ˆ‰Š‹Œ<E280B9>Ž<EFBFBD><C5BD>‘’“”•–—˜™š›œ<E280BA>žŸ ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ'
|
||||||
par_shellquote zsh \\\\\\\\ '
|
par_shellquote zsh '
|
||||||
par_shellquote zsh '\\\
\\\\\\\\\\\\\\ \!\"\#\$%\&\'\(\)\*+,-./0123456789:\;\<\=\>\?@ABCDEFGHIJKLMNOPQRSTUVWXYZ\[\\\]\^_\`abcdefghijklmnopqrstuvwxyz\{\|\}\~€<7F>\‚\ƒ\„\…\†\‡\ˆ\‰\Š\‹\Œ\<5C>\Ž\<5C>\<5C>\‘\’\“\”\•\–\—\˜\™\š\›\œ\<5C>\ž\Ÿ\ \¡\¢\£\¤\¥\¦\§\¨\©\ª\«\¬\\®\¯\°\±\²\³\´\µ\¶\·\¸\¹\º\»\¼\½\¾\¿\À\Á\Â\Ã\Ä\Å\Æ\Ç\È\É\Ê\Ë\Ì\Í\Î\Ï\Ð\Ñ\Ò\Ó\Ô\Õ\Ö\×\Ø\Ù\Ú\Û\Ü\Ý\Þ\ß\à\á\â\ã\ä\å\æ\ç\è\é\ê\ë\ì\í\î\ï\ð\ñ\ò\ó\ô\õ\ö\÷\ø\ù\ú\û\ü\ý\þ\ÿ
|
par_shellquote zsh
!"#$%&'"'"'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€<7F>‚ƒ„…†‡ˆ‰Š‹Œ<E280B9>Ž<EFBFBD><C5BD>‘’“”•–—˜™š›œ<E280BA>žŸ ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ'
|
||||||
par_shellquote csh \\\\\\\\ "\
|
par_shellquote csh \\\\\\\\ "\
|
||||||
par_shellquote csh "\\\
\\\\\\\\\\\\\\ \!\"\#\$%\&\'\(\)\*+,-./0123456789:\;\<\=\>\?@ABCDEFGHIJKLMNOPQRSTUVWXYZ\[\\\]\^_\`abcdefghijklmnopqrstuvwxyz\{\|\}\~€<7F>\‚\ƒ\„\…\†\‡\ˆ\‰\Š\‹\Œ\<5C>\Ž\<5C>\<5C>\‘\’\“\”\•\–\—\˜\™\š\›\œ\<5C>\ž\Ÿ\ \¡\¢\£\¤\¥\¦\§\¨\©\ª\«\¬\\®\¯\°\±\²\³\´\µ\¶\·\¸\¹\º\»\¼\½\¾\¿\À\Á\Â\Ã\Ä\Å\Æ\Ç\È\É\Ê\Ë\Ì\Í\Î\Ï\Ð\Ñ\Ò\Ó\Ô\Õ\Ö\×\Ø\Ù\Ú\Û\Ü\Ý\Þ\ß\à\á\â\ã\ä\å\æ\ç\è\é\ê\ë\ì\í\î\ï\ð\ñ\ò\ó\ô\õ\ö\÷\ø\ù\ú\û\ü\ý\þ\ÿ
|
par_shellquote csh "\\\
\\\\\\\\\\\\\\ \!\"\#\$%\&\'\(\)\*+,-./0123456789:\;\<\=\>\?@ABCDEFGHIJKLMNOPQRSTUVWXYZ\[\\\]\^_\`abcdefghijklmnopqrstuvwxyz\{\|\}\~€<7F>\‚\ƒ\„\…\†\‡\ˆ\‰\Š\‹\Œ\<5C>\Ž\<5C>\<5C>\‘\’\“\”\•\–\—\˜\™\š\›\œ\<5C>\ž\Ÿ\ \¡\¢\£\¤\¥\¦\§\¨\©\ª\«\¬\\®\¯\°\±\²\³\´\µ\¶\·\¸\¹\º\»\¼\½\¾\¿\À\Á\Â\Ã\Ä\Å\Æ\Ç\È\É\Ê\Ë\Ì\Í\Î\Ï\Ð\Ñ\Ò\Ó\Ô\Õ\Ö\×\Ø\Ù\Ú\Û\Ü\Ý\Þ\ß\à\á\â\ã\ä\å\æ\ç\è\é\ê\ë\ì\í\î\ï\ð\ñ\ò\ó\ô\õ\ö\÷\ø\ù\ú\û\ü\ý\þ\ÿ
|
||||||
par_shellquote tcsh \\\\\\\\ "\
|
par_shellquote tcsh \\\\\\\\ "\
|
||||||
|
|
|
@ -58,7 +58,7 @@ par_kill_term_twice bash-+-perl---bash---sleep
|
||||||
par_kill_term_twice `-pstree
|
par_kill_term_twice `-pstree
|
||||||
par_kill_term_twice parallel: SIGTERM received. No new jobs will be started.
|
par_kill_term_twice parallel: SIGTERM received. No new jobs will be started.
|
||||||
par_kill_term_twice parallel: Waiting for these 1 jobs to finish. Send SIGTERM again to stop now.
|
par_kill_term_twice parallel: Waiting for these 1 jobs to finish. Send SIGTERM again to stop now.
|
||||||
par_kill_term_twice parallel: bash -c sleep\ 120\ \&\ pid\=\$\!\;\ wait\ \$pid 1
|
par_kill_term_twice parallel: bash -c 'sleep 120 & pid=$!; wait $pid' 1
|
||||||
par_kill_term_twice bash-+-perl---bash---sleep
|
par_kill_term_twice bash-+-perl---bash---sleep
|
||||||
par_kill_term_twice `-pstree
|
par_kill_term_twice `-pstree
|
||||||
par_kill_term_twice bash---pstree
|
par_kill_term_twice bash---pstree
|
||||||
|
|
|
@ -12,20 +12,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 exit code 0
|
||||||
par_print_before_halt_on_error -2 0.1 0.1
|
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 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 exit code 0
|
||||||
par_print_before_halt_on_error -1 0.1 0.1
|
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 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: 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 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 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 3.2 3.2
|
||||||
par_print_before_halt_on_error -1 0 0
|
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 1 1
|
||||||
par_print_before_halt_on_error -1 parallel: This job succeeded:
|
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 exit code 1
|
||||||
par_print_before_halt_on_error 0 0.1 0.1
|
par_print_before_halt_on_error 0 0.1 0.1
|
||||||
par_print_before_halt_on_error 0 3.2 3.2
|
par_print_before_halt_on_error 0 3.2 3.2
|
||||||
|
@ -42,22 +42,22 @@ 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 exit code 1
|
||||||
par_print_before_halt_on_error 1 0.1 0.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 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: 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 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 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 3.2 3.2
|
||||||
par_print_before_halt_on_error 1 0 0
|
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 1 1
|
||||||
par_print_before_halt_on_error 1 2 2
|
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 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 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 3 3
|
||||||
par_print_before_halt_on_error 1 parallel: This job failed:
|
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 exit code 1
|
||||||
par_print_before_halt_on_error 2 0.1 0.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 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
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
par_append_different_cmd $MYSQL p_wrapper par_append_different_cmd \$MYSQL
|
par_append_different_cmd $MYSQL p_wrapper par_append_different_cmd '$MYSQL'
|
||||||
par_append_different_cmd $MYSQL Exit=0
|
par_append_different_cmd $MYSQL Exit=0
|
||||||
par_append_different_cmd $MYSQL Exit=0
|
par_append_different_cmd $MYSQL Exit=0
|
||||||
par_append_different_cmd $MYSQL Command V1 V2 Stdout Stderr
|
par_append_different_cmd $MYSQL Command V1 V2 Stdout Stderr
|
||||||
|
@ -52,7 +52,7 @@ par_append_different_cmd $MYSQL sleep .3;echo B-15 15 B B-15\n
|
||||||
par_append_different_cmd $MYSQL sleep .3;echo C-15 15 C C-15\n
|
par_append_different_cmd $MYSQL sleep .3;echo C-15 15 C C-15\n
|
||||||
par_append_different_cmd $MYSQL sleep .3;echo D-15 15 D D-15\n
|
par_append_different_cmd $MYSQL sleep .3;echo D-15 15 D D-15\n
|
||||||
par_append_different_cmd $MYSQL sleep .3;echo E-15 15 E E-15\n
|
par_append_different_cmd $MYSQL sleep .3;echo E-15 15 E E-15\n
|
||||||
par_append_different_cmd $PG p_wrapper par_append_different_cmd \$PG
|
par_append_different_cmd $PG p_wrapper par_append_different_cmd '$PG'
|
||||||
par_append_different_cmd $PG Exit=0
|
par_append_different_cmd $PG Exit=0
|
||||||
par_append_different_cmd $PG Exit=0
|
par_append_different_cmd $PG Exit=0
|
||||||
par_append_different_cmd $PG command | v1 | v2 | stdout | stderr
|
par_append_different_cmd $PG command | v1 | v2 | stdout | stderr
|
||||||
|
@ -159,7 +159,7 @@ par_append_different_cmd $PG sleep .3;echo E-15 | 15 | E | E-15 +|
|
||||||
par_append_different_cmd $PG | | | |
|
par_append_different_cmd $PG | | | |
|
||||||
par_append_different_cmd $PG (50 rows)
|
par_append_different_cmd $PG (50 rows)
|
||||||
par_append_different_cmd $PG
|
par_append_different_cmd $PG
|
||||||
par_append_different_cmd $SQLITE p_wrapper par_append_different_cmd \$SQLITE
|
par_append_different_cmd $SQLITE p_wrapper par_append_different_cmd '$SQLITE'
|
||||||
par_append_different_cmd $SQLITE Exit=0
|
par_append_different_cmd $SQLITE Exit=0
|
||||||
par_append_different_cmd $SQLITE Exit=0
|
par_append_different_cmd $SQLITE Exit=0
|
||||||
par_append_different_cmd $SQLITE Command|V1|V2|Stdout|Stderr
|
par_append_different_cmd $SQLITE Command|V1|V2|Stdout|Stderr
|
||||||
|
@ -263,7 +263,7 @@ par_append_different_cmd $SQLITE sleep .3;echo D-15|15|D|D-15
|
||||||
par_append_different_cmd $SQLITE |
|
par_append_different_cmd $SQLITE |
|
||||||
par_append_different_cmd $SQLITE sleep .3;echo E-15|15|E|E-15
|
par_append_different_cmd $SQLITE sleep .3;echo E-15|15|E|E-15
|
||||||
par_append_different_cmd $SQLITE |
|
par_append_different_cmd $SQLITE |
|
||||||
par_no_table $MYSQL p_wrapper par_no_table \$MYSQL
|
par_no_table $MYSQL p_wrapper par_no_table '$MYSQL'
|
||||||
par_no_table $MYSQL bug #50018: --dburl without table dies
|
par_no_table $MYSQL bug #50018: --dburl without table dies
|
||||||
par_no_table $MYSQL 255
|
par_no_table $MYSQL 255
|
||||||
par_no_table $MYSQL 255
|
par_no_table $MYSQL 255
|
||||||
|
@ -275,7 +275,7 @@ par_no_table $MYSQL true dummy dummy dummy dummy
|
||||||
par_no_table $MYSQL parallel: Error: The DBURL (mysql://tange:tange@lo/tange) must contain a table.
|
par_no_table $MYSQL parallel: Error: The DBURL (mysql://tange:tange@lo/tange) must contain a table.
|
||||||
par_no_table $MYSQL parallel: Error: The DBURL (mysql://tange:tange@lo/tange) must contain a table.
|
par_no_table $MYSQL parallel: Error: The DBURL (mysql://tange:tange@lo/tange) must contain a table.
|
||||||
par_no_table $MYSQL parallel: Error: The DBURL (mysql://tange:tange@lo/tange) must contain a table.
|
par_no_table $MYSQL parallel: Error: The DBURL (mysql://tange:tange@lo/tange) must contain a table.
|
||||||
par_no_table $PG p_wrapper par_no_table \$PG
|
par_no_table $PG p_wrapper par_no_table '$PG'
|
||||||
par_no_table $PG bug #50018: --dburl without table dies
|
par_no_table $PG bug #50018: --dburl without table dies
|
||||||
par_no_table $PG 255
|
par_no_table $PG 255
|
||||||
par_no_table $PG 255
|
par_no_table $PG 255
|
||||||
|
@ -290,7 +290,7 @@ par_no_table $PG
|
||||||
par_no_table $PG parallel: Error: The DBURL (pg://tange:tange@lo/tange) must contain a table.
|
par_no_table $PG parallel: Error: The DBURL (pg://tange:tange@lo/tange) must contain a table.
|
||||||
par_no_table $PG parallel: Error: The DBURL (pg://tange:tange@lo/tange) must contain a table.
|
par_no_table $PG parallel: Error: The DBURL (pg://tange:tange@lo/tange) must contain a table.
|
||||||
par_no_table $PG parallel: Error: The DBURL (pg://tange:tange@lo/tange) must contain a table.
|
par_no_table $PG parallel: Error: The DBURL (pg://tange:tange@lo/tange) must contain a table.
|
||||||
par_no_table $SQLITE p_wrapper par_no_table \$SQLITE
|
par_no_table $SQLITE p_wrapper par_no_table '$SQLITE'
|
||||||
par_no_table $SQLITE bug #50018: --dburl without table dies
|
par_no_table $SQLITE bug #50018: --dburl without table dies
|
||||||
par_no_table $SQLITE 255
|
par_no_table $SQLITE 255
|
||||||
par_no_table $SQLITE 255
|
par_no_table $SQLITE 255
|
||||||
|
@ -302,7 +302,7 @@ par_no_table $SQLITE true dummy dummy|dummy|dummy||
|
||||||
par_no_table $SQLITE parallel: Error: The DBURL (sqlite3:///%2Frun%2Fshm%2Fparallel.db) must contain a table.
|
par_no_table $SQLITE parallel: Error: The DBURL (sqlite3:///%2Frun%2Fshm%2Fparallel.db) must contain a table.
|
||||||
par_no_table $SQLITE parallel: Error: The DBURL (sqlite3:///%2Frun%2Fshm%2Fparallel.db) must contain a table.
|
par_no_table $SQLITE parallel: Error: The DBURL (sqlite3:///%2Frun%2Fshm%2Fparallel.db) must contain a table.
|
||||||
par_no_table $SQLITE parallel: Error: The DBURL (sqlite3:///%2Frun%2Fshm%2Fparallel.db) must contain a table.
|
par_no_table $SQLITE parallel: Error: The DBURL (sqlite3:///%2Frun%2Fshm%2Fparallel.db) must contain a table.
|
||||||
par_shuf $MYSQL p_wrapper par_shuf \$MYSQL
|
par_shuf $MYSQL p_wrapper par_shuf '$MYSQL'
|
||||||
par_shuf $MYSQL 1 a
|
par_shuf $MYSQL 1 a
|
||||||
par_shuf $MYSQL 1 b
|
par_shuf $MYSQL 1 b
|
||||||
par_shuf $MYSQL 1 c
|
par_shuf $MYSQL 1 c
|
||||||
|
@ -357,7 +357,7 @@ par_shuf $MYSQL sleep .3;echo 5 b 5 b /tmp/parallel-bug49791-c20/1/5/2/b/stdout
|
||||||
par_shuf $MYSQL sleep .3;echo 5 c 5 c /tmp/parallel-bug49791-c20/1/5/2/c/stdout /tmp/parallel-bug49791-c20/1/5/2/c/stderr
|
par_shuf $MYSQL sleep .3;echo 5 c 5 c /tmp/parallel-bug49791-c20/1/5/2/c/stdout /tmp/parallel-bug49791-c20/1/5/2/c/stderr
|
||||||
par_shuf $MYSQL sleep .3;echo 5 d 5 d /tmp/parallel-bug49791-c20/1/5/2/d/stdout /tmp/parallel-bug49791-c20/1/5/2/d/stderr
|
par_shuf $MYSQL sleep .3;echo 5 d 5 d /tmp/parallel-bug49791-c20/1/5/2/d/stdout /tmp/parallel-bug49791-c20/1/5/2/d/stderr
|
||||||
par_shuf $MYSQL sleep .3;echo 5 e 5 e /tmp/parallel-bug49791-c20/1/5/2/e/stdout /tmp/parallel-bug49791-c20/1/5/2/e/stderr
|
par_shuf $MYSQL sleep .3;echo 5 e 5 e /tmp/parallel-bug49791-c20/1/5/2/e/stdout /tmp/parallel-bug49791-c20/1/5/2/e/stderr
|
||||||
par_shuf $PG p_wrapper par_shuf \$PG
|
par_shuf $PG p_wrapper par_shuf '$PG'
|
||||||
par_shuf $PG 1 a
|
par_shuf $PG 1 a
|
||||||
par_shuf $PG 1 b
|
par_shuf $PG 1 b
|
||||||
par_shuf $PG 1 c
|
par_shuf $PG 1 c
|
||||||
|
@ -415,7 +415,7 @@ par_shuf $PG sleep .3;echo 5 d | 5 | d | /tmp/parallel-bug49791-792/1/5/2/d/s
|
||||||
par_shuf $PG sleep .3;echo 5 e | 5 | e | /tmp/parallel-bug49791-792/1/5/2/e/stdout | /tmp/parallel-bug49791-792/1/5/2/e/stderr
|
par_shuf $PG sleep .3;echo 5 e | 5 | e | /tmp/parallel-bug49791-792/1/5/2/e/stdout | /tmp/parallel-bug49791-792/1/5/2/e/stderr
|
||||||
par_shuf $PG (25 rows)
|
par_shuf $PG (25 rows)
|
||||||
par_shuf $PG
|
par_shuf $PG
|
||||||
par_shuf $SQLITE p_wrapper par_shuf \$SQLITE
|
par_shuf $SQLITE p_wrapper par_shuf '$SQLITE'
|
||||||
par_shuf $SQLITE 1 a
|
par_shuf $SQLITE 1 a
|
||||||
par_shuf $SQLITE 1 b
|
par_shuf $SQLITE 1 b
|
||||||
par_shuf $SQLITE 1 c
|
par_shuf $SQLITE 1 c
|
||||||
|
@ -470,7 +470,7 @@ par_shuf $SQLITE sleep .3;echo 5 b|5|b|/tmp/parallel-bug49791-932/1/5/2/b/stdout
|
||||||
par_shuf $SQLITE sleep .3;echo 5 c|5|c|/tmp/parallel-bug49791-932/1/5/2/c/stdout|/tmp/parallel-bug49791-932/1/5/2/c/stderr
|
par_shuf $SQLITE sleep .3;echo 5 c|5|c|/tmp/parallel-bug49791-932/1/5/2/c/stdout|/tmp/parallel-bug49791-932/1/5/2/c/stderr
|
||||||
par_shuf $SQLITE sleep .3;echo 5 d|5|d|/tmp/parallel-bug49791-932/1/5/2/d/stdout|/tmp/parallel-bug49791-932/1/5/2/d/stderr
|
par_shuf $SQLITE sleep .3;echo 5 d|5|d|/tmp/parallel-bug49791-932/1/5/2/d/stdout|/tmp/parallel-bug49791-932/1/5/2/d/stderr
|
||||||
par_shuf $SQLITE sleep .3;echo 5 e|5|e|/tmp/parallel-bug49791-932/1/5/2/e/stdout|/tmp/parallel-bug49791-932/1/5/2/e/stderr
|
par_shuf $SQLITE sleep .3;echo 5 e|5|e|/tmp/parallel-bug49791-932/1/5/2/e/stdout|/tmp/parallel-bug49791-932/1/5/2/e/stderr
|
||||||
par_sql_joblog $MYSQL p_wrapper par_sql_joblog \$MYSQL
|
par_sql_joblog $MYSQL p_wrapper par_sql_joblog '$MYSQL'
|
||||||
par_sql_joblog $MYSQL ### should only give a single --joblog heading
|
par_sql_joblog $MYSQL ### should only give a single --joblog heading
|
||||||
par_sql_joblog $MYSQL ### --sqlmaster/--sqlworker
|
par_sql_joblog $MYSQL ### --sqlmaster/--sqlworker
|
||||||
par_sql_joblog $MYSQL Seq Host Starttime JobRuntime Send Receive Exitval Signal Command
|
par_sql_joblog $MYSQL Seq Host Starttime JobRuntime Send Receive Exitval Signal Command
|
||||||
|
@ -604,7 +604,7 @@ par_sql_joblog $MYSQL sleep .3;echo 5 b 5 b 5 b\n
|
||||||
par_sql_joblog $MYSQL sleep .3;echo 5 c 5 c 5 c\n
|
par_sql_joblog $MYSQL sleep .3;echo 5 c 5 c 5 c\n
|
||||||
par_sql_joblog $MYSQL sleep .3;echo 5 d 5 d 5 d\n
|
par_sql_joblog $MYSQL sleep .3;echo 5 d 5 d 5 d\n
|
||||||
par_sql_joblog $MYSQL sleep .3;echo 5 e 5 e 5 e\n
|
par_sql_joblog $MYSQL sleep .3;echo 5 e 5 e 5 e\n
|
||||||
par_sql_joblog $PG p_wrapper par_sql_joblog \$PG
|
par_sql_joblog $PG p_wrapper par_sql_joblog '$PG'
|
||||||
par_sql_joblog $PG ### should only give a single --joblog heading
|
par_sql_joblog $PG ### should only give a single --joblog heading
|
||||||
par_sql_joblog $PG ### --sqlmaster/--sqlworker
|
par_sql_joblog $PG ### --sqlmaster/--sqlworker
|
||||||
par_sql_joblog $PG Seq Host Starttime JobRuntime Send Receive Exitval Signal Command
|
par_sql_joblog $PG Seq Host Starttime JobRuntime Send Receive Exitval Signal Command
|
||||||
|
@ -766,7 +766,7 @@ par_sql_joblog $PG sleep .3;echo 5 e | 5 | e | 5 e +|
|
||||||
par_sql_joblog $PG | | | |
|
par_sql_joblog $PG | | | |
|
||||||
par_sql_joblog $PG (25 rows)
|
par_sql_joblog $PG (25 rows)
|
||||||
par_sql_joblog $PG
|
par_sql_joblog $PG
|
||||||
par_sql_joblog $SQLITE p_wrapper par_sql_joblog \$SQLITE
|
par_sql_joblog $SQLITE p_wrapper par_sql_joblog '$SQLITE'
|
||||||
par_sql_joblog $SQLITE ### should only give a single --joblog heading
|
par_sql_joblog $SQLITE ### should only give a single --joblog heading
|
||||||
par_sql_joblog $SQLITE ### --sqlmaster/--sqlworker
|
par_sql_joblog $SQLITE ### --sqlmaster/--sqlworker
|
||||||
par_sql_joblog $SQLITE Seq Host Starttime JobRuntime Send Receive Exitval Signal Command
|
par_sql_joblog $SQLITE Seq Host Starttime JobRuntime Send Receive Exitval Signal Command
|
||||||
|
@ -925,7 +925,7 @@ par_sql_joblog $SQLITE sleep .3;echo 5 d|5|d|5 d
|
||||||
par_sql_joblog $SQLITE |
|
par_sql_joblog $SQLITE |
|
||||||
par_sql_joblog $SQLITE sleep .3;echo 5 e|5|e|5 e
|
par_sql_joblog $SQLITE sleep .3;echo 5 e|5|e|5 e
|
||||||
par_sql_joblog $SQLITE |
|
par_sql_joblog $SQLITE |
|
||||||
par_sqlandworker $MYSQL p_wrapper par_sqlandworker \$MYSQL
|
par_sqlandworker $MYSQL p_wrapper par_sqlandworker '$MYSQL'
|
||||||
par_sqlandworker $MYSQL Exit=0
|
par_sqlandworker $MYSQL Exit=0
|
||||||
par_sqlandworker $MYSQL Exit=0
|
par_sqlandworker $MYSQL Exit=0
|
||||||
par_sqlandworker $MYSQL Command V1 V2 Stdout Stderr
|
par_sqlandworker $MYSQL Command V1 V2 Stdout Stderr
|
||||||
|
@ -954,7 +954,7 @@ par_sqlandworker $MYSQL sleep .3;echo 5 b 5 b 5 b\n
|
||||||
par_sqlandworker $MYSQL sleep .3;echo 5 c 5 c 5 c\n
|
par_sqlandworker $MYSQL sleep .3;echo 5 c 5 c 5 c\n
|
||||||
par_sqlandworker $MYSQL sleep .3;echo 5 d 5 d 5 d\n
|
par_sqlandworker $MYSQL sleep .3;echo 5 d 5 d 5 d\n
|
||||||
par_sqlandworker $MYSQL sleep .3;echo 5 e 5 e 5 e\n
|
par_sqlandworker $MYSQL sleep .3;echo 5 e 5 e 5 e\n
|
||||||
par_sqlandworker $PG p_wrapper par_sqlandworker \$PG
|
par_sqlandworker $PG p_wrapper par_sqlandworker '$PG'
|
||||||
par_sqlandworker $PG Exit=0
|
par_sqlandworker $PG Exit=0
|
||||||
par_sqlandworker $PG Exit=0
|
par_sqlandworker $PG Exit=0
|
||||||
par_sqlandworker $PG command | v1 | v2 | stdout | stderr
|
par_sqlandworker $PG command | v1 | v2 | stdout | stderr
|
||||||
|
@ -1011,7 +1011,7 @@ par_sqlandworker $PG sleep .3;echo 5 e | 5 | e | 5 e +|
|
||||||
par_sqlandworker $PG | | | |
|
par_sqlandworker $PG | | | |
|
||||||
par_sqlandworker $PG (25 rows)
|
par_sqlandworker $PG (25 rows)
|
||||||
par_sqlandworker $PG
|
par_sqlandworker $PG
|
||||||
par_sqlandworker $SQLITE p_wrapper par_sqlandworker \$SQLITE
|
par_sqlandworker $SQLITE p_wrapper par_sqlandworker '$SQLITE'
|
||||||
par_sqlandworker $SQLITE Exit=0
|
par_sqlandworker $SQLITE Exit=0
|
||||||
par_sqlandworker $SQLITE Exit=0
|
par_sqlandworker $SQLITE Exit=0
|
||||||
par_sqlandworker $SQLITE Command|V1|V2|Stdout|Stderr
|
par_sqlandworker $SQLITE Command|V1|V2|Stdout|Stderr
|
||||||
|
@ -1065,7 +1065,7 @@ par_sqlandworker $SQLITE sleep .3;echo 5 d|5|d|5 d
|
||||||
par_sqlandworker $SQLITE |
|
par_sqlandworker $SQLITE |
|
||||||
par_sqlandworker $SQLITE sleep .3;echo 5 e|5|e|5 e
|
par_sqlandworker $SQLITE sleep .3;echo 5 e|5|e|5 e
|
||||||
par_sqlandworker $SQLITE |
|
par_sqlandworker $SQLITE |
|
||||||
par_sqlandworker_lo $MYSQL p_wrapper par_sqlandworker_lo \$MYSQL
|
par_sqlandworker_lo $MYSQL p_wrapper par_sqlandworker_lo '$MYSQL'
|
||||||
par_sqlandworker_lo $MYSQL Exit=0
|
par_sqlandworker_lo $MYSQL Exit=0
|
||||||
par_sqlandworker_lo $MYSQL Exit=0
|
par_sqlandworker_lo $MYSQL Exit=0
|
||||||
par_sqlandworker_lo $MYSQL Command V1 V2 Stdout Stderr
|
par_sqlandworker_lo $MYSQL Command V1 V2 Stdout Stderr
|
||||||
|
@ -1094,7 +1094,7 @@ par_sqlandworker_lo $MYSQL sleep .3;echo 5 b 5 b 5 b\n
|
||||||
par_sqlandworker_lo $MYSQL sleep .3;echo 5 c 5 c 5 c\n
|
par_sqlandworker_lo $MYSQL sleep .3;echo 5 c 5 c 5 c\n
|
||||||
par_sqlandworker_lo $MYSQL sleep .3;echo 5 d 5 d 5 d\n
|
par_sqlandworker_lo $MYSQL sleep .3;echo 5 d 5 d 5 d\n
|
||||||
par_sqlandworker_lo $MYSQL sleep .3;echo 5 e 5 e 5 e\n
|
par_sqlandworker_lo $MYSQL sleep .3;echo 5 e 5 e 5 e\n
|
||||||
par_sqlandworker_lo $PG p_wrapper par_sqlandworker_lo \$PG
|
par_sqlandworker_lo $PG p_wrapper par_sqlandworker_lo '$PG'
|
||||||
par_sqlandworker_lo $PG Exit=0
|
par_sqlandworker_lo $PG Exit=0
|
||||||
par_sqlandworker_lo $PG Exit=0
|
par_sqlandworker_lo $PG Exit=0
|
||||||
par_sqlandworker_lo $PG command | v1 | v2 | stdout | stderr
|
par_sqlandworker_lo $PG command | v1 | v2 | stdout | stderr
|
||||||
|
@ -1151,7 +1151,7 @@ par_sqlandworker_lo $PG sleep .3;echo 5 e | 5 | e | 5 e +|
|
||||||
par_sqlandworker_lo $PG | | | |
|
par_sqlandworker_lo $PG | | | |
|
||||||
par_sqlandworker_lo $PG (25 rows)
|
par_sqlandworker_lo $PG (25 rows)
|
||||||
par_sqlandworker_lo $PG
|
par_sqlandworker_lo $PG
|
||||||
par_sqlandworker_lo $SQLITE p_wrapper par_sqlandworker_lo \$SQLITE
|
par_sqlandworker_lo $SQLITE p_wrapper par_sqlandworker_lo '$SQLITE'
|
||||||
par_sqlandworker_lo $SQLITE Exit=0
|
par_sqlandworker_lo $SQLITE Exit=0
|
||||||
par_sqlandworker_lo $SQLITE Exit=0
|
par_sqlandworker_lo $SQLITE Exit=0
|
||||||
par_sqlandworker_lo $SQLITE Command|V1|V2|Stdout|Stderr
|
par_sqlandworker_lo $SQLITE Command|V1|V2|Stdout|Stderr
|
||||||
|
@ -1205,7 +1205,7 @@ par_sqlandworker_lo $SQLITE sleep .3;echo 5 d|5|d|5 d
|
||||||
par_sqlandworker_lo $SQLITE |
|
par_sqlandworker_lo $SQLITE |
|
||||||
par_sqlandworker_lo $SQLITE sleep .3;echo 5 e|5|e|5 e
|
par_sqlandworker_lo $SQLITE sleep .3;echo 5 e|5|e|5 e
|
||||||
par_sqlandworker_lo $SQLITE |
|
par_sqlandworker_lo $SQLITE |
|
||||||
par_sqlandworker_results $MYSQL p_wrapper par_sqlandworker_results \$MYSQL
|
par_sqlandworker_results $MYSQL p_wrapper par_sqlandworker_results '$MYSQL'
|
||||||
par_sqlandworker_results $MYSQL Exit=0
|
par_sqlandworker_results $MYSQL Exit=0
|
||||||
par_sqlandworker_results $MYSQL Exit=0
|
par_sqlandworker_results $MYSQL Exit=0
|
||||||
par_sqlandworker_results $MYSQL Command V1 V2 Stdout Stderr
|
par_sqlandworker_results $MYSQL Command V1 V2 Stdout Stderr
|
||||||
|
@ -1234,7 +1234,7 @@ par_sqlandworker_results $MYSQL sleep .3;echo 5 b 5 b /tmp/out--sql/1/5/2/b/stdo
|
||||||
par_sqlandworker_results $MYSQL sleep .3;echo 5 c 5 c /tmp/out--sql/1/5/2/c/stdout /tmp/out--sql/1/5/2/c/stderr
|
par_sqlandworker_results $MYSQL sleep .3;echo 5 c 5 c /tmp/out--sql/1/5/2/c/stdout /tmp/out--sql/1/5/2/c/stderr
|
||||||
par_sqlandworker_results $MYSQL sleep .3;echo 5 d 5 d /tmp/out--sql/1/5/2/d/stdout /tmp/out--sql/1/5/2/d/stderr
|
par_sqlandworker_results $MYSQL sleep .3;echo 5 d 5 d /tmp/out--sql/1/5/2/d/stdout /tmp/out--sql/1/5/2/d/stderr
|
||||||
par_sqlandworker_results $MYSQL sleep .3;echo 5 e 5 e /tmp/out--sql/1/5/2/e/stdout /tmp/out--sql/1/5/2/e/stderr
|
par_sqlandworker_results $MYSQL sleep .3;echo 5 e 5 e /tmp/out--sql/1/5/2/e/stdout /tmp/out--sql/1/5/2/e/stderr
|
||||||
par_sqlandworker_results $PG p_wrapper par_sqlandworker_results \$PG
|
par_sqlandworker_results $PG p_wrapper par_sqlandworker_results '$PG'
|
||||||
par_sqlandworker_results $PG Exit=0
|
par_sqlandworker_results $PG Exit=0
|
||||||
par_sqlandworker_results $PG Exit=0
|
par_sqlandworker_results $PG Exit=0
|
||||||
par_sqlandworker_results $PG command | v1 | v2 | stdout | stderr
|
par_sqlandworker_results $PG command | v1 | v2 | stdout | stderr
|
||||||
|
@ -1266,7 +1266,7 @@ par_sqlandworker_results $PG sleep .3;echo 5 d | 5 | d | /tmp/out--sql/1/5/2/
|
||||||
par_sqlandworker_results $PG sleep .3;echo 5 e | 5 | e | /tmp/out--sql/1/5/2/e/stdout | /tmp/out--sql/1/5/2/e/stderr
|
par_sqlandworker_results $PG sleep .3;echo 5 e | 5 | e | /tmp/out--sql/1/5/2/e/stdout | /tmp/out--sql/1/5/2/e/stderr
|
||||||
par_sqlandworker_results $PG (25 rows)
|
par_sqlandworker_results $PG (25 rows)
|
||||||
par_sqlandworker_results $PG
|
par_sqlandworker_results $PG
|
||||||
par_sqlandworker_results $SQLITE p_wrapper par_sqlandworker_results \$SQLITE
|
par_sqlandworker_results $SQLITE p_wrapper par_sqlandworker_results '$SQLITE'
|
||||||
par_sqlandworker_results $SQLITE Exit=0
|
par_sqlandworker_results $SQLITE Exit=0
|
||||||
par_sqlandworker_results $SQLITE Exit=0
|
par_sqlandworker_results $SQLITE Exit=0
|
||||||
par_sqlandworker_results $SQLITE Command|V1|V2|Stdout|Stderr
|
par_sqlandworker_results $SQLITE Command|V1|V2|Stdout|Stderr
|
||||||
|
@ -1295,7 +1295,7 @@ par_sqlandworker_results $SQLITE sleep .3;echo 5 b|5|b|/tmp/out--sql/1/5/2/b/std
|
||||||
par_sqlandworker_results $SQLITE sleep .3;echo 5 c|5|c|/tmp/out--sql/1/5/2/c/stdout|/tmp/out--sql/1/5/2/c/stderr
|
par_sqlandworker_results $SQLITE sleep .3;echo 5 c|5|c|/tmp/out--sql/1/5/2/c/stdout|/tmp/out--sql/1/5/2/c/stderr
|
||||||
par_sqlandworker_results $SQLITE sleep .3;echo 5 d|5|d|/tmp/out--sql/1/5/2/d/stdout|/tmp/out--sql/1/5/2/d/stderr
|
par_sqlandworker_results $SQLITE sleep .3;echo 5 d|5|d|/tmp/out--sql/1/5/2/d/stdout|/tmp/out--sql/1/5/2/d/stderr
|
||||||
par_sqlandworker_results $SQLITE sleep .3;echo 5 e|5|e|/tmp/out--sql/1/5/2/e/stdout|/tmp/out--sql/1/5/2/e/stderr
|
par_sqlandworker_results $SQLITE sleep .3;echo 5 e|5|e|/tmp/out--sql/1/5/2/e/stdout|/tmp/out--sql/1/5/2/e/stderr
|
||||||
par_sqlandworker_tag $MYSQL p_wrapper par_sqlandworker_tag \$MYSQL
|
par_sqlandworker_tag $MYSQL p_wrapper par_sqlandworker_tag '$MYSQL'
|
||||||
par_sqlandworker_tag $MYSQL Exit=0
|
par_sqlandworker_tag $MYSQL Exit=0
|
||||||
par_sqlandworker_tag $MYSQL Exit=0
|
par_sqlandworker_tag $MYSQL Exit=0
|
||||||
par_sqlandworker_tag $MYSQL Command V1 V2 Stdout Stderr
|
par_sqlandworker_tag $MYSQL Command V1 V2 Stdout Stderr
|
||||||
|
@ -1324,7 +1324,7 @@ par_sqlandworker_tag $MYSQL sleep .3;echo 5 b 5 b 5 b\t5 b\n
|
||||||
par_sqlandworker_tag $MYSQL sleep .3;echo 5 c 5 c 5 c\t5 c\n
|
par_sqlandworker_tag $MYSQL sleep .3;echo 5 c 5 c 5 c\t5 c\n
|
||||||
par_sqlandworker_tag $MYSQL sleep .3;echo 5 d 5 d 5 d\t5 d\n
|
par_sqlandworker_tag $MYSQL sleep .3;echo 5 d 5 d 5 d\t5 d\n
|
||||||
par_sqlandworker_tag $MYSQL sleep .3;echo 5 e 5 e 5 e\t5 e\n
|
par_sqlandworker_tag $MYSQL sleep .3;echo 5 e 5 e 5 e\t5 e\n
|
||||||
par_sqlandworker_tag $PG p_wrapper par_sqlandworker_tag \$PG
|
par_sqlandworker_tag $PG p_wrapper par_sqlandworker_tag '$PG'
|
||||||
par_sqlandworker_tag $PG Exit=0
|
par_sqlandworker_tag $PG Exit=0
|
||||||
par_sqlandworker_tag $PG Exit=0
|
par_sqlandworker_tag $PG Exit=0
|
||||||
par_sqlandworker_tag $PG command | v1 | v2 | stdout | stderr
|
par_sqlandworker_tag $PG command | v1 | v2 | stdout | stderr
|
||||||
|
@ -1381,7 +1381,7 @@ par_sqlandworker_tag $PG sleep .3;echo 5 e | 5 | e | 5 e 5 e+|
|
||||||
par_sqlandworker_tag $PG | | | |
|
par_sqlandworker_tag $PG | | | |
|
||||||
par_sqlandworker_tag $PG (25 rows)
|
par_sqlandworker_tag $PG (25 rows)
|
||||||
par_sqlandworker_tag $PG
|
par_sqlandworker_tag $PG
|
||||||
par_sqlandworker_tag $SQLITE p_wrapper par_sqlandworker_tag \$SQLITE
|
par_sqlandworker_tag $SQLITE p_wrapper par_sqlandworker_tag '$SQLITE'
|
||||||
par_sqlandworker_tag $SQLITE Exit=0
|
par_sqlandworker_tag $SQLITE Exit=0
|
||||||
par_sqlandworker_tag $SQLITE Exit=0
|
par_sqlandworker_tag $SQLITE Exit=0
|
||||||
par_sqlandworker_tag $SQLITE Command|V1|V2|Stdout|Stderr
|
par_sqlandworker_tag $SQLITE Command|V1|V2|Stdout|Stderr
|
||||||
|
@ -1435,7 +1435,7 @@ par_sqlandworker_tag $SQLITE sleep .3;echo 5 d|5|d|5 d 5 d
|
||||||
par_sqlandworker_tag $SQLITE |
|
par_sqlandworker_tag $SQLITE |
|
||||||
par_sqlandworker_tag $SQLITE sleep .3;echo 5 e|5|e|5 e 5 e
|
par_sqlandworker_tag $SQLITE sleep .3;echo 5 e|5|e|5 e 5 e
|
||||||
par_sqlandworker_tag $SQLITE |
|
par_sqlandworker_tag $SQLITE |
|
||||||
par_sqlandworker_total_jobs $MYSQL p_wrapper par_sqlandworker_total_jobs \$MYSQL
|
par_sqlandworker_total_jobs $MYSQL p_wrapper par_sqlandworker_total_jobs '$MYSQL'
|
||||||
par_sqlandworker_total_jobs $MYSQL Exit=0
|
par_sqlandworker_total_jobs $MYSQL Exit=0
|
||||||
par_sqlandworker_total_jobs $MYSQL Exit=0
|
par_sqlandworker_total_jobs $MYSQL Exit=0
|
||||||
par_sqlandworker_total_jobs $MYSQL Command V1 V2 Stdout Stderr
|
par_sqlandworker_total_jobs $MYSQL Command V1 V2 Stdout Stderr
|
||||||
|
@ -1464,7 +1464,7 @@ par_sqlandworker_total_jobs $MYSQL echo 22 of 25; sleep .3;echo 5 b 22 of 25\n\n
|
||||||
par_sqlandworker_total_jobs $MYSQL echo 23 of 25; sleep .3;echo 5 c 23 of 25\n\n
|
par_sqlandworker_total_jobs $MYSQL echo 23 of 25; sleep .3;echo 5 c 23 of 25\n\n
|
||||||
par_sqlandworker_total_jobs $MYSQL echo 24 of 25; sleep .3;echo 5 d 24 of 25\n\n
|
par_sqlandworker_total_jobs $MYSQL echo 24 of 25; sleep .3;echo 5 d 24 of 25\n\n
|
||||||
par_sqlandworker_total_jobs $MYSQL echo 25 of 25; sleep .3;echo 5 e 25 of 25\n\n
|
par_sqlandworker_total_jobs $MYSQL echo 25 of 25; sleep .3;echo 5 e 25 of 25\n\n
|
||||||
par_sqlandworker_total_jobs $PG p_wrapper par_sqlandworker_total_jobs \$PG
|
par_sqlandworker_total_jobs $PG p_wrapper par_sqlandworker_total_jobs '$PG'
|
||||||
par_sqlandworker_total_jobs $PG Exit=0
|
par_sqlandworker_total_jobs $PG Exit=0
|
||||||
par_sqlandworker_total_jobs $PG Exit=0
|
par_sqlandworker_total_jobs $PG Exit=0
|
||||||
par_sqlandworker_total_jobs $PG command | v1 | v2 | stdout | stderr
|
par_sqlandworker_total_jobs $PG command | v1 | v2 | stdout | stderr
|
||||||
|
@ -1546,7 +1546,7 @@ par_sqlandworker_total_jobs $PG | | |
|
||||||
par_sqlandworker_total_jobs $PG | | | |
|
par_sqlandworker_total_jobs $PG | | | |
|
||||||
par_sqlandworker_total_jobs $PG (25 rows)
|
par_sqlandworker_total_jobs $PG (25 rows)
|
||||||
par_sqlandworker_total_jobs $PG
|
par_sqlandworker_total_jobs $PG
|
||||||
par_sqlandworker_total_jobs $SQLITE p_wrapper par_sqlandworker_total_jobs \$SQLITE
|
par_sqlandworker_total_jobs $SQLITE p_wrapper par_sqlandworker_total_jobs '$SQLITE'
|
||||||
par_sqlandworker_total_jobs $SQLITE Exit=0
|
par_sqlandworker_total_jobs $SQLITE Exit=0
|
||||||
par_sqlandworker_total_jobs $SQLITE Exit=0
|
par_sqlandworker_total_jobs $SQLITE Exit=0
|
||||||
par_sqlandworker_total_jobs $SQLITE Command|V1|V2|Stdout|Stderr
|
par_sqlandworker_total_jobs $SQLITE Command|V1|V2|Stdout|Stderr
|
||||||
|
@ -1625,7 +1625,7 @@ par_sqlandworker_total_jobs $SQLITE |
|
||||||
par_sqlandworker_total_jobs $SQLITE echo 25 of 25; sleep .3;echo|5|e|25 of 25
|
par_sqlandworker_total_jobs $SQLITE echo 25 of 25; sleep .3;echo|5|e|25 of 25
|
||||||
par_sqlandworker_total_jobs $SQLITE
|
par_sqlandworker_total_jobs $SQLITE
|
||||||
par_sqlandworker_total_jobs $SQLITE |
|
par_sqlandworker_total_jobs $SQLITE |
|
||||||
par_sqlandworker_unbuffer $MYSQL p_wrapper par_sqlandworker_unbuffer \$MYSQL
|
par_sqlandworker_unbuffer $MYSQL p_wrapper par_sqlandworker_unbuffer '$MYSQL'
|
||||||
par_sqlandworker_unbuffer $MYSQL Exit=0
|
par_sqlandworker_unbuffer $MYSQL Exit=0
|
||||||
par_sqlandworker_unbuffer $MYSQL Exit=0
|
par_sqlandworker_unbuffer $MYSQL Exit=0
|
||||||
par_sqlandworker_unbuffer $MYSQL Command V1 V2 Stdout Stderr
|
par_sqlandworker_unbuffer $MYSQL Command V1 V2 Stdout Stderr
|
||||||
|
@ -1654,7 +1654,7 @@ par_sqlandworker_unbuffer $MYSQL sleep .3;echo 5 b 5 b
|
||||||
par_sqlandworker_unbuffer $MYSQL sleep .3;echo 5 c 5 c
|
par_sqlandworker_unbuffer $MYSQL sleep .3;echo 5 c 5 c
|
||||||
par_sqlandworker_unbuffer $MYSQL sleep .3;echo 5 d 5 d
|
par_sqlandworker_unbuffer $MYSQL sleep .3;echo 5 d 5 d
|
||||||
par_sqlandworker_unbuffer $MYSQL sleep .3;echo 5 e 5 e
|
par_sqlandworker_unbuffer $MYSQL sleep .3;echo 5 e 5 e
|
||||||
par_sqlandworker_unbuffer $PG p_wrapper par_sqlandworker_unbuffer \$PG
|
par_sqlandworker_unbuffer $PG p_wrapper par_sqlandworker_unbuffer '$PG'
|
||||||
par_sqlandworker_unbuffer $PG Exit=0
|
par_sqlandworker_unbuffer $PG Exit=0
|
||||||
par_sqlandworker_unbuffer $PG Exit=0
|
par_sqlandworker_unbuffer $PG Exit=0
|
||||||
par_sqlandworker_unbuffer $PG command | v1 | v2 | stdout | stderr
|
par_sqlandworker_unbuffer $PG command | v1 | v2 | stdout | stderr
|
||||||
|
@ -1686,7 +1686,7 @@ par_sqlandworker_unbuffer $PG sleep .3;echo 5 d | 5 | d | |
|
||||||
par_sqlandworker_unbuffer $PG sleep .3;echo 5 e | 5 | e | |
|
par_sqlandworker_unbuffer $PG sleep .3;echo 5 e | 5 | e | |
|
||||||
par_sqlandworker_unbuffer $PG (25 rows)
|
par_sqlandworker_unbuffer $PG (25 rows)
|
||||||
par_sqlandworker_unbuffer $PG
|
par_sqlandworker_unbuffer $PG
|
||||||
par_sqlandworker_unbuffer $SQLITE p_wrapper par_sqlandworker_unbuffer \$SQLITE
|
par_sqlandworker_unbuffer $SQLITE p_wrapper par_sqlandworker_unbuffer '$SQLITE'
|
||||||
par_sqlandworker_unbuffer $SQLITE Exit=0
|
par_sqlandworker_unbuffer $SQLITE Exit=0
|
||||||
par_sqlandworker_unbuffer $SQLITE Exit=0
|
par_sqlandworker_unbuffer $SQLITE Exit=0
|
||||||
par_sqlandworker_unbuffer $SQLITE Command|V1|V2|Stdout|Stderr
|
par_sqlandworker_unbuffer $SQLITE Command|V1|V2|Stdout|Stderr
|
||||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -3,25 +3,25 @@ echo '### Test --load remote'
|
||||||
ssh parallel@lo 'seq 10 | parallel --nice 19 --timeout 15 -j0 -qN0 perl -e while\(1\)\{\ \}' & sleep 1; stdout /usr/bin/time -f %e parallel -S parallel@lo --load 10 sleep ::: 1 | perl -ne '$_ > 10 and print "OK\n"'
|
ssh parallel@lo 'seq 10 | parallel --nice 19 --timeout 15 -j0 -qN0 perl -e while\(1\)\{\ \}' & sleep 1; stdout /usr/bin/time -f %e parallel -S parallel@lo --load 10 sleep ::: 1 | perl -ne '$_ > 10 and print "OK\n"'
|
||||||
OK
|
OK
|
||||||
parallel: Warning: This job was killed because it timed out:
|
parallel: Warning: This job was killed because it timed out:
|
||||||
parallel: Warning: perl -e while\(1\)\{\ \}
|
parallel: Warning: perl -e 'while(1){ }' ''
|
||||||
parallel: Warning: This job was killed because it timed out:
|
parallel: Warning: This job was killed because it timed out:
|
||||||
parallel: Warning: perl -e while\(1\)\{\ \}
|
parallel: Warning: perl -e 'while(1){ }' ''
|
||||||
parallel: Warning: This job was killed because it timed out:
|
parallel: Warning: This job was killed because it timed out:
|
||||||
parallel: Warning: perl -e while\(1\)\{\ \}
|
parallel: Warning: perl -e 'while(1){ }' ''
|
||||||
parallel: Warning: This job was killed because it timed out:
|
parallel: Warning: This job was killed because it timed out:
|
||||||
parallel: Warning: perl -e while\(1\)\{\ \}
|
parallel: Warning: perl -e 'while(1){ }' ''
|
||||||
parallel: Warning: This job was killed because it timed out:
|
parallel: Warning: This job was killed because it timed out:
|
||||||
parallel: Warning: perl -e while\(1\)\{\ \}
|
parallel: Warning: perl -e 'while(1){ }' ''
|
||||||
parallel: Warning: This job was killed because it timed out:
|
parallel: Warning: This job was killed because it timed out:
|
||||||
parallel: Warning: perl -e while\(1\)\{\ \}
|
parallel: Warning: perl -e 'while(1){ }' ''
|
||||||
parallel: Warning: This job was killed because it timed out:
|
parallel: Warning: This job was killed because it timed out:
|
||||||
parallel: Warning: perl -e while\(1\)\{\ \}
|
parallel: Warning: perl -e 'while(1){ }' ''
|
||||||
parallel: Warning: This job was killed because it timed out:
|
parallel: Warning: This job was killed because it timed out:
|
||||||
parallel: Warning: perl -e while\(1\)\{\ \}
|
parallel: Warning: perl -e 'while(1){ }' ''
|
||||||
parallel: Warning: This job was killed because it timed out:
|
parallel: Warning: This job was killed because it timed out:
|
||||||
parallel: Warning: perl -e while\(1\)\{\ \}
|
parallel: Warning: perl -e 'while(1){ }' ''
|
||||||
parallel: Warning: This job was killed because it timed out:
|
parallel: Warning: This job was killed because it timed out:
|
||||||
parallel: Warning: perl -e while\(1\)\{\ \}
|
parallel: Warning: perl -e 'while(1){ }' ''
|
||||||
echo '**'
|
echo '**'
|
||||||
**
|
**
|
||||||
echo '### Stop if all hosts are filtered and there are no hosts left to run on'
|
echo '### Stop if all hosts are filtered and there are no hosts left to run on'
|
||||||
|
@ -58,10 +58,6 @@ FOO=test_csh_filter
|
||||||
HOME=~
|
HOME=~
|
||||||
echo '** bug #41805 done'
|
echo '** bug #41805 done'
|
||||||
** bug #41805 done
|
** bug #41805 done
|
||||||
echo '### Deal with long command lines on remote servers'
|
|
||||||
### Deal with long command lines on remote servers
|
|
||||||
perl -e 'print((("\""x5000)."\n")x26)' | parallel -j1 -S lo -N 10000 echo {} |wc
|
|
||||||
2 26 130026
|
|
||||||
echo '### Test bug #34241: --pipe should not spawn unneeded processes'
|
echo '### Test bug #34241: --pipe should not spawn unneeded processes'
|
||||||
### Test bug #34241: --pipe should not spawn unneeded processes
|
### Test bug #34241: --pipe should not spawn unneeded processes
|
||||||
seq 5 | ssh csh@lo parallel -k --block 5 --pipe -j10 cat\\\;echo Block_end
|
seq 5 | ssh csh@lo parallel -k --block 5 --pipe -j10 cat\\\;echo Block_end
|
||||||
|
@ -211,8 +207,8 @@ ls: cannot access 'bug46519.cc': No such file or directory
|
||||||
ls: cannot access 'bug46519.ccc': No such file or directory
|
ls: cannot access 'bug46519.ccc': No such file or directory
|
||||||
echo '### Test --nice remote'
|
echo '### Test --nice remote'
|
||||||
### Test --nice remote
|
### Test --nice remote
|
||||||
stdout parallel --nice 1 -S lo -vv 'PAR=a bash -c "echo \$PAR {}"' ::: b | perl -pe 's/\S*parallel-server\S*/one-server/;s:[a-z/\\+=0-9]{500,}:base64:i;'
|
stdout parallel --nice 1 -S lo -vv 'PAR=a bash -c "echo \$PAR {}"' ::: b | perl -pe 's/\S*parallel-server\S*/one-server/;s:="[0-9]+":="XXXXX":i;'
|
||||||
ssh lo -- exec perl -e @GNU_Parallel\\\=split/_/,\\\"use_IPC::Open3\\\;_use_MIME::Base64\\\"\\\;eval\\\"@GNU_Parallel\\\"\\\;\\\$chld\\\=\\\$SIG\\\{CHLD\\\}\\\;\\\$SIG\\\{CHLD\\\}\\\=\\\"IGNORE\\\"\\\;my\\\$zip\\\=\\\(grep\\\{-x\\\$_\\\}\\\"/usr/local/bin/bzip2\\\"\\\)\\\[0\\\]\\\|\\\|\\\"bzip2\\\"\\\;open3\\\(\\\$in,\\\$out,\\\"\\\>\\\&STDERR\\\",\\\$zip,\\\"-dc\\\"\\\)\\\;if\\\(my\\\$perlpid\\\=fork\\\)\\\{close\\\$in\\\;\\\$eval\\\=join\\\"\\\",\\\<\\\$out\\\>\\\;close\\\$out\\\;\\\}else\\\{close\\\$out\\\;print\\\$in\\\(decode_base64\\\(join\\\"\\\",@ARGV\\\)\\\)\\\;close\\\$in\\\;exit\\\;\\\}wait\\\;\\\$SIG\\\{CHLD\\\}\\\=\\\$chld\\\;eval\\\$eval\\\; base64;
|
ssh lo -- exec 'perl -e '"'"'$ENV{"PARALLEL_PID"}="XXXXX";$ENV{"PARALLEL_SEQ"}="1";$bashfunc = "";@ARGV="PAR=a bash -c \"echo \\\$PAR b\"";$shell="$ENV{SHELL}";$tmpdir="/tmp/parallel-local-ssh1-tmpdir";$nice=1;do{$ENV{PARALLEL_TMP}=$tmpdir."/par".join"",map{(0..9,"a".."z","A".."Z")[rand(62)]}(1..5);}while(-e$ENV{PARALLEL_TMP});$SIG{CHLD}=sub{$done=1;};$pid=fork;unless($pid){eval{setpgrp};eval{setpriority(0,0,$nice)};exec$shell,"-c",($bashfunc."@ARGV");die"exec:$!\n";}do{$s=$s<1?0.001+$s*1.03:$s;select(undef,undef,undef,$s);}until($done||getppid==1);kill(SIGHUP,-${pid})unless$done;wait;exit($?&127?128+($?&127):1+$?>>8)'"'";
|
||||||
a b
|
a b
|
||||||
echo '**'
|
echo '**'
|
||||||
**
|
**
|
||||||
|
|
|
@ -90,14 +90,14 @@ par_tee_ssh 2
|
||||||
par_tee_ssh 3
|
par_tee_ssh 3
|
||||||
par_tee_ssh 3
|
par_tee_ssh 3
|
||||||
par_wd_no_such_dir ### --wd no-such-dir - csh
|
par_wd_no_such_dir ### --wd no-such-dir - csh
|
||||||
par_wd_no_such_dir mkdir: cannot create directory '/no-such-dir': Permission denied
|
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 parallel: Cannot chdir to /no-such-dir
|
||||||
par_wd_no_such_dir Exit code 1
|
par_wd_no_such_dir Exit code 1
|
||||||
par_wd_no_such_dir ### --wd no-such-dir - tcsh
|
par_wd_no_such_dir ### --wd no-such-dir - tcsh
|
||||||
par_wd_no_such_dir mkdir: cannot create directory '/no-such-dir': Permission denied
|
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 parallel: Cannot chdir to /no-such-dir
|
||||||
par_wd_no_such_dir Exit code 1
|
par_wd_no_such_dir Exit code 1
|
||||||
par_wd_no_such_dir ### --wd no-such-dir - bash
|
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 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 parallel: Cannot chdir to /no-such-dir
|
||||||
par_wd_no_such_dir Exit code 1
|
par_wd_no_such_dir Exit code 1
|
||||||
|
|
|
@ -127,18 +127,18 @@ par_zsh_man exit value 2 should be 2
|
||||||
par_zsh_man Unknown option: no-such-option
|
par_zsh_man Unknown option: no-such-option
|
||||||
par_zsh_man exit value 255 should be 255
|
par_zsh_man exit value 255 should be 255
|
||||||
par_zsh_funky
|
par_zsh_funky
|
||||||
par_zsh_funky \\\\\\\\
|
|
||||||
par_zsh_funky
|
par_zsh_funky
|
||||||
par_zsh_funky
|
par_zsh_funky
|
||||||
par_zsh_funky
!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€亗儎厗噲墛媽崕彁憭摂晼棙櫄洔潪煚、¥ウЖ┆<D096><E29486><EFBFBD>辈炒刀犯购患骄坷谅媚牌侨墒颂臀闲岩釉罩棕仝圮蒉哙徕沅彐玷殛腱眍镳耱篝貊鼬<E8B28A><E9BCAC><EFBFBD><EFBFBD>-funky
|
par_zsh_funky
!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€亗儎厗噲墛媽崕彁憭摂晼棙櫄洔潪煚、¥ウЖ┆<D096><E29486><EFBFBD>辈炒刀犯购患骄坷谅媚牌侨墒颂臀闲岩釉罩棕仝圮蒉哙徕沅彐玷殛腱眍镳耱篝貊鼬<E8B28A><E9BCAC><EFBFBD><EFBFBD>-funky
|
||||||
par_zsh_funky
!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€亗儎厗噲墛媽崕彁憭摂晼棙櫄洔潪煚、¥ウЖ┆<D096><E29486><EFBFBD>辈炒刀犯购患骄坷谅媚牌侨墒颂臀闲岩釉罩棕仝圮蒉哙徕沅彐玷殛腱眍镳耱篝貊鼬<E8B28A><E9BCAC><EFBFBD><EFBFBD>-funky
|
par_zsh_funky
!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€亗儎厗噲墛媽崕彁憭摂晼棙櫄洔潪煚、¥ウЖ┆<D096><E29486><EFBFBD>辈炒刀犯购患骄坷谅媚牌侨墒颂臀闲岩釉罩棕仝圮蒉哙徕沅彐玷殛腱眍镳耱篝貊鼬<E8B28A><E9BCAC><EFBFBD><EFBFBD>-funky
|
||||||
par_zsh_funky space 6
|
par_zsh_funky space 6
|
||||||
par_zsh_funky space 6
|
par_zsh_funky space 6
|
||||||
|
par_zsh_funky ' '
|
||||||
|
par_zsh_funky '
!"#$%&'"'"'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~<><7F><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>﹜ㄓ它夾帚型陋秣捲陷絮溢劃遞蝨螃謝藥齪ヌ圴佮迓玿旂衲欶趹欹詘棰葮摵蜠樉賥濋錎膼瀔嚦黀蘜蠲╭帉爎<E5B889>'
|
||||||
par_zsh_funky 3 arg alias_works
|
par_zsh_funky 3 arg alias_works
|
||||||
par_zsh_funky 3 arg alias_works_over_ssh
|
par_zsh_funky 3 arg alias_works_over_ssh
|
||||||
par_zsh_funky Funky-
|
par_zsh_funky Funky-
|
||||||
par_zsh_funky Funky-
|
par_zsh_funky Funky-
|
||||||
par_zsh_funky \\\
\\\\\\\\\\\\\\ \!\"\#\$%\&\'\(\)\*+,-./0123456789:\;\<\=\>\?@ABCDEFGHIJKLMNOPQRSTUVWXYZ\[\\\]\^_\`abcdefghijklmnopqrstuvwxyz\{\|\}\~€乗俓僜刓匼哱嘰圽塡奬媆孿峔嶾廫怽慭抃揬擻昞朶梊榎橽歕沑淺漒瀄焅燶<E78485><E787B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>╘‐猏玕琝璡甛痋癨盶瞈砛碶礬禱穃竆筡篭籠糪絓綷縗繺羂耚肻腬臷芢荺萛蒤蔦薥蘚蚛蝄蟎衆裓襖覾診誠謀譢豛賊赲踈躙輁轡運郳醆鈂鉢鋅錦鎈鏫鑌閈闬隲靄韁頫颸餦馶騖骪鬨鮘鯸鱘鳿鵟鶿鸤黒齖㘎<E9BD96>
|
|
||||||
par_zsh_funky assoc_val_a
|
par_zsh_funky assoc_val_a
|
||||||
par_zsh_funky assoc_val_a
|
par_zsh_funky assoc_val_a
|
||||||
par_zsh_funky function_works
|
par_zsh_funky function_works
|
||||||
|
@ -368,7 +368,7 @@ par_tcsh_funky
|
||||||
par_tcsh_funky 3 arg alias_works
|
par_tcsh_funky 3 arg alias_works
|
||||||
par_tcsh_funky 3 arg alias_works_over_ssh
|
par_tcsh_funky 3 arg alias_works_over_ssh
|
||||||
par_tcsh_funky Funky-
!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€亗儎厗噲墛媽崕彁憭摂晼棙櫄洔潪煚、¥ウЖ┆<D096><E29486><EFBFBD>辈炒刀犯购患骄坷谅媚牌侨墒颂臀闲岩釉罩棕仝圮蒉哙徕沅彐玷殛腱眍镳耱篝貊鼬<E8B28A><E9BCAC><EFBFBD><EFBFBD>-funky alias_var_works
|
par_tcsh_funky Funky-
!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€亗儎厗噲墛媽崕彁憭摂晼棙櫄洔潪煚、¥ウЖ┆<D096><E29486><EFBFBD>辈炒刀犯购患骄坷谅媚牌侨墒颂臀闲岩釉罩棕仝圮蒉哙徕沅彐玷殛腱眍镳耱篝貊鼬<E8B28A><E9BCAC><EFBFBD><EFBFBD>-funky alias_var_works
|
||||||
par_tcsh_funky Funky-
!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€亗儎厗噲墛媽崕彁憭摂晼棙櫄洔潪煚、¥ウЖ┆<EFBFBD><EFBFBD><EFBFBD>辈炒刀犯购患骄坷谅媚牌侨墒颂臀闲岩釉罩棕仝圮蒉哙徕沅彐玷殛腱眍镳耱篝貊鼬<EFBFBD><EFBFBD><EFBFBD><EFBFBD>-funky alias_var_works_over_ssh
|
par_tcsh_funky Funky-
!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>癒瞽瞿瞻瞼礎禮穡穢穠竄竅簫簧簪簞簣簡糧織繕繞繚繡繒繙罈翹翻職聶<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>獺璽瓊瓣疇疆癟癡矇礙禱穫穩簾簿簸簽簷籀繫繭繹繩繪羅繳羶羹羸臘藩-funky alias_var_works_over_ssh
|
||||||
par_tcsh_funky \\\\\\\\ \ \\\
\\\\\\\\\\\\\\ \!\"\#\$%\&\'\(\)\*+,-./0123456789:\;\<\=\>\?@ABCDEFGHIJKLMNOPQRSTUVWXYZ\[\\\]\^_\`abcdefghijklmnopqrstuvwxyz\{\|\}\~€乗俓僜刓匼哱嘰圽塡奬媆孿峔嶾廫怽慭抃揬擻昞朶梊榎橽歕沑淺漒瀄焅燶<E78485><E787B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>╘‐猏玕琝璡甛痋癨盶瞈砛碶礬禱穃竆筡篭籠糪絓綷縗繺羂耚肻腬臷芢荺萛蒤蔦薥蘚蚛蝄蟎衆裓襖覾診誠謀譢豛賊赲踈躙輁轡運郳醆鈂鉢鋅錦鎈鏫鑌閈闬隲靄韁頫颸餦馶騖骪鬨鮘鯸鱘鳿鵟鶿鸤黒齖㘎<E9BD96>
|
par_tcsh_funky \\\\\\\\ \ \\\
\\\\\\\\\\\\\\ \!\"\#\$%\&\'\(\)\*+,-./0123456789:\;\<\=\>\?@ABCDEFGHIJKLMNOPQRSTUVWXYZ\[\\\]\^_\`abcdefghijklmnopqrstuvwxyz\{\|\}\~€乗俓僜刓匼哱嘰圽塡奬媆孿峔嶾廫怽慭抃揬擻昞朶梊榎橽歕沑淺漒瀄焅燶<E78485><E787B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>╘‐猏玕琝璡甛痋癨盶瞈砛碶礬禱穃竆筡篭籠糪絓綷縗繺羂耚肻腬臷芢荺萛蒤蔦薥蘚蚛蝄蟎衆裓襖覾診誠謀譢豛賊赲踈躙輁轡運郳醆鈂鉢鋅錦鎈鏫鑌閈闬隲靄韁頫颸餦馶騖骪鬨鮘鯸鱘鳿鵟鶿鸤黒齖㘎<E9BD96>
|
||||||
par_tcsh_funky func_echo: Command not found.
|
par_tcsh_funky func_echo: Command not found.
|
||||||
par_tcsh_funky func_echo: Command not found.
|
par_tcsh_funky func_echo: Command not found.
|
||||||
|
@ -474,10 +474,10 @@ par_sh_man exit value 2 should be 2
|
||||||
par_sh_man Unknown option: no-such-option
|
par_sh_man Unknown option: no-such-option
|
||||||
par_sh_man exit value 255 should be 255
|
par_sh_man exit value 255 should be 255
|
||||||
par_sh_funky
|
par_sh_funky
|
||||||
|
par_sh_funky ' '
|
||||||
|
par_sh_funky '
!"#$%&'"'"'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~<><7F><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>﹜ㄓ它夾帚型陋秣捲陷絮溢劃遞蝨螃謝藥齪ヌ圴佮迓玿旂衲欶趹欹詘棰葮摵蜠樉賥濋錎膼瀔嚦黀蘜蠲╭帉爎<E5B889>'
|
||||||
par_sh_funky 3 arg alias_works
|
par_sh_funky 3 arg alias_works
|
||||||
par_sh_funky 3 arg alias_works_over_ssh
|
par_sh_funky 3 arg alias_works_over_ssh
|
||||||
par_sh_funky \\\\\\\\
|
|
||||||
par_sh_funky \\\
\\\\\\\\\\\\\\ \!\"\#\$%\&\'\(\)\*+,-./0123456789:\;\<\=\>\?@ABCDEFGHIJKLMNOPQRSTUVWXYZ\[\\\]\^_\`abcdefghijklmnopqrstuvwxyz\{\|\}\~€乗俓僜刓匼哱嘰圽塡奬媆孿峔嶾廫怽慭抃揬擻昞朶梊榎橽歕沑淺漒瀄焅燶<E78485><E787B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>╘‐猏玕琝璡甛痋癨盶瞈砛碶礬禱穃竆筡篭籠糪絓綷縗繺羂耚肻腬臷芢荺萛蒤蔦薥蘚蚛蝄蟎衆裓襖覾診誠謀譢豛賊赲踈躙輁轡運郳醆鈂鉢鋅錦鎈鏫鑌閈闬隲靄韁頫颸餦馶騖骪鬨鮘鯸鱘鳿鵟鶿鸤黒齖㘎<E9BD96>
|
|
||||||
par_sh_environment_too_big bug #50815: env_parallel should warn if the environment is too big
|
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
|
||||||
par_sh_environment_too_big OK_bigvar_remote
|
par_sh_environment_too_big OK_bigvar_remote
|
||||||
|
@ -681,16 +681,16 @@ par_mksh_man exit value 2 should be 2
|
||||||
par_mksh_man Unknown option: no-such-option
|
par_mksh_man Unknown option: no-such-option
|
||||||
par_mksh_man exit value 255 should be 255
|
par_mksh_man exit value 255 should be 255
|
||||||
par_mksh_funky
|
par_mksh_funky
|
||||||
par_mksh_funky \\\\\\\\
|
|
||||||
par_mksh_funky
!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€亗儎厗噲墛媽崕彁憭摂晼棙櫄洔潪煚、¥ウЖ┆<D096><E29486><EFBFBD>辈炒刀犯购患骄坷谅媚牌侨墒颂臀闲岩釉罩棕仝圮蒉哙徕沅彐玷殛腱眍镳耱篝貊鼬<E8B28A><E9BCAC><EFBFBD><EFBFBD>-funky
|
par_mksh_funky
!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€亗儎厗噲墛媽崕彁憭摂晼棙櫄洔潪煚、¥ウЖ┆<D096><E29486><EFBFBD>辈炒刀犯购患骄坷谅媚牌侨墒颂臀闲岩釉罩棕仝圮蒉哙徕沅彐玷殛腱眍镳耱篝貊鼬<E8B28A><E9BCAC><EFBFBD><EFBFBD>-funky
|
||||||
par_mksh_funky
!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€亗儎厗噲墛媽崕彁憭摂晼棙櫄洔潪煚、¥ウЖ┆<D096><E29486><EFBFBD>辈炒刀犯购患骄坷谅媚牌侨墒颂臀闲岩釉罩棕仝圮蒉哙徕沅彐玷殛腱眍镳耱篝貊鼬<E8B28A><E9BCAC><EFBFBD><EFBFBD>-funky
|
par_mksh_funky
!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€亗儎厗噲墛媽崕彁憭摂晼棙櫄洔潪煚、¥ウЖ┆<D096><E29486><EFBFBD>辈炒刀犯购患骄坷谅媚牌侨墒颂臀闲岩釉罩棕仝圮蒉哙徕沅彐玷殛腱眍镳耱篝貊鼬<E8B28A><E9BCAC><EFBFBD><EFBFBD>-funky
|
||||||
par_mksh_funky space 6
|
par_mksh_funky space 6
|
||||||
par_mksh_funky space 6
|
par_mksh_funky space 6
|
||||||
|
par_mksh_funky ' '
|
||||||
|
par_mksh_funky '
!"#$%&'"'"'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~<><7F><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>﹜ㄓ它夾帚型陋秣捲陷絮溢劃遞蝨螃謝藥齪ヌ圴佮迓玿旂衲欶趹欹詘棰葮摵蜠樉賥濋錎膼瀔嚦黀蘜蠲╭帉爎<E5B889>'
|
||||||
par_mksh_funky 3 arg alias_works
|
par_mksh_funky 3 arg alias_works
|
||||||
par_mksh_funky 3 arg alias_works_over_ssh
|
par_mksh_funky 3 arg alias_works_over_ssh
|
||||||
par_mksh_funky Funky-
|
par_mksh_funky Funky-
|
||||||
par_mksh_funky Funky-
|
par_mksh_funky Funky-
|
||||||
par_mksh_funky \\\
\\\\\\\\\\\\\\ \!\"\#\$%\&\'\(\)\*+,-./0123456789:\;\<\=\>\?@ABCDEFGHIJKLMNOPQRSTUVWXYZ\[\\\]\^_\`abcdefghijklmnopqrstuvwxyz\{\|\}\~€乗俓僜刓匼哱嘰圽塡奬媆孿峔嶾廫怽慭抃揬擻昞朶梊榎橽歕沑淺漒瀄焅燶<E78485><E787B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>╘‐猏玕琝璡甛痋癨盶瞈砛碶礬禱穃竆筡篭籠糪絓綷縗繺羂耚肻腬臷芢荺萛蒤蔦薥蘚蚛蝄蟎衆裓襖覾診誠謀譢豛賊赲踈躙輁轡運郳醆鈂鉢鋅錦鎈鏫鑌閈闬隲靄韁頫颸餦馶騖骪鬨鮘鯸鱘鳿鵟鶿鸤黒齖㘎<E9BD96>
|
|
||||||
par_mksh_funky function_works
|
par_mksh_funky function_works
|
||||||
par_mksh_funky function_works_over_ssh
|
par_mksh_funky function_works_over_ssh
|
||||||
par_mksh_funky myvar works
|
par_mksh_funky myvar works
|
||||||
|
@ -955,20 +955,25 @@ par_ksh_man arrays
|
||||||
par_ksh_man with = & " ! '
|
par_ksh_man with = & " ! '
|
||||||
par_ksh_man work,
|
par_ksh_man work,
|
||||||
par_ksh_man too
|
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 /usr/bin/ksh: line 21: syntax error at line XXX: `{' unmatched
|
||||||
|
par_ksh_man /usr/bin/ksh: line 21: syntax error at line XXX: `{' unmatched
|
||||||
|
par_ksh_man /usr/bin/ksh: line 21: syntax error at line XXX: `{' unmatched
|
||||||
par_ksh_man exit value 2 should be 2
|
par_ksh_man exit value 2 should be 2
|
||||||
par_ksh_man Unknown option: no-such-option
|
par_ksh_man Unknown option: no-such-option
|
||||||
par_ksh_man exit value 255 should be 255
|
par_ksh_man exit value 255 should be 255
|
||||||
par_ksh_funky
|
par_ksh_funky
|
||||||
par_ksh_funky \\\\\\\\
|
|
||||||
par_ksh_funky
!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€亗儎厗噲墛媽崕彁憭摂晼棙櫄洔潪煚、¥ウЖ┆<D096><E29486><EFBFBD>辈炒刀犯购患骄坷谅媚牌侨墒颂臀闲岩釉罩棕仝圮蒉哙徕沅彐玷殛腱眍镳耱篝貊鼬<E8B28A><E9BCAC><EFBFBD><EFBFBD>-funky
|
par_ksh_funky
!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€亗儎厗噲墛媽崕彁憭摂晼棙櫄洔潪煚、¥ウЖ┆<D096><E29486><EFBFBD>辈炒刀犯购患骄坷谅媚牌侨墒颂臀闲岩釉罩棕仝圮蒉哙徕沅彐玷殛腱眍镳耱篝貊鼬<E8B28A><E9BCAC><EFBFBD><EFBFBD>-funky
|
||||||
par_ksh_funky
!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€亗儎厗噲墛媽崕彁憭摂晼棙櫄洔潪煚、¥ウЖ┆<D096><E29486><EFBFBD>辈炒刀犯购患骄坷谅媚牌侨墒颂臀闲岩釉罩棕仝圮蒉哙徕沅彐玷殛腱眍镳耱篝貊鼬<E8B28A><E9BCAC><EFBFBD><EFBFBD>-funky
|
par_ksh_funky
!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€亗儎厗噲墛媽崕彁憭摂晼棙櫄洔潪煚、¥ウЖ┆<D096><E29486><EFBFBD>辈炒刀犯购患骄坷谅媚牌侨墒颂臀闲岩釉罩棕仝圮蒉哙徕沅彐玷殛腱眍镳耱篝貊鼬<E8B28A><E9BCAC><EFBFBD><EFBFBD>-funky
|
||||||
par_ksh_funky space 6
|
par_ksh_funky space 6
|
||||||
par_ksh_funky space 6
|
par_ksh_funky space 6
|
||||||
|
par_ksh_funky ' '
|
||||||
|
par_ksh_funky '
!"#$%&'"'"'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~<><7F><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>﹜ㄓ它夾帚型陋秣捲陷絮溢劃遞蝨螃謝藥齪ヌ圴佮迓玿旂衲欶趹欹詘棰葮摵蜠樉賥濋錎膼瀔嚦黀蘜蠲╭帉爎<E5B889>'
|
||||||
par_ksh_funky 3 arg alias_works
|
par_ksh_funky 3 arg alias_works
|
||||||
par_ksh_funky 3 arg alias_works_over_ssh
|
par_ksh_funky 3 arg alias_works_over_ssh
|
||||||
par_ksh_funky Funky-
|
par_ksh_funky Funky-
|
||||||
par_ksh_funky Funky-
|
par_ksh_funky Funky-
|
||||||
par_ksh_funky \\\
\\\\\\\\\\\\\\ \!\"\#\$%\&\'\(\)\*+,-./0123456789:\;\<\=\>\?@ABCDEFGHIJKLMNOPQRSTUVWXYZ\[\\\]\^_\`abcdefghijklmnopqrstuvwxyz\{\|\}\~€乗俓僜刓匼哱嘰圽塡奬媆孿峔嶾廫怽慭抃揬擻昞朶梊榎橽歕沑淺漒瀄焅燶<E78485><E787B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>╘‐猏玕琝璡甛痋癨盶瞈砛碶礬禱穃竆筡篭籠糪絓綷縗繺羂耚肻腬臷芢荺萛蒤蔦薥蘚蚛蝄蟎衆裓襖覾診誠謀譢豛賊赲踈躙輁轡運郳醆鈂鉢鋅錦鎈鏫鑌閈闬隲靄韁頫颸餦馶騖骪鬨鮘鯸鱘鳿鵟鶿鸤黒齖㘎<E9BD96>
|
|
||||||
par_ksh_funky assoc_val_a
|
par_ksh_funky assoc_val_a
|
||||||
par_ksh_funky assoc_val_a
|
par_ksh_funky assoc_val_a
|
||||||
par_ksh_funky function_works
|
par_ksh_funky function_works
|
||||||
|
@ -1125,15 +1130,15 @@ par_fish_underscore aliases and arrays in functions work
|
||||||
par_fish_underscore aliases functions work
|
par_fish_underscore aliases functions work
|
||||||
par_fish_underscore aliases functions work
|
par_fish_underscore aliases functions work
|
||||||
par_fish_underscore ^
|
par_fish_underscore ^
|
||||||
par_fish_underscore in function 'myfunc'
|
par_fish_underscore in function <EFBFBD>騦yfunc<EFBFBD><EFBFBD>
|
||||||
par_fish_underscore called on standard input
|
par_fish_underscore called on standard input
|
||||||
par_fish_underscore with parameter list 'work'
|
par_fish_underscore with parameter list <EFBFBD>菏ork<EFBFBD><EFBFBD>
|
||||||
par_fish_underscore
|
par_fish_underscore
|
||||||
par_fish_underscore OK if ^^^^^^^^^^^^^^^^^ no myecho
|
par_fish_underscore OK if ^^^^^^^^^^^^^^^^^ no myecho
|
||||||
par_fish_underscore ^
|
par_fish_underscore ^
|
||||||
par_fish_underscore in function 'myfunc'
|
par_fish_underscore in function <EFBFBD>騦yfunc<EFBFBD><EFBFBD>
|
||||||
par_fish_underscore called on standard input
|
par_fish_underscore called on standard input
|
||||||
par_fish_underscore with parameter list 'work'
|
par_fish_underscore with parameter list <EFBFBD>菏ork<EFBFBD><EFBFBD>
|
||||||
par_fish_underscore
|
par_fish_underscore
|
||||||
par_fish_underscore OK if ^^^^^^^^^^^^^^^^^ no myecho
|
par_fish_underscore OK if ^^^^^^^^^^^^^^^^^ no myecho
|
||||||
par_fish_underscore ^
|
par_fish_underscore ^
|
||||||
|
@ -1218,12 +1223,14 @@ par_fish_funky
|
||||||
par_fish_funky
|
par_fish_funky
|
||||||
par_fish_funky
|
par_fish_funky
|
||||||
par_fish_funky
|
par_fish_funky
|
||||||
par_fish_funky \\\\\\\\ \ \\\
\\\\\\\\\\\\\\ \ \!\"\#\$%\&\'\(\)\*+,-./0123456789:\;\<\=\>\?@ABCDEFGHIJKLMNOPQRSTUVWXYZ\[\\\]\^_\`abcdefghijklmnopqrstuvwxyz\{\|\}\~€乗俓僜刓匼哱嘰圽塡奬媆孿峔嶾廫怽慭抃揬擻昞朶梊榎橽歕沑淺漒瀄焅燶<E78485><E787B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>╘‐猏玕琝璡甛痋癨盶瞈砛碶礬禱穃竆筡篭籠糪絓綷縗繺羂耚肻腬臷芢荺萛蒤蔦薥蘚蚛蝄蟎衆裓襖覾診誠謀譢豛賊赲踈躙輁轡運郳醆鈂鉢鋅錦鎈鏫鑌閈闬隲靄韁頫颸餦馶騖骪鬨鮘鯸鱘鳿鵟鶿鸤黒齖㘎<E9BD96>
|
par_fish_funky '
!"#$%&'"'"'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~<><7F><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>﹜ㄓ它夾帚型陋秣捲陷絮溢劃遞蝨螃謝藥齪ヌ圴佮迓玿旂衲欶趹欹詘棰葮摵蜠樉賥濋錎膼瀔嚦黀蘜蠲╭帉爎<E5B889>'
|
||||||
par_fish_environment_too_big Not implemented
|
par_fish_environment_too_big Not implemented
|
||||||
par_fish_env_parallel_session Not implemented
|
par_fish_env_parallel_session Not implemented
|
||||||
par_fish_env_parallel bug #50435: Remote fifo broke in 20150522
|
par_fish_env_parallel bug #50435: Remote fifo broke in 20150522
|
||||||
par_fish_env_parallel data from stdin
|
par_fish_env_parallel TODO fix env_parallel --fifo
|
||||||
par_fish_env_parallel OK
|
par_fish_env_parallel 'end' outside of a block
|
||||||
|
par_fish_env_parallel fish: end
|
||||||
|
par_fish_env_parallel ^
|
||||||
par_fish_env_parallel data from stdin
|
par_fish_env_parallel data from stdin
|
||||||
par_fish_env_parallel OK
|
par_fish_env_parallel OK
|
||||||
par_fish_env_parallel $? is not the exit status. In fish, please use $status.
|
par_fish_env_parallel $? is not the exit status. In fish, please use $status.
|
||||||
|
@ -1306,10 +1313,10 @@ par_dash_man exit value 2 should be 2
|
||||||
par_dash_man Unknown option: no-such-option
|
par_dash_man Unknown option: no-such-option
|
||||||
par_dash_man exit value 255 should be 255
|
par_dash_man exit value 255 should be 255
|
||||||
par_dash_funky
|
par_dash_funky
|
||||||
|
par_dash_funky ' '
|
||||||
|
par_dash_funky '
!"#$%&'"'"'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~<><7F><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>﹜ㄓ它夾帚型陋秣捲陷絮溢劃遞蝨螃謝藥齪ヌ圴佮迓玿旂衲欶趹欹詘棰葮摵蜠樉賥濋錎膼瀔嚦黀蘜蠲╭帉爎<E5B889>'
|
||||||
par_dash_funky 3 arg alias_works
|
par_dash_funky 3 arg alias_works
|
||||||
par_dash_funky 3 arg alias_works_over_ssh
|
par_dash_funky 3 arg alias_works_over_ssh
|
||||||
par_dash_funky \\\\\\\\
|
|
||||||
par_dash_funky \\\
\\\\\\\\\\\\\\ \!\"\#\$%\&\'\(\)\*+,-./0123456789:\;\<\=\>\?@ABCDEFGHIJKLMNOPQRSTUVWXYZ\[\\\]\^_\`abcdefghijklmnopqrstuvwxyz\{\|\}\~€乗俓僜刓匼哱嘰圽塡奬媆孿峔嶾廫怽慭抃揬擻昞朶梊榎橽歕沑淺漒瀄焅燶<E78485><E787B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>╘‐猏玕琝璡甛痋癨盶瞈砛碶礬禱穃竆筡篭籠糪絓綷縗繺羂耚肻腬臷芢荺萛蒤蔦薥蘚蚛蝄蟎衆裓襖覾診誠謀譢豛賊赲踈躙輁轡運郳醆鈂鉢鋅錦鎈鏫鑌閈闬隲靄韁頫颸餦馶騖骪鬨鮘鯸鱘鳿鵟鶿鸤黒齖㘎<E9BD96>
|
|
||||||
par_dash_environment_too_big bug #50815: env_parallel should warn if the environment is too big
|
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
|
||||||
par_dash_environment_too_big OK_bigvar_remote
|
par_dash_environment_too_big OK_bigvar_remote
|
||||||
|
@ -1623,21 +1630,21 @@ par_bash_man exit value 2 should be 2
|
||||||
par_bash_man Unknown option: no-such-option
|
par_bash_man Unknown option: no-such-option
|
||||||
par_bash_man exit value 255 should be 255
|
par_bash_man exit value 255 should be 255
|
||||||
par_bash_funky
|
par_bash_funky
|
||||||
par_bash_funky \\\\\\\\
|
|
||||||
par_bash_funky
|
par_bash_funky
|
||||||
par_bash_funky
|
par_bash_funky
|
||||||
par_bash_funky -funkymultiline
|
par_bash_funky -funkymultiline
|
||||||
par_bash_funky -funkymultiline
|
par_bash_funky -funkymultiline
|
||||||
par_bash_funky space 6
|
par_bash_funky space 6
|
||||||
par_bash_funky space 6
|
par_bash_funky space 6
|
||||||
|
par_bash_funky ' '
|
||||||
|
par_bash_funky ''
|
||||||
|
par_bash_funky '
!"#$%&'"'"'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~<7E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>﹜ㄓ它夾帚型陋秣捲陷絮溢劃遞蝨螃謝藥齪ヌ圴佮迓玿旂衲欶趹欹詘棰葮摵蜠樉賥濋錎膼瀔嚦黀蘜蠲╭帉爎<E5B889>'
|
||||||
par_bash_funky 3 arg alias_works
|
par_bash_funky 3 arg alias_works
|
||||||
par_bash_funky 3 arg alias_works_over_ssh
|
par_bash_funky 3 arg alias_works_over_ssh
|
||||||
par_bash_funky Funkyline-
!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€亗儎厗噲墛媽崕彁憭摂晼棙櫄洔潪煚、¥ウЖ┆<D096><E29486><EFBFBD>辈炒刀犯购患骄坷谅媚牌侨墒颂臀闲岩釉罩棕仝圮蒉哙徕沅彐玷殛腱眍镳耱篝貊鼬<E8B28A><E9BCAC><EFBFBD><EFBFBD>-funkyline
|
par_bash_funky Funkyline-
!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€亗儎厗噲墛媽崕彁憭摂晼棙櫄洔潪煚、¥ウЖ┆<D096><E29486><EFBFBD>辈炒刀犯购患骄坷谅媚牌侨墒颂臀闲岩釉罩棕仝圮蒉哙徕沅彐玷殛腱眍镳耱篝貊鼬<E8B28A><E9BCAC><EFBFBD><EFBFBD>-funkyline
|
||||||
par_bash_funky Funkyline-
!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€亗儎厗噲墛媽崕彁憭摂晼棙櫄洔潪煚、¥ウЖ┆<D096><E29486><EFBFBD>辈炒刀犯购患骄坷谅媚牌侨墒颂臀闲岩釉罩棕仝圮蒉哙徕沅彐玷殛腱眍镳耱篝貊鼬<E8B28A><E9BCAC><EFBFBD><EFBFBD>-funkyline
|
par_bash_funky Funkyline-
!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€亗儎厗噲墛媽崕彁憭摂晼棙櫄洔潪煚、¥ウЖ┆<D096><E29486><EFBFBD>辈炒刀犯购患骄坷谅媚牌侨墒颂臀闲岩釉罩棕仝圮蒉哙徕沅彐玷殛腱眍镳耱篝貊鼬<E8B28A><E9BCAC><EFBFBD><EFBFBD>-funkyline
|
||||||
par_bash_funky Funkymultiline-
|
par_bash_funky Funkymultiline-
|
||||||
par_bash_funky Funkymultiline-
|
par_bash_funky Funkymultiline-
|
||||||
par_bash_funky \\
|
|
||||||
par_bash_funky \
\\\\\\\\\\\\\\ \!\"\#\$%\&\'\(\)\*+,-./0123456789:\;\<\=\>\?@ABCDEFGHIJKLMNOPQRSTUVWXYZ\[\\\]\^_\`abcdefghijklmnopqrstuvwxyz\{\|\}\~€乗俓僜刓匼哱嘰圽塡奬媆孿峔嶾廫怽慭抃揬擻昞朶梊榎橽歕沑淺漒瀄焅燶<E78485><E787B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>╘‐猏玕琝璡甛痋癨盶瞈砛碶礬禱穃竆筡篭籠糪絓綷縗繺羂耚肻腬臷芢荺萛蒤蔦薥蘚蚛蝄蟎衆裓襖覾診誠謀譢豛賊赲踈躙輁轡運郳醆鈂鉢鋅錦鎈鏫鑌閈闬隲靄韁頫颸餦馶騖骪鬨鮘鯸鱘鳿鵟鶿鸤黒齖㘎<E9BD96>
|
|
||||||
par_bash_funky assoc_val_a
|
par_bash_funky assoc_val_a
|
||||||
par_bash_funky assoc_val_a
|
par_bash_funky assoc_val_a
|
||||||
par_bash_funky function_works
|
par_bash_funky function_works
|
||||||
|
@ -1848,10 +1855,10 @@ par_ash_man exit value 2 should be 2
|
||||||
par_ash_man Unknown option: no-such-option
|
par_ash_man Unknown option: no-such-option
|
||||||
par_ash_man exit value 255 should be 255
|
par_ash_man exit value 255 should be 255
|
||||||
par_ash_funky
|
par_ash_funky
|
||||||
|
par_ash_funky ' '
|
||||||
|
par_ash_funky '
!"#$%&'"'"'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~<><7F><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>﹜ㄓ它夾帚型陋秣捲陷絮溢劃遞蝨螃謝藥齪ヌ圴佮迓玿旂衲欶趹欹詘棰葮摵蜠樉賥濋錎膼瀔嚦黀蘜蠲╭帉爎<E5B889>'
|
||||||
par_ash_funky 3 arg alias_works
|
par_ash_funky 3 arg alias_works
|
||||||
par_ash_funky 3 arg alias_works_over_ssh
|
par_ash_funky 3 arg alias_works_over_ssh
|
||||||
par_ash_funky \\\\\\\\
|
|
||||||
par_ash_funky \\\
\\\\\\\\\\\\\\ \!\"\#\$%\&\'\(\)\*+,-./0123456789:\;\<\=\>\?@ABCDEFGHIJKLMNOPQRSTUVWXYZ\[\\\]\^_\`abcdefghijklmnopqrstuvwxyz\{\|\}\~€乗俓僜刓匼哱嘰圽塡奬媆孿峔嶾廫怽慭抃揬擻昞朶梊榎橽歕沑淺漒瀄焅燶<E78485><E787B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>╘‐猏玕琝璡甛痋癨盶瞈砛碶礬禱穃竆筡篭籠糪絓綷縗繺羂耚肻腬臷芢荺萛蒤蔦薥蘚蚛蝄蟎衆裓襖覾診誠謀譢豛賊赲踈躙輁轡運郳醆鈂鉢鋅錦鎈鏫鑌閈闬隲靄韁頫颸餦馶騖骪鬨鮘鯸鱘鳿鵟鶿鸤黒齖㘎<E9BD96>
|
|
||||||
par_ash_environment_too_big bug #50815: env_parallel should warn if the environment is too big
|
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
|
||||||
par_ash_environment_too_big OK_bigvar_remote
|
par_ash_environment_too_big OK_bigvar_remote
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
par_PARALLEL_RSYNC_OPTS ### test rsync opts
|
par_PARALLEL_RSYNC_OPTS ### test rsync opts
|
||||||
par_PARALLEL_RSYNC_OPTS rsync --protocol 30 -rlDzRRRRrsync --protocol 30 --rsync-path=cd\ ././.\;\ rsync -rlDzRRRRrsync --protocol 30 -zzrrllddRRRRrsync --protocol 30 --rsync-path=cd\ ././.\;\ rsync -zzrrllddRRRR
|
par_PARALLEL_RSYNC_OPTS rsync --protocol 30 -rlDzRRRRrsync --protocol 30 --rsync-path='cd ././.; rsync' -rlDzRRRRrsync --protocol 30 -zzrrllddRRRRrsync --protocol 30 --rsync-path='cd ././.; rsync' -zzrrllddRRRR
|
||||||
par_bar_m ### test --bar -m
|
par_bar_m ### test --bar -m
|
||||||
par_bar_m 0
|
par_bar_m 0
|
||||||
par_bar_m 50
|
par_bar_m 50
|
||||||
|
|
|
@ -195,8 +195,8 @@ a_b_c_d
|
||||||
echo '### Test of --trim n'
|
echo '### Test of --trim n'
|
||||||
### Test of --trim n
|
### Test of --trim n
|
||||||
(echo 'a% c %%b'; echo a%c% b %d) | parallel -k --trim n --colsep %+ echo '"{1}_{3}_{2}_{4}"'
|
(echo 'a% c %%b'; echo a%c% b %d) | parallel -k --trim n --colsep %+ echo '"{1}_{3}_{2}_{4}"'
|
||||||
a_b_\ c\ _
|
a_b_' c '_
|
||||||
a_\ b\ _c_d
|
a_' b '_c_d
|
||||||
parallel -k -C %+ echo '"{1}_{3}_{2}_{4}"' ::: 'a% c %%b' 'a%c% b %d'
|
parallel -k -C %+ echo '"{1}_{3}_{2}_{4}"' ::: 'a% c %%b' 'a%c% b %d'
|
||||||
a_b_c_
|
a_b_c_
|
||||||
a_b_c_d
|
a_b_c_d
|
||||||
|
|
Binary file not shown.
|
@ -1,8 +1,8 @@
|
||||||
04f23d767b301409aac59a612efcd727 -
|
c17a7b2d20f81d751aa627d6ba14dcc9 -
|
||||||
There are 6246 dirs with 6246 files
|
There are 6246 dirs with 6246 files
|
||||||
Removing files
|
Removing files
|
||||||
643fe9e7808976565b33a6fbc932428b -
|
4599cfc9b33244e96b7bf5b4f40e73ea -
|
||||||
There are 6246 dirs with files
|
There are 6246 dirs with files
|
||||||
Removing dirs
|
Removing dirs
|
||||||
7d89b0dc655b91f358a5cee5f4b2d1d7 -
|
28030a604f2e7381b234bbff3b13be9d -
|
||||||
There are 1 dirs with files
|
There are 1 dirs with files
|
||||||
|
|
Binary file not shown.
|
@ -89,7 +89,7 @@ from one to xoney
|
||||||
xargs: argument list too long
|
xargs: argument list too long
|
||||||
stdsort parallel -k -i -s26 -0 echo from \{\} to x{}y < items-0.xi
|
stdsort parallel -k -i -s26 -0 echo from \{\} to x{}y < items-0.xi
|
||||||
|
|
||||||
parallel: Error: Command line too long (42 >= 26) at input 0:
|
parallel: Error: Command line too long (32 >= 26) at input 0:
|
||||||
echo '### -l -0 echo < ldata-0.xi'
|
echo '### -l -0 echo < ldata-0.xi'
|
||||||
### -l -0 echo < ldata-0.xi
|
### -l -0 echo < ldata-0.xi
|
||||||
stdout xargs -l -0 echo < ldata-0.xi
|
stdout xargs -l -0 echo < ldata-0.xi
|
||||||
|
@ -449,7 +449,7 @@ this plus that
|
||||||
|
|
||||||
stdout parallel -k -t -0 echo this plus that < space.xi
|
stdout parallel -k -t -0 echo this plus that < space.xi
|
||||||
echo this plus that '
|
echo this plus that '
|
||||||
'\ \\
\ \'
|
|
||||||
'
|
'
|
||||||
this plus that
|
this plus that
|
||||||
|
|
||||||
|
@ -1212,7 +1212,7 @@ stdsort xargs -i -s26 echo from \{\} to x{}y < items.xi
|
||||||
from dumb to xdumby
|
from dumb to xdumby
|
||||||
xargs: argument list too long
|
xargs: argument list too long
|
||||||
stdsort parallel -k -i -s26 echo from \{\} to x{}y < items.xi
|
stdsort parallel -k -i -s26 echo from \{\} to x{}y < items.xi
|
||||||
parallel: Error: Command line too long (36 >= 26) at input 0:
|
parallel: Error: Command line too long (30 >= 26) at input 0:
|
||||||
echo '### -i__ echo FIRST __ IS OK < quotes.xi'
|
echo '### -i__ echo FIRST __ IS OK < quotes.xi'
|
||||||
### -i__ echo FIRST __ IS OK < quotes.xi
|
### -i__ echo FIRST __ IS OK < quotes.xi
|
||||||
stdout xargs -i__ echo FIRST __ IS OK < quotes.xi
|
stdout xargs -i__ echo FIRST __ IS OK < quotes.xi
|
||||||
|
@ -1344,7 +1344,7 @@ echo this plus that
|
||||||
this plus that
|
this plus that
|
||||||
stdout parallel -k -t echo this plus that < space.xi
|
stdout parallel -k -t echo this plus that < space.xi
|
||||||
echo this plus that ''
|
echo this plus that ''
|
||||||
echo this plus that \ \\
\ \
|
echo this plus that '
'
|
||||||
this plus that
|
this plus that
|
||||||
this plus that
|
this plus that
|
||||||
echo '### -n1 printf "@%s@\n" < empty.xi'
|
echo '### -n1 printf "@%s@\n" < empty.xi'
|
||||||
|
@ -1366,7 +1366,7 @@ foo bar
|
||||||
echo baz ugh
|
echo baz ugh
|
||||||
baz ugh
|
baz ugh
|
||||||
stdout parallel -k -n2 -t echo < foobar.xi
|
stdout parallel -k -n2 -t echo < foobar.xi
|
||||||
echo foo\ bar baz\
|
echo 'foo bar' 'baz '
|
||||||
echo ugh
|
echo ugh
|
||||||
foo bar baz
|
foo bar baz
|
||||||
ugh
|
ugh
|
||||||
|
|
|
@ -41,13 +41,13 @@ ls b
|
||||||
a
|
a
|
||||||
a b
|
a b
|
||||||
b
|
b
|
||||||
|
ls ' ab '|wc;echo ' ab '
|
||||||
|
ls ' ab'|wc;echo ' ab'
|
||||||
|
ls 'a b'|wc;echo 'a b'
|
||||||
ls 1-col.txt.diff|wc;echo 1-col.txt.diff
|
ls 1-col.txt.diff|wc;echo 1-col.txt.diff
|
||||||
ls 1-col.txt|wc;echo 1-col.txt
|
ls 1-col.txt|wc;echo 1-col.txt
|
||||||
ls 2-col.txt.diff|wc;echo 2-col.txt.diff
|
ls 2-col.txt.diff|wc;echo 2-col.txt.diff
|
||||||
ls 2-col.txt|wc;echo 2-col.txt
|
ls 2-col.txt|wc;echo 2-col.txt
|
||||||
ls \ ab\ |wc;echo \ ab\
|
|
||||||
ls \ ab|wc;echo \ ab
|
|
||||||
ls a\ b|wc;echo a\ b
|
|
||||||
ls a|wc;echo a
|
ls a|wc;echo a
|
||||||
ls b|wc;echo b
|
ls b|wc;echo b
|
||||||
### Check that we can have more input than max procs (-j 0) - touch
|
### Check that we can have more input than max procs (-j 0) - touch
|
||||||
|
@ -62,7 +62,7 @@ touch more_than_5000-9997
|
||||||
touch more_than_5000-9998
|
touch more_than_5000-9998
|
||||||
touch more_than_5000-9999
|
touch more_than_5000-9999
|
||||||
### rm
|
### rm
|
||||||
ls | parallel -j500 'sleep 1; find {} -type f | perl -ne "END{print $..\" {}\n\"}"' | sort
|
ls | parallel -j500 'sleep 1; find {} -type f | perl -ne "END{print $..\" "{=$_=pQ($_)=}"\n\"}"' | sort
|
||||||
1 1-col.txt
|
1 1-col.txt
|
||||||
1 1-col.txt.diff
|
1 1-col.txt.diff
|
||||||
1 2-col.txt
|
1 2-col.txt
|
||||||
|
@ -171,7 +171,7 @@ ls | parallel -j500 'sleep 1; find {} -type f | perl -ne "END{print $..\" {}\n\"
|
||||||
4 ab
|
4 ab
|
||||||
4 b
|
4 b
|
||||||
6 a
|
6 a
|
||||||
ls | parallel --group -j500 'sleep 1; find {} -type f | perl -ne "END{print $..\" {}\n\"}"' | sort
|
ls | parallel --group -j500 'sleep 1; find {} -type f | perl -ne "END{print $..\" "{=$_=pQ($_)=}"\n\"}"' | sort
|
||||||
1 1-col.txt
|
1 1-col.txt
|
||||||
1 1-col.txt.diff
|
1 1-col.txt.diff
|
||||||
1 2-col.txt
|
1 2-col.txt
|
||||||
|
@ -318,24 +318,24 @@ find . -type f | parallel -v --group "perl -ne '/^\\S+\\s+\\S+$/ and print \$ARG
|
||||||
./a/bar.diff
|
./a/bar.diff
|
||||||
./b/bar.diff
|
./b/bar.diff
|
||||||
./b/bar.diff
|
./b/bar.diff
|
||||||
|
perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\n"' './ ab /c'"'"' d/ ef"g'
|
||||||
|
perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\n"' './ ab /c'"'"' d/ ef"g.diff'
|
||||||
|
perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\n"' './ ab/c"d/ef g'
|
||||||
|
perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\n"' './ ab/c"d/ef g.diff'
|
||||||
|
perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\n"' './ ab/c"d/efg'
|
||||||
|
perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\n"' './ ab/c"d/efg.diff'
|
||||||
|
perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\n"' './a b/cd / ef/efg'
|
||||||
|
perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\n"' './a b/cd / ef/efg.diff'
|
||||||
perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\n"' ./1-col.txt
|
perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\n"' ./1-col.txt
|
||||||
perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\n"' ./1-col.txt.diff
|
perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\n"' ./1-col.txt.diff
|
||||||
perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\n"' ./2-col.txt
|
perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\n"' ./2-col.txt
|
||||||
perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\n"' ./2-col.txt.diff
|
perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\n"' ./2-col.txt.diff
|
||||||
perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\n"' ./\ ab/c\"d/ef\ g
|
|
||||||
perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\n"' ./\ ab/c\"d/ef\ g.diff
|
|
||||||
perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\n"' ./\ ab/c\"d/efg
|
|
||||||
perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\n"' ./\ ab/c\"d/efg.diff
|
|
||||||
perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\n"' ./\ ab\ /c\'\ d/\ ef\"g
|
|
||||||
perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\n"' ./\ ab\ /c\'\ d/\ ef\"g.diff
|
|
||||||
perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\n"' ./a/bar
|
perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\n"' ./a/bar
|
||||||
perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\n"' ./a/bar.diff
|
perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\n"' ./a/bar.diff
|
||||||
perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\n"' ./a/foo
|
perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\n"' ./a/foo
|
||||||
perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\n"' ./a/foo.diff
|
perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\n"' ./a/foo.diff
|
||||||
perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\n"' ./a/foo2
|
perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\n"' ./a/foo2
|
||||||
perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\n"' ./a/foo2.diff
|
perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\n"' ./a/foo2.diff
|
||||||
perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\n"' ./a\ b/cd\ /\ ef/efg
|
|
||||||
perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\n"' ./a\ b/cd\ /\ ef/efg.diff
|
|
||||||
perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\n"' ./b/bar
|
perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\n"' ./b/bar
|
||||||
perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\n"' ./b/bar.diff
|
perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\n"' ./b/bar.diff
|
||||||
perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\n"' ./b/foo
|
perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\n"' ./b/foo
|
||||||
|
@ -477,124 +477,124 @@ find . -type f | parallel -qv --group perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\
|
||||||
./a/bar.diff
|
./a/bar.diff
|
||||||
./b/bar.diff
|
./b/bar.diff
|
||||||
./b/bar.diff
|
./b/bar.diff
|
||||||
perl -ne /\^\\S+\\s+\\S+\$/\ and\ print\ \$ARGV,\"\\n\" ./1-col.txt
|
perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\n"' './ ab /c'"'"' d/ ef"g'
|
||||||
perl -ne /\^\\S+\\s+\\S+\$/\ and\ print\ \$ARGV,\"\\n\" ./1-col.txt.diff
|
perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\n"' './ ab /c'"'"' d/ ef"g.diff'
|
||||||
perl -ne /\^\\S+\\s+\\S+\$/\ and\ print\ \$ARGV,\"\\n\" ./2-col.txt
|
perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\n"' './ ab/c"d/ef g'
|
||||||
perl -ne /\^\\S+\\s+\\S+\$/\ and\ print\ \$ARGV,\"\\n\" ./2-col.txt.diff
|
perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\n"' './ ab/c"d/ef g.diff'
|
||||||
perl -ne /\^\\S+\\s+\\S+\$/\ and\ print\ \$ARGV,\"\\n\" ./\ ab/c\"d/ef\ g
|
perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\n"' './ ab/c"d/efg'
|
||||||
perl -ne /\^\\S+\\s+\\S+\$/\ and\ print\ \$ARGV,\"\\n\" ./\ ab/c\"d/ef\ g.diff
|
perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\n"' './ ab/c"d/efg.diff'
|
||||||
perl -ne /\^\\S+\\s+\\S+\$/\ and\ print\ \$ARGV,\"\\n\" ./\ ab/c\"d/efg
|
perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\n"' './a b/cd / ef/efg'
|
||||||
perl -ne /\^\\S+\\s+\\S+\$/\ and\ print\ \$ARGV,\"\\n\" ./\ ab/c\"d/efg.diff
|
perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\n"' './a b/cd / ef/efg.diff'
|
||||||
perl -ne /\^\\S+\\s+\\S+\$/\ and\ print\ \$ARGV,\"\\n\" ./\ ab\ /c\'\ d/\ ef\"g
|
perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\n"' ./1-col.txt
|
||||||
perl -ne /\^\\S+\\s+\\S+\$/\ and\ print\ \$ARGV,\"\\n\" ./\ ab\ /c\'\ d/\ ef\"g.diff
|
perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\n"' ./1-col.txt.diff
|
||||||
perl -ne /\^\\S+\\s+\\S+\$/\ and\ print\ \$ARGV,\"\\n\" ./a/bar
|
perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\n"' ./2-col.txt
|
||||||
perl -ne /\^\\S+\\s+\\S+\$/\ and\ print\ \$ARGV,\"\\n\" ./a/bar.diff
|
perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\n"' ./2-col.txt.diff
|
||||||
perl -ne /\^\\S+\\s+\\S+\$/\ and\ print\ \$ARGV,\"\\n\" ./a/foo
|
perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\n"' ./a/bar
|
||||||
perl -ne /\^\\S+\\s+\\S+\$/\ and\ print\ \$ARGV,\"\\n\" ./a/foo.diff
|
perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\n"' ./a/bar.diff
|
||||||
perl -ne /\^\\S+\\s+\\S+\$/\ and\ print\ \$ARGV,\"\\n\" ./a/foo2
|
perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\n"' ./a/foo
|
||||||
perl -ne /\^\\S+\\s+\\S+\$/\ and\ print\ \$ARGV,\"\\n\" ./a/foo2.diff
|
perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\n"' ./a/foo.diff
|
||||||
perl -ne /\^\\S+\\s+\\S+\$/\ and\ print\ \$ARGV,\"\\n\" ./a\ b/cd\ /\ ef/efg
|
perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\n"' ./a/foo2
|
||||||
perl -ne /\^\\S+\\s+\\S+\$/\ and\ print\ \$ARGV,\"\\n\" ./a\ b/cd\ /\ ef/efg.diff
|
perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\n"' ./a/foo2.diff
|
||||||
perl -ne /\^\\S+\\s+\\S+\$/\ and\ print\ \$ARGV,\"\\n\" ./b/bar
|
perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\n"' ./b/bar
|
||||||
perl -ne /\^\\S+\\s+\\S+\$/\ and\ print\ \$ARGV,\"\\n\" ./b/bar.diff
|
perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\n"' ./b/bar.diff
|
||||||
perl -ne /\^\\S+\\s+\\S+\$/\ and\ print\ \$ARGV,\"\\n\" ./b/foo
|
perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\n"' ./b/foo
|
||||||
perl -ne /\^\\S+\\s+\\S+\$/\ and\ print\ \$ARGV,\"\\n\" ./b/foo.diff
|
perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\n"' ./b/foo.diff
|
||||||
perl -ne /\^\\S+\\s+\\S+\$/\ and\ print\ \$ARGV,\"\\n\" ./more_than_5000-9901
|
perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\n"' ./more_than_5000-9901
|
||||||
perl -ne /\^\\S+\\s+\\S+\$/\ and\ print\ \$ARGV,\"\\n\" ./more_than_5000-9902
|
perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\n"' ./more_than_5000-9902
|
||||||
perl -ne /\^\\S+\\s+\\S+\$/\ and\ print\ \$ARGV,\"\\n\" ./more_than_5000-9903
|
perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\n"' ./more_than_5000-9903
|
||||||
perl -ne /\^\\S+\\s+\\S+\$/\ and\ print\ \$ARGV,\"\\n\" ./more_than_5000-9904
|
perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\n"' ./more_than_5000-9904
|
||||||
perl -ne /\^\\S+\\s+\\S+\$/\ and\ print\ \$ARGV,\"\\n\" ./more_than_5000-9905
|
perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\n"' ./more_than_5000-9905
|
||||||
perl -ne /\^\\S+\\s+\\S+\$/\ and\ print\ \$ARGV,\"\\n\" ./more_than_5000-9906
|
perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\n"' ./more_than_5000-9906
|
||||||
perl -ne /\^\\S+\\s+\\S+\$/\ and\ print\ \$ARGV,\"\\n\" ./more_than_5000-9907
|
perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\n"' ./more_than_5000-9907
|
||||||
perl -ne /\^\\S+\\s+\\S+\$/\ and\ print\ \$ARGV,\"\\n\" ./more_than_5000-9908
|
perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\n"' ./more_than_5000-9908
|
||||||
perl -ne /\^\\S+\\s+\\S+\$/\ and\ print\ \$ARGV,\"\\n\" ./more_than_5000-9909
|
perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\n"' ./more_than_5000-9909
|
||||||
perl -ne /\^\\S+\\s+\\S+\$/\ and\ print\ \$ARGV,\"\\n\" ./more_than_5000-9910
|
perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\n"' ./more_than_5000-9910
|
||||||
perl -ne /\^\\S+\\s+\\S+\$/\ and\ print\ \$ARGV,\"\\n\" ./more_than_5000-9911
|
perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\n"' ./more_than_5000-9911
|
||||||
perl -ne /\^\\S+\\s+\\S+\$/\ and\ print\ \$ARGV,\"\\n\" ./more_than_5000-9912
|
perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\n"' ./more_than_5000-9912
|
||||||
perl -ne /\^\\S+\\s+\\S+\$/\ and\ print\ \$ARGV,\"\\n\" ./more_than_5000-9913
|
perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\n"' ./more_than_5000-9913
|
||||||
perl -ne /\^\\S+\\s+\\S+\$/\ and\ print\ \$ARGV,\"\\n\" ./more_than_5000-9914
|
perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\n"' ./more_than_5000-9914
|
||||||
perl -ne /\^\\S+\\s+\\S+\$/\ and\ print\ \$ARGV,\"\\n\" ./more_than_5000-9915
|
perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\n"' ./more_than_5000-9915
|
||||||
perl -ne /\^\\S+\\s+\\S+\$/\ and\ print\ \$ARGV,\"\\n\" ./more_than_5000-9916
|
perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\n"' ./more_than_5000-9916
|
||||||
perl -ne /\^\\S+\\s+\\S+\$/\ and\ print\ \$ARGV,\"\\n\" ./more_than_5000-9917
|
perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\n"' ./more_than_5000-9917
|
||||||
perl -ne /\^\\S+\\s+\\S+\$/\ and\ print\ \$ARGV,\"\\n\" ./more_than_5000-9918
|
perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\n"' ./more_than_5000-9918
|
||||||
perl -ne /\^\\S+\\s+\\S+\$/\ and\ print\ \$ARGV,\"\\n\" ./more_than_5000-9919
|
perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\n"' ./more_than_5000-9919
|
||||||
perl -ne /\^\\S+\\s+\\S+\$/\ and\ print\ \$ARGV,\"\\n\" ./more_than_5000-9920
|
perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\n"' ./more_than_5000-9920
|
||||||
perl -ne /\^\\S+\\s+\\S+\$/\ and\ print\ \$ARGV,\"\\n\" ./more_than_5000-9921
|
perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\n"' ./more_than_5000-9921
|
||||||
perl -ne /\^\\S+\\s+\\S+\$/\ and\ print\ \$ARGV,\"\\n\" ./more_than_5000-9922
|
perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\n"' ./more_than_5000-9922
|
||||||
perl -ne /\^\\S+\\s+\\S+\$/\ and\ print\ \$ARGV,\"\\n\" ./more_than_5000-9923
|
perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\n"' ./more_than_5000-9923
|
||||||
perl -ne /\^\\S+\\s+\\S+\$/\ and\ print\ \$ARGV,\"\\n\" ./more_than_5000-9924
|
perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\n"' ./more_than_5000-9924
|
||||||
perl -ne /\^\\S+\\s+\\S+\$/\ and\ print\ \$ARGV,\"\\n\" ./more_than_5000-9925
|
perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\n"' ./more_than_5000-9925
|
||||||
perl -ne /\^\\S+\\s+\\S+\$/\ and\ print\ \$ARGV,\"\\n\" ./more_than_5000-9926
|
perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\n"' ./more_than_5000-9926
|
||||||
perl -ne /\^\\S+\\s+\\S+\$/\ and\ print\ \$ARGV,\"\\n\" ./more_than_5000-9927
|
perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\n"' ./more_than_5000-9927
|
||||||
perl -ne /\^\\S+\\s+\\S+\$/\ and\ print\ \$ARGV,\"\\n\" ./more_than_5000-9928
|
perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\n"' ./more_than_5000-9928
|
||||||
perl -ne /\^\\S+\\s+\\S+\$/\ and\ print\ \$ARGV,\"\\n\" ./more_than_5000-9929
|
perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\n"' ./more_than_5000-9929
|
||||||
perl -ne /\^\\S+\\s+\\S+\$/\ and\ print\ \$ARGV,\"\\n\" ./more_than_5000-9930
|
perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\n"' ./more_than_5000-9930
|
||||||
perl -ne /\^\\S+\\s+\\S+\$/\ and\ print\ \$ARGV,\"\\n\" ./more_than_5000-9931
|
perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\n"' ./more_than_5000-9931
|
||||||
perl -ne /\^\\S+\\s+\\S+\$/\ and\ print\ \$ARGV,\"\\n\" ./more_than_5000-9932
|
perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\n"' ./more_than_5000-9932
|
||||||
perl -ne /\^\\S+\\s+\\S+\$/\ and\ print\ \$ARGV,\"\\n\" ./more_than_5000-9933
|
perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\n"' ./more_than_5000-9933
|
||||||
perl -ne /\^\\S+\\s+\\S+\$/\ and\ print\ \$ARGV,\"\\n\" ./more_than_5000-9934
|
perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\n"' ./more_than_5000-9934
|
||||||
perl -ne /\^\\S+\\s+\\S+\$/\ and\ print\ \$ARGV,\"\\n\" ./more_than_5000-9935
|
perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\n"' ./more_than_5000-9935
|
||||||
perl -ne /\^\\S+\\s+\\S+\$/\ and\ print\ \$ARGV,\"\\n\" ./more_than_5000-9936
|
perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\n"' ./more_than_5000-9936
|
||||||
perl -ne /\^\\S+\\s+\\S+\$/\ and\ print\ \$ARGV,\"\\n\" ./more_than_5000-9937
|
perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\n"' ./more_than_5000-9937
|
||||||
perl -ne /\^\\S+\\s+\\S+\$/\ and\ print\ \$ARGV,\"\\n\" ./more_than_5000-9938
|
perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\n"' ./more_than_5000-9938
|
||||||
perl -ne /\^\\S+\\s+\\S+\$/\ and\ print\ \$ARGV,\"\\n\" ./more_than_5000-9939
|
perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\n"' ./more_than_5000-9939
|
||||||
perl -ne /\^\\S+\\s+\\S+\$/\ and\ print\ \$ARGV,\"\\n\" ./more_than_5000-9940
|
perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\n"' ./more_than_5000-9940
|
||||||
perl -ne /\^\\S+\\s+\\S+\$/\ and\ print\ \$ARGV,\"\\n\" ./more_than_5000-9941
|
perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\n"' ./more_than_5000-9941
|
||||||
perl -ne /\^\\S+\\s+\\S+\$/\ and\ print\ \$ARGV,\"\\n\" ./more_than_5000-9942
|
perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\n"' ./more_than_5000-9942
|
||||||
perl -ne /\^\\S+\\s+\\S+\$/\ and\ print\ \$ARGV,\"\\n\" ./more_than_5000-9943
|
perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\n"' ./more_than_5000-9943
|
||||||
perl -ne /\^\\S+\\s+\\S+\$/\ and\ print\ \$ARGV,\"\\n\" ./more_than_5000-9944
|
perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\n"' ./more_than_5000-9944
|
||||||
perl -ne /\^\\S+\\s+\\S+\$/\ and\ print\ \$ARGV,\"\\n\" ./more_than_5000-9945
|
perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\n"' ./more_than_5000-9945
|
||||||
perl -ne /\^\\S+\\s+\\S+\$/\ and\ print\ \$ARGV,\"\\n\" ./more_than_5000-9946
|
perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\n"' ./more_than_5000-9946
|
||||||
perl -ne /\^\\S+\\s+\\S+\$/\ and\ print\ \$ARGV,\"\\n\" ./more_than_5000-9947
|
perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\n"' ./more_than_5000-9947
|
||||||
perl -ne /\^\\S+\\s+\\S+\$/\ and\ print\ \$ARGV,\"\\n\" ./more_than_5000-9948
|
perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\n"' ./more_than_5000-9948
|
||||||
perl -ne /\^\\S+\\s+\\S+\$/\ and\ print\ \$ARGV,\"\\n\" ./more_than_5000-9949
|
perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\n"' ./more_than_5000-9949
|
||||||
perl -ne /\^\\S+\\s+\\S+\$/\ and\ print\ \$ARGV,\"\\n\" ./more_than_5000-9950
|
perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\n"' ./more_than_5000-9950
|
||||||
perl -ne /\^\\S+\\s+\\S+\$/\ and\ print\ \$ARGV,\"\\n\" ./more_than_5000-9951
|
perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\n"' ./more_than_5000-9951
|
||||||
perl -ne /\^\\S+\\s+\\S+\$/\ and\ print\ \$ARGV,\"\\n\" ./more_than_5000-9952
|
perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\n"' ./more_than_5000-9952
|
||||||
perl -ne /\^\\S+\\s+\\S+\$/\ and\ print\ \$ARGV,\"\\n\" ./more_than_5000-9953
|
perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\n"' ./more_than_5000-9953
|
||||||
perl -ne /\^\\S+\\s+\\S+\$/\ and\ print\ \$ARGV,\"\\n\" ./more_than_5000-9954
|
perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\n"' ./more_than_5000-9954
|
||||||
perl -ne /\^\\S+\\s+\\S+\$/\ and\ print\ \$ARGV,\"\\n\" ./more_than_5000-9955
|
perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\n"' ./more_than_5000-9955
|
||||||
perl -ne /\^\\S+\\s+\\S+\$/\ and\ print\ \$ARGV,\"\\n\" ./more_than_5000-9956
|
perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\n"' ./more_than_5000-9956
|
||||||
perl -ne /\^\\S+\\s+\\S+\$/\ and\ print\ \$ARGV,\"\\n\" ./more_than_5000-9957
|
perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\n"' ./more_than_5000-9957
|
||||||
perl -ne /\^\\S+\\s+\\S+\$/\ and\ print\ \$ARGV,\"\\n\" ./more_than_5000-9958
|
perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\n"' ./more_than_5000-9958
|
||||||
perl -ne /\^\\S+\\s+\\S+\$/\ and\ print\ \$ARGV,\"\\n\" ./more_than_5000-9959
|
perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\n"' ./more_than_5000-9959
|
||||||
perl -ne /\^\\S+\\s+\\S+\$/\ and\ print\ \$ARGV,\"\\n\" ./more_than_5000-9960
|
perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\n"' ./more_than_5000-9960
|
||||||
perl -ne /\^\\S+\\s+\\S+\$/\ and\ print\ \$ARGV,\"\\n\" ./more_than_5000-9961
|
perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\n"' ./more_than_5000-9961
|
||||||
perl -ne /\^\\S+\\s+\\S+\$/\ and\ print\ \$ARGV,\"\\n\" ./more_than_5000-9962
|
perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\n"' ./more_than_5000-9962
|
||||||
perl -ne /\^\\S+\\s+\\S+\$/\ and\ print\ \$ARGV,\"\\n\" ./more_than_5000-9963
|
perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\n"' ./more_than_5000-9963
|
||||||
perl -ne /\^\\S+\\s+\\S+\$/\ and\ print\ \$ARGV,\"\\n\" ./more_than_5000-9964
|
perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\n"' ./more_than_5000-9964
|
||||||
perl -ne /\^\\S+\\s+\\S+\$/\ and\ print\ \$ARGV,\"\\n\" ./more_than_5000-9965
|
perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\n"' ./more_than_5000-9965
|
||||||
perl -ne /\^\\S+\\s+\\S+\$/\ and\ print\ \$ARGV,\"\\n\" ./more_than_5000-9966
|
perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\n"' ./more_than_5000-9966
|
||||||
perl -ne /\^\\S+\\s+\\S+\$/\ and\ print\ \$ARGV,\"\\n\" ./more_than_5000-9967
|
perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\n"' ./more_than_5000-9967
|
||||||
perl -ne /\^\\S+\\s+\\S+\$/\ and\ print\ \$ARGV,\"\\n\" ./more_than_5000-9968
|
perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\n"' ./more_than_5000-9968
|
||||||
perl -ne /\^\\S+\\s+\\S+\$/\ and\ print\ \$ARGV,\"\\n\" ./more_than_5000-9969
|
perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\n"' ./more_than_5000-9969
|
||||||
perl -ne /\^\\S+\\s+\\S+\$/\ and\ print\ \$ARGV,\"\\n\" ./more_than_5000-9970
|
perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\n"' ./more_than_5000-9970
|
||||||
perl -ne /\^\\S+\\s+\\S+\$/\ and\ print\ \$ARGV,\"\\n\" ./more_than_5000-9971
|
perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\n"' ./more_than_5000-9971
|
||||||
perl -ne /\^\\S+\\s+\\S+\$/\ and\ print\ \$ARGV,\"\\n\" ./more_than_5000-9972
|
perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\n"' ./more_than_5000-9972
|
||||||
perl -ne /\^\\S+\\s+\\S+\$/\ and\ print\ \$ARGV,\"\\n\" ./more_than_5000-9973
|
perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\n"' ./more_than_5000-9973
|
||||||
perl -ne /\^\\S+\\s+\\S+\$/\ and\ print\ \$ARGV,\"\\n\" ./more_than_5000-9974
|
perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\n"' ./more_than_5000-9974
|
||||||
perl -ne /\^\\S+\\s+\\S+\$/\ and\ print\ \$ARGV,\"\\n\" ./more_than_5000-9975
|
perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\n"' ./more_than_5000-9975
|
||||||
perl -ne /\^\\S+\\s+\\S+\$/\ and\ print\ \$ARGV,\"\\n\" ./more_than_5000-9976
|
perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\n"' ./more_than_5000-9976
|
||||||
perl -ne /\^\\S+\\s+\\S+\$/\ and\ print\ \$ARGV,\"\\n\" ./more_than_5000-9977
|
perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\n"' ./more_than_5000-9977
|
||||||
perl -ne /\^\\S+\\s+\\S+\$/\ and\ print\ \$ARGV,\"\\n\" ./more_than_5000-9978
|
perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\n"' ./more_than_5000-9978
|
||||||
perl -ne /\^\\S+\\s+\\S+\$/\ and\ print\ \$ARGV,\"\\n\" ./more_than_5000-9979
|
perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\n"' ./more_than_5000-9979
|
||||||
perl -ne /\^\\S+\\s+\\S+\$/\ and\ print\ \$ARGV,\"\\n\" ./more_than_5000-9980
|
perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\n"' ./more_than_5000-9980
|
||||||
perl -ne /\^\\S+\\s+\\S+\$/\ and\ print\ \$ARGV,\"\\n\" ./more_than_5000-9981
|
perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\n"' ./more_than_5000-9981
|
||||||
perl -ne /\^\\S+\\s+\\S+\$/\ and\ print\ \$ARGV,\"\\n\" ./more_than_5000-9982
|
perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\n"' ./more_than_5000-9982
|
||||||
perl -ne /\^\\S+\\s+\\S+\$/\ and\ print\ \$ARGV,\"\\n\" ./more_than_5000-9983
|
perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\n"' ./more_than_5000-9983
|
||||||
perl -ne /\^\\S+\\s+\\S+\$/\ and\ print\ \$ARGV,\"\\n\" ./more_than_5000-9984
|
perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\n"' ./more_than_5000-9984
|
||||||
perl -ne /\^\\S+\\s+\\S+\$/\ and\ print\ \$ARGV,\"\\n\" ./more_than_5000-9985
|
perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\n"' ./more_than_5000-9985
|
||||||
perl -ne /\^\\S+\\s+\\S+\$/\ and\ print\ \$ARGV,\"\\n\" ./more_than_5000-9986
|
perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\n"' ./more_than_5000-9986
|
||||||
perl -ne /\^\\S+\\s+\\S+\$/\ and\ print\ \$ARGV,\"\\n\" ./more_than_5000-9987
|
perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\n"' ./more_than_5000-9987
|
||||||
perl -ne /\^\\S+\\s+\\S+\$/\ and\ print\ \$ARGV,\"\\n\" ./more_than_5000-9988
|
perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\n"' ./more_than_5000-9988
|
||||||
perl -ne /\^\\S+\\s+\\S+\$/\ and\ print\ \$ARGV,\"\\n\" ./more_than_5000-9989
|
perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\n"' ./more_than_5000-9989
|
||||||
perl -ne /\^\\S+\\s+\\S+\$/\ and\ print\ \$ARGV,\"\\n\" ./more_than_5000-9990
|
perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\n"' ./more_than_5000-9990
|
||||||
perl -ne /\^\\S+\\s+\\S+\$/\ and\ print\ \$ARGV,\"\\n\" ./more_than_5000-9991
|
perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\n"' ./more_than_5000-9991
|
||||||
perl -ne /\^\\S+\\s+\\S+\$/\ and\ print\ \$ARGV,\"\\n\" ./more_than_5000-9992
|
perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\n"' ./more_than_5000-9992
|
||||||
perl -ne /\^\\S+\\s+\\S+\$/\ and\ print\ \$ARGV,\"\\n\" ./more_than_5000-9993
|
perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\n"' ./more_than_5000-9993
|
||||||
perl -ne /\^\\S+\\s+\\S+\$/\ and\ print\ \$ARGV,\"\\n\" ./more_than_5000-9994
|
perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\n"' ./more_than_5000-9994
|
||||||
perl -ne /\^\\S+\\s+\\S+\$/\ and\ print\ \$ARGV,\"\\n\" ./more_than_5000-9995
|
perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\n"' ./more_than_5000-9995
|
||||||
perl -ne /\^\\S+\\s+\\S+\$/\ and\ print\ \$ARGV,\"\\n\" ./more_than_5000-9996
|
perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\n"' ./more_than_5000-9996
|
||||||
perl -ne /\^\\S+\\s+\\S+\$/\ and\ print\ \$ARGV,\"\\n\" ./more_than_5000-9997
|
perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\n"' ./more_than_5000-9997
|
||||||
perl -ne /\^\\S+\\s+\\S+\$/\ and\ print\ \$ARGV,\"\\n\" ./more_than_5000-9998
|
perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\n"' ./more_than_5000-9998
|
||||||
perl -ne /\^\\S+\\s+\\S+\$/\ and\ print\ \$ARGV,\"\\n\" ./more_than_5000-9999
|
perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\n"' ./more_than_5000-9999
|
||||||
|
|
|
@ -210,13 +210,13 @@ echo '### Bug made 3 go before 1 2'
|
||||||
echo '### Bug did not quote'
|
echo '### Bug did not quote'
|
||||||
### Bug did not quote
|
### Bug did not quote
|
||||||
echo '>' | parallel -v echo
|
echo '>' | parallel -v echo
|
||||||
echo \>
|
echo '>'
|
||||||
>
|
>
|
||||||
parallel -v echo ::: '>'
|
parallel -v echo ::: '>'
|
||||||
echo \>
|
echo '>'
|
||||||
>
|
>
|
||||||
(echo '>'; echo 2) | parallel -j1 -vX echo
|
(echo '>'; echo 2) | parallel -j1 -vX echo
|
||||||
echo \> 2
|
echo '>' 2
|
||||||
> 2
|
> 2
|
||||||
parallel -X -j1 echo ::: '>' 2
|
parallel -X -j1 echo ::: '>' 2
|
||||||
> 2
|
> 2
|
||||||
|
|
|
@ -317,5 +317,5 @@ ls: cannot access '*.par': No such file or directory
|
||||||
echo "bug: --gnu was ignored if env var started with space: PARALLEL=' --gnu'"
|
echo "bug: --gnu was ignored if env var started with space: PARALLEL=' --gnu'"
|
||||||
bug: --gnu was ignored if env var started with space: PARALLEL=' --gnu'
|
bug: --gnu was ignored if env var started with space: PARALLEL=' --gnu'
|
||||||
export PARALLEL=" -v" && parallel echo ::: 'space in envvar OK'
|
export PARALLEL=" -v" && parallel echo ::: 'space in envvar OK'
|
||||||
echo space\ in\ envvar\ OK
|
echo 'space in envvar OK'
|
||||||
space in envvar OK
|
space in envvar OK
|
||||||
|
|
|
@ -41,5 +41,5 @@ par_space_quote a \'"b 4
|
||||||
par_special_char a' * ? >o <i*? ][\!#¤%=( ) | }b 5
|
par_special_char a' * ? >o <i*? ][\!#¤%=( ) | }b 5
|
||||||
par_special_char a' * ? >o <i*? ][\!#¤%=( ) | }b 5
|
par_special_char a' * ? >o <i*? ][\!#¤%=( ) | }b 5
|
||||||
par_special_char a' * ? >o <i*? ][\!#¤%=( ) | }b 5
|
par_special_char a' * ? >o <i*? ][\!#¤%=( ) | }b 5
|
||||||
par_special_char a' * ? >o <i*? ][\!#¤%=( ) | }b 5
|
par_special_char a' * ? >o <i*? ][!#¤%=( ) | }b 5
|
||||||
par_special_char a' * ? >o <i*? ][\!#¤%=( ) | }b 5
|
par_special_char a' * ? >o <i*? ][!#¤%=( ) | }b 5
|
||||||
|
|
|
@ -20,7 +20,7 @@ a
|
||||||
ls b|wc;echo b
|
ls b|wc;echo b
|
||||||
4 4 26
|
4 4 26
|
||||||
b
|
b
|
||||||
ls \ä\¸\\å\›\½\ \(Zh\Å\<5C>nggu\Ã\³\)|wc;echo \ä\¸\\å\›\½\ \(Zh\Å\<5C>nggu\Ã\³\)
|
ls '中国 (Zhōngguó)'|wc;echo '中国 (Zhōngguó)'
|
||||||
4 12 118
|
4 12 118
|
||||||
中国 (Zhōngguó)
|
中国 (Zhōngguó)
|
||||||
1 1-col.diff
|
1 1-col.diff
|
||||||
|
@ -29,14 +29,14 @@ ls \
|
||||||
1 2-col.txt
|
1 2-col.txt
|
||||||
6 a
|
6 a
|
||||||
4 b
|
4 b
|
||||||
4 ä¸å›½ (ZhÅ<68>ngguó)
|
4 '中国 (Zhōngguó)'
|
||||||
1 1-col.diff
|
1 1-col.diff
|
||||||
1 1-col.txt
|
1 1-col.txt
|
||||||
1 2-col.diff
|
1 2-col.diff
|
||||||
1 2-col.txt
|
1 2-col.txt
|
||||||
6 a
|
6 a
|
||||||
4 b
|
4 b
|
||||||
4 ä¸å›½ (ZhÅ<68>ngguó)
|
4 '中国 (Zhōngguó)'
|
||||||
touch -- 1-col/abc-1-col-1-col
|
touch -- 1-col/abc-1-col-1-col
|
||||||
touch -- 1-col/abc-1-col-1-col.diff
|
touch -- 1-col/abc-1-col-1-col.diff
|
||||||
touch -- 1-col/abc-1-col-1-col.txt
|
touch -- 1-col/abc-1-col-1-col.txt
|
||||||
|
@ -45,7 +45,7 @@ touch -- 2-col/abc-2-col-2-col.diff
|
||||||
touch -- 2-col/abc-2-col-2-col.txt
|
touch -- 2-col/abc-2-col-2-col.txt
|
||||||
touch -- a/abc-a-a
|
touch -- a/abc-a-a
|
||||||
touch -- b/abc-b-b
|
touch -- b/abc-b-b
|
||||||
touch -- \ä\¸\\å\›\½\ \(Zh\Å\<5C>nggu\Ã\³\)/abc-\ä\¸\\å\›\½\ \(Zh\Å\<5C>nggu\Ã\³\)-\ä\¸\\å\›\½\ \(Zh\Å\<5C>nggu\Ã\³\)
|
touch -- '中国 (Zhōngguó)'/abc-'中国 (Zhōngguó)'-'中国 (Zhōngguó)'
|
||||||
rm -- 1-col/abc-1-col-1-col
|
rm -- 1-col/abc-1-col-1-col
|
||||||
rm -- 1-col/abc-1-col-1-col.diff
|
rm -- 1-col/abc-1-col-1-col.diff
|
||||||
rm -- 1-col/abc-1-col-1-col.txt
|
rm -- 1-col/abc-1-col-1-col.txt
|
||||||
|
@ -54,7 +54,7 @@ rm -- 2-col/abc-2-col-2-col.diff
|
||||||
rm -- 2-col/abc-2-col-2-col.txt
|
rm -- 2-col/abc-2-col-2-col.txt
|
||||||
rm -- a/abc-a-a
|
rm -- a/abc-a-a
|
||||||
rm -- b/abc-b-b
|
rm -- b/abc-b-b
|
||||||
rm -- \ä\¸\\å\›\½\ \(Zh\Å\<5C>nggu\Ã\³\)/abc-\ä\¸\\å\›\½\ \(Zh\Å\<5C>nggu\Ã\³\)-\ä\¸\\å\›\½\ \(Zh\Å\<5C>nggu\Ã\³\)
|
rm -- '中国 (Zhōngguó)'/abc-'中国 (Zhōngguó)'-'中国 (Zhōngguó)'
|
||||||
echo '### Test compress'
|
echo '### Test compress'
|
||||||
### Test compress
|
### Test compress
|
||||||
seq 5 | parallel -j2 --tag --compress 'seq {} | pv -q -L 10'
|
seq 5 | parallel -j2 --tag --compress 'seq {} | pv -q -L 10'
|
||||||
|
|
|
@ -85,7 +85,7 @@ echo '### bug #42902: profiles containing arguments with space'
|
||||||
echo "--rpl 'FULLPATH chomp(\$_=\"/bin/bash=\".\`readlink -f \$_\`);' " > ~/.parallel/FULLPATH; parallel -JFULLPATH echo FULLPATH ::: $0
|
echo "--rpl 'FULLPATH chomp(\$_=\"/bin/bash=\".\`readlink -f \$_\`);' " > ~/.parallel/FULLPATH; parallel -JFULLPATH echo FULLPATH ::: $0
|
||||||
/bin/bash=/bin/bash
|
/bin/bash=/bin/bash
|
||||||
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
|
||||||
echo /bin/bash\=/bin/bash
|
echo '/bin/bash=/bin/bash'
|
||||||
/bin/bash=/bin/bash
|
/bin/bash=/bin/bash
|
||||||
PARALLEL="--rpl 'FULLPATH chomp(\$_=\"/bin/bash=\".\`readlink -f \$_\`);' perl -e \'print \\\"@ARGV\\\n\\\"\' " parallel With script in \\\$PARALLEL FULLPATH ::: .
|
PARALLEL="--rpl 'FULLPATH chomp(\$_=\"/bin/bash=\".\`readlink -f \$_\`);' perl -e \'print \\\"@ARGV\\\n\\\"\' " parallel With script in \\\$PARALLEL FULLPATH ::: .
|
||||||
With script in $PARALLEL /bin/bash=~/privat/parallel/testsuite
|
With script in $PARALLEL /bin/bash=~/privat/parallel/testsuite
|
||||||
|
|
|
@ -1,100 +1,58 @@
|
||||||
echo '### tmux-1.9'
|
echo '### tmux-1.9'
|
||||||
### tmux-1.9
|
### tmux-1.9
|
||||||
seq 000 100 | PARALLEL_TMUX=tmux-1.9 par_tmux
|
seq 0000 10 1000 | PARALLEL_TMUX=tmux-1.9 par_tmux
|
||||||
See output with: tmux-1.9 -S /tmp/parallel-local7-tmpdir/tmsXXXXX attach
|
See output with: tmux-1.9 -S /tmp/parallel-local7-tmpdir/tmsXXXXX attach
|
||||||
0
|
0
|
||||||
seq 100 200 | PARALLEL_TMUX=tmux-1.9 par_tmux
|
seq 1001 10 2000 | PARALLEL_TMUX=tmux-1.9 par_tmux
|
||||||
See output with: tmux-1.9 -S /tmp/parallel-local7-tmpdir/tmsXXXXX attach
|
See output with: tmux-1.9 -S /tmp/parallel-local7-tmpdir/tmsXXXXX attach
|
||||||
0
|
0
|
||||||
seq 200 300 | PARALLEL_TMUX=tmux-1.9 par_tmux
|
seq 2001 10 3000 | PARALLEL_TMUX=tmux-1.9 par_tmux
|
||||||
See output with: tmux-1.9 -S /tmp/parallel-local7-tmpdir/tmsXXXXX attach
|
See output with: tmux-1.9 -S /tmp/parallel-local7-tmpdir/tmsXXXXX attach
|
||||||
0
|
0
|
||||||
seq 300 400 | PARALLEL_TMUX=tmux-1.9 par_tmux
|
seq 3001 10 4000 | PARALLEL_TMUX=tmux-1.9 par_tmux
|
||||||
See output with: tmux-1.9 -S /tmp/parallel-local7-tmpdir/tmsXXXXX attach
|
See output with: tmux-1.9 -S /tmp/parallel-local7-tmpdir/tmsXXXXX attach
|
||||||
0
|
0
|
||||||
seq 400 500 | PARALLEL_TMUX=tmux-1.9 par_tmux
|
seq 4001 10 4030 | PARALLEL_TMUX=tmux-1.9 par_tmux
|
||||||
See output with: tmux-1.9 -S /tmp/parallel-local7-tmpdir/tmsXXXXX attach
|
|
||||||
0
|
|
||||||
seq 500 600 | PARALLEL_TMUX=tmux-1.9 par_tmux
|
|
||||||
See output with: tmux-1.9 -S /tmp/parallel-local7-tmpdir/tmsXXXXX attach
|
|
||||||
0
|
|
||||||
seq 600 700 | PARALLEL_TMUX=tmux-1.9 par_tmux
|
|
||||||
See output with: tmux-1.9 -S /tmp/parallel-local7-tmpdir/tmsXXXXX attach
|
|
||||||
0
|
|
||||||
seq 700 800 | PARALLEL_TMUX=tmux-1.9 par_tmux
|
|
||||||
See output with: tmux-1.9 -S /tmp/parallel-local7-tmpdir/tmsXXXXX attach
|
|
||||||
0
|
|
||||||
seq 800 900 | PARALLEL_TMUX=tmux-1.9 par_tmux
|
|
||||||
See output with: tmux-1.9 -S /tmp/parallel-local7-tmpdir/tmsXXXXX attach
|
|
||||||
0
|
|
||||||
seq 900 1000 | PARALLEL_TMUX=tmux-1.9 par_tmux
|
|
||||||
See output with: tmux-1.9 -S /tmp/parallel-local7-tmpdir/tmsXXXXX attach
|
|
||||||
0
|
|
||||||
seq 1000 1100 | PARALLEL_TMUX=tmux-1.9 par_tmux
|
|
||||||
See output with: tmux-1.9 -S /tmp/parallel-local7-tmpdir/tmsXXXXX attach
|
|
||||||
0
|
|
||||||
seq 1100 1200 | PARALLEL_TMUX=tmux-1.9 par_tmux
|
|
||||||
See output with: tmux-1.9 -S /tmp/parallel-local7-tmpdir/tmsXXXXX attach
|
|
||||||
0
|
|
||||||
seq 1200 1300 | PARALLEL_TMUX=tmux-1.9 par_tmux
|
|
||||||
See output with: tmux-1.9 -S /tmp/parallel-local7-tmpdir/tmsXXXXX attach
|
|
||||||
0
|
|
||||||
seq 1300 1400 | PARALLEL_TMUX=tmux-1.9 par_tmux
|
|
||||||
See output with: tmux-1.9 -S /tmp/parallel-local7-tmpdir/tmsXXXXX attach
|
|
||||||
0
|
|
||||||
seq 1400 1500 | PARALLEL_TMUX=tmux-1.9 par_tmux
|
|
||||||
See output with: tmux-1.9 -S /tmp/parallel-local7-tmpdir/tmsXXXXX attach
|
|
||||||
0
|
|
||||||
seq 1500 1600 | PARALLEL_TMUX=tmux-1.9 par_tmux
|
|
||||||
See output with: tmux-1.9 -S /tmp/parallel-local7-tmpdir/tmsXXXXX attach
|
|
||||||
0
|
|
||||||
seq 1600 1700 | PARALLEL_TMUX=tmux-1.9 par_tmux
|
|
||||||
See output with: tmux-1.9 -S /tmp/parallel-local7-tmpdir/tmsXXXXX attach
|
|
||||||
0
|
|
||||||
seq 1700 1800 | PARALLEL_TMUX=tmux-1.9 par_tmux
|
|
||||||
See output with: tmux-1.9 -S /tmp/parallel-local7-tmpdir/tmsXXXXX attach
|
|
||||||
0
|
|
||||||
seq 1800 1900 | PARALLEL_TMUX=tmux-1.9 par_tmux
|
|
||||||
See output with: tmux-1.9 -S /tmp/parallel-local7-tmpdir/tmsXXXXX attach
|
|
||||||
0
|
|
||||||
seq 1900 2000 | PARALLEL_TMUX=tmux-1.9 par_tmux
|
|
||||||
See output with: tmux-1.9 -S /tmp/parallel-local7-tmpdir/tmsXXXXX attach
|
|
||||||
0
|
|
||||||
seq 2000 2018 | PARALLEL_TMUX=tmux-1.9 par_tmux
|
|
||||||
See output with: tmux-1.9 -S /tmp/parallel-local7-tmpdir/tmsXXXXX attach
|
See output with: tmux-1.9 -S /tmp/parallel-local7-tmpdir/tmsXXXXX attach
|
||||||
0
|
0
|
||||||
echo '### tmux-1.9 fails'
|
echo '### tmux-1.9 fails'
|
||||||
### tmux-1.9 fails
|
### tmux-1.9 fails
|
||||||
echo 2019 | PARALLEL_TMUX=tmux-1.9 par_tmux
|
echo 4036 | PARALLEL_TMUX=tmux-1.9 par_tmux
|
||||||
parallel: Error: Command line too long (4047 >= 4047) at input 0: 2019
|
parallel: Error: Command line too long (4047 >= 4047) at input 0: 4036
|
||||||
255
|
255
|
||||||
echo 2020 | PARALLEL_TMUX=tmux-1.9 par_tmux
|
echo 4037 | PARALLEL_TMUX=tmux-1.9 par_tmux
|
||||||
parallel: Error: Command line too long (4049 >= 4047) at input 0: 2020
|
parallel: Error: Command line too long (4048 >= 4047) at input 0: 4037
|
||||||
255
|
255
|
||||||
echo 2021 | PARALLEL_TMUX=tmux-1.9 par_tmux
|
echo 4038 | PARALLEL_TMUX=tmux-1.9 par_tmux
|
||||||
parallel: Error: Command line too long (4051 >= 4047) at input 0: 2021
|
parallel: Error: Command line too long (4049 >= 4047) at input 0: 4038
|
||||||
255
|
255
|
||||||
echo '### tmux-1.8'
|
echo '### tmux-1.8'
|
||||||
### tmux-1.8
|
### tmux-1.8
|
||||||
seq 1 100 | PARALLEL_TMUX=tmux-1.8 par_tmux
|
seq 1 5 100 | PARALLEL_TMUX=tmux-1.8 par_tmux
|
||||||
See output with: tmux-1.8 -S /tmp/parallel-local7-tmpdir/tmsXXXXX attach
|
See output with: tmux-1.8 -S /tmp/parallel-local7-tmpdir/tmsXXXXX attach
|
||||||
0
|
0
|
||||||
seq 101 200 | PARALLEL_TMUX=tmux-1.8 par_tmux
|
seq 101 5 200 | PARALLEL_TMUX=tmux-1.8 par_tmux
|
||||||
See output with: tmux-1.8 -S /tmp/parallel-local7-tmpdir/tmsXXXXX attach
|
See output with: tmux-1.8 -S /tmp/parallel-local7-tmpdir/tmsXXXXX attach
|
||||||
0
|
0
|
||||||
seq 201 231 | PARALLEL_TMUX=tmux-1.8 par_tmux
|
seq 201 5 300 | PARALLEL_TMUX=tmux-1.8 par_tmux
|
||||||
|
See output with: tmux-1.8 -S /tmp/parallel-local7-tmpdir/tmsXXXXX attach
|
||||||
|
0
|
||||||
|
seq 301 5 400 | PARALLEL_TMUX=tmux-1.8 par_tmux
|
||||||
|
See output with: tmux-1.8 -S /tmp/parallel-local7-tmpdir/tmsXXXXX attach
|
||||||
|
0
|
||||||
|
seq 401 5 460 | PARALLEL_TMUX=tmux-1.8 par_tmux
|
||||||
See output with: tmux-1.8 -S /tmp/parallel-local7-tmpdir/tmsXXXXX attach
|
See output with: tmux-1.8 -S /tmp/parallel-local7-tmpdir/tmsXXXXX attach
|
||||||
0
|
0
|
||||||
echo '### tmux-1.8 fails'
|
echo '### tmux-1.8 fails'
|
||||||
### tmux-1.8 fails
|
### tmux-1.8 fails
|
||||||
echo 232 | PARALLEL_TMUX=tmux-1.8 par_tmux
|
echo 462 | PARALLEL_TMUX=tmux-1.8 par_tmux
|
||||||
parallel: Error: Command line too long (472 >= 472) at input 0: 232
|
parallel: Error: Command line too long (472 >= 472) at input 0: 462
|
||||||
255
|
255
|
||||||
echo 233 | PARALLEL_TMUX=tmux-1.8 par_tmux
|
echo 463 | PARALLEL_TMUX=tmux-1.8 par_tmux
|
||||||
parallel: Error: Command line too long (474 >= 472) at input 0: 233
|
parallel: Error: Command line too long (473 >= 472) at input 0: 463
|
||||||
255
|
255
|
||||||
echo 234 | PARALLEL_TMUX=tmux-1.8 par_tmux
|
echo 464 | PARALLEL_TMUX=tmux-1.8 par_tmux
|
||||||
parallel: Error: Command line too long (476 >= 472) at input 0: 234
|
parallel: Error: Command line too long (474 >= 472) at input 0: 464
|
||||||
255
|
255
|
||||||
echo '### tmux-1.8 0..255 ascii'
|
echo '### tmux-1.8 0..255 ascii'
|
||||||
### tmux-1.8 0..255 ascii
|
### tmux-1.8 0..255 ascii
|
||||||
|
@ -115,7 +73,6 @@ echo '### Test critical lengths. Must not block'
|
||||||
### 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
|
seq 140 260 | PARALLEL_TMUX=tmux-1.8 stdout parallel --tmux echo '{}{=$_="&"x$_=}' | par_tmux_filter
|
||||||
See output with: tmux-1.8 -S /tmp/parallel-local7-tmpdir/tmsXXXXX attach
|
See output with: tmux-1.8 -S /tmp/parallel-local7-tmpdir/tmsXXXXX attach
|
||||||
parallel: Error: Command line too long (472 >= 472) at input 0: 232
|
|
||||||
seq 140 260 | PARALLEL_TMUX=tmux-1.9 stdout parallel --tmux echo '{}{=$_="&"x$_=}' | par_tmux_filter
|
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-tmpdir/tmsXXXXX attach
|
See output with: tmux-1.9 -S /tmp/parallel-local7-tmpdir/tmsXXXXX attach
|
||||||
seq 560 850 | PARALLEL_TMUX=tmux-1.8 stdout parallel --tmux echo '{}{=$_="a"x$_=}' | par_tmux_filter
|
seq 560 850 | PARALLEL_TMUX=tmux-1.8 stdout parallel --tmux echo '{}{=$_="a"x$_=}' | par_tmux_filter
|
||||||
|
|
|
@ -64,17 +64,6 @@ echo '### Test --spreadstdin -k'; nice seq 1 1000000 | $NICEPAR -k --recend "\
|
||||||
echo '### Test --spreadstdin --files'; nice seq 1 1000000 | shuf | $NICEPAR --files --recend "\n" -j10 --spreadstdin sort -n | parallel -Xj1 sort -nm {} ";"rm {} | md5sum
|
echo '### Test --spreadstdin --files'; nice seq 1 1000000 | shuf | $NICEPAR --files --recend "\n" -j10 --spreadstdin sort -n | parallel -Xj1 sort -nm {} ";"rm {} | md5sum
|
||||||
### Test --spreadstdin --files
|
### Test --spreadstdin --files
|
||||||
8a7095c1c23bfadc311fe6b16d950582 -
|
8a7095c1c23bfadc311fe6b16d950582 -
|
||||||
echo '### Test --number-of-cpus'; stdout $NICEPAR --number-of-cpus
|
|
||||||
### Test --number-of-cpus
|
|
||||||
1
|
|
||||||
echo '### Test --number-of-cores'; stdout $NICEPAR --number-of-cores
|
|
||||||
### Test --number-of-cores
|
|
||||||
2
|
|
||||||
echo '### Test --use-cpus-instead-of-cores'; (seq 1 8 | stdout parallel --use-cpus-instead-of-cores -j100% sleep) && echo CPUs done & (seq 1 8 | stdout parallel -j100% sleep) && echo cores done & echo 'Cores should complete first on machines with less than 8 physical CPUs'; wait
|
|
||||||
### Test --use-cpus-instead-of-cores
|
|
||||||
Cores should complete first on machines with less than 8 physical CPUs
|
|
||||||
cores done
|
|
||||||
CPUs done
|
|
||||||
echo '### Test --tag ::: a ::: b'; stdout $NICEPAR -k --tag -j1 echo stderr-{.} ">&2;" echo stdout-{} ::: a ::: b
|
echo '### Test --tag ::: a ::: b'; stdout $NICEPAR -k --tag -j1 echo stderr-{.} ">&2;" echo stdout-{} ::: a ::: b
|
||||||
### Test --tag ::: a ::: b
|
### Test --tag ::: a ::: b
|
||||||
a b stdout-a b
|
a b stdout-a b
|
||||||
|
@ -313,31 +302,31 @@ b
|
||||||
echo '### Quote test triplet 2'
|
echo '### Quote test triplet 2'
|
||||||
### Quote test triplet 2
|
### Quote test triplet 2
|
||||||
$XAP -kv echo :::: <(echo 'echo a'; echo 'echo b')
|
$XAP -kv echo :::: <(echo 'echo a'; echo 'echo b')
|
||||||
echo echo\ a
|
echo 'echo a'
|
||||||
echo a
|
echo a
|
||||||
echo echo\ b
|
echo 'echo b'
|
||||||
echo b
|
echo b
|
||||||
$XAP -kv -a <(echo 'echo a'; echo 'echo b') echo
|
$XAP -kv -a <(echo 'echo a'; echo 'echo b') echo
|
||||||
echo echo\ a
|
echo 'echo a'
|
||||||
echo a
|
echo a
|
||||||
echo echo\ b
|
echo 'echo b'
|
||||||
echo b
|
echo b
|
||||||
(echo 'echo a'; echo 'echo b') | $XAP -kv echo
|
(echo 'echo a'; echo 'echo b') | $XAP -kv echo
|
||||||
echo echo\ a
|
echo 'echo a'
|
||||||
echo a
|
echo a
|
||||||
echo echo\ b
|
echo 'echo b'
|
||||||
echo b
|
echo b
|
||||||
echo '### Quoting if there is a command and 2 arg files'
|
echo '### Quoting if there is a command and 2 arg files'
|
||||||
### Quoting if there is a command and 2 arg files
|
### Quoting if there is a command and 2 arg files
|
||||||
$XAP -kv echo :::: <(echo 'echo a') <(echo 'echo b')
|
$XAP -kv echo :::: <(echo 'echo a') <(echo 'echo b')
|
||||||
echo echo\ a echo\ b
|
echo 'echo a' 'echo b'
|
||||||
echo a echo b
|
echo a echo b
|
||||||
echo '### Quoting if there is a command and 2 arg files of uneven length'
|
echo '### Quoting if there is a command and 2 arg files of uneven length'
|
||||||
### Quoting if there is a command and 2 arg files of uneven length
|
### Quoting if there is a command and 2 arg files of uneven length
|
||||||
$XAP -kv echo :::: <(echo 'echo a';echo a1) <(echo 'echo b')
|
$XAP -kv echo :::: <(echo 'echo a';echo a1) <(echo 'echo b')
|
||||||
echo echo\ a echo\ b
|
echo 'echo a' 'echo b'
|
||||||
echo a echo b
|
echo a echo b
|
||||||
echo a1 echo\ b
|
echo a1 'echo b'
|
||||||
a1 echo b
|
a1 echo b
|
||||||
echo '### Quoting if there is no command and 2 arg files'
|
echo '### Quoting if there is no command and 2 arg files'
|
||||||
### Quoting if there is no command and 2 arg files
|
### Quoting if there is no command and 2 arg files
|
||||||
|
|
Loading…
Reference in a new issue