Upgrade testsuite to Ubuntu 22.04.

This commit is contained in:
Ole Tange 2022-05-22 10:36:45 +02:00
parent 5ecca1ccf4
commit 8df9524948
39 changed files with 796 additions and 564 deletions

View file

@ -51,8 +51,15 @@ to accept that the software is already compliant with GPLv3, because
nothing else gives you the right to change it. And if you accept this,
you do not need to change it to make it compliant.
What you can not do is to simultaneously claim that the software both
is and is not available under GPLv3. You need to pick one.
This is also covered in section 9 of GPLv3: "However, nothing other
than this License grants you permission to propagate or modify any
covered work." https://www.gnu.org/licenses/gpl-3.0.en.html
So: If you do not feel the citation notice adheres to GPLv3, you need
to treat it as software that you have no license to use.
to treat it as software that you have no license to modify.
== Do automated scripts break if the notice is not silenced? ==

View file

@ -4,6 +4,9 @@
Quote of the month:
xargs諦めてGNU Parallel使ったら一瞬で問題が解決したので終わり
-- aria_moto @moto_aria@twitter
Such a life saver of a tool.
-- winrid@ycombinator

View file

@ -254,7 +254,7 @@ from:tange@gnu.org
to:parallel@gnu.org, bug-parallel@gnu.org
stable-bcc: Jesse Alama <jessealama@fastmail.fm>
Subject: GNU Parallel 20220522 ('Слава Україні Emmanuel Jean-Michel Frédéric<<>>') released [stable]
Subject: GNU Parallel 20220522 ('Colorado/Слава Україні Emmanuel Jean-Michel Frédéric<<>>') released [stable]
GNU Parallel 20220522 ('<<>>') has been released. It is available for download at: lbry://@GnuParallel:4
@ -276,6 +276,10 @@ News about GNU Parallel:
https://www.blopig.com/blog/2022/05/make-your-code-do-more-with-less/
W09 B IntroHPC II 20220513 gnu parallel https://www.youtube.com/watch?v=2udvC90rIa4
https://saveriomiroddi.github.io/Running-shell-commands-in-parallel-via-gnu-parallel/#xdg_runtime_dir
<<>>
Get the book: GNU Parallel 2018 http://www.lulu.com/shop/ole-tange/gnu-parallel-2018/paperback/product-23558902.html

View file

@ -1 +1 @@
5
7

View file

@ -1681,15 +1681,18 @@ sub options_completion_hash() {
"xargs[Insert as many arguments as the command line length permits]"
=> \$opt::xargs,
"m[Multiple arguments]" => \$opt::m,
("X[Insert as many arguments with context as the command line length permits]"
("X[Insert as many arguments with context as the command line ".
"length permits]"
=> \$opt::X),
"v[Verbose]" => \@opt::v,
"sql=s[Use --sql-master instead (obsolete)]:DBURL" => \$opt::retired,
("sql-master|sqlmaster=s".
"[Submit jobs via SQL server. DBURL must point to a table, which will contain --joblog, the values, and output]:DBURL"
"[Submit jobs via SQL server. DBURL must point to a table, which ".
"will contain --joblog, the values, and output]:DBURL"
=> \$opt::sqlmaster),
("sql-worker|sqlworker=s".
"[Execute jobs via SQL server. Read the input sources variables from the table pointed to by DBURL.]:DBURL"
"[Execute jobs via SQL server. Read the input sources variables ".
"from the table pointed to by DBURL.]:DBURL"
=> \$opt::sqlworker),
("sql-and-worker|sqlandworker=s".
"[--sql-master DBURL --sql-worker DBURL]:DBURL"
@ -1709,24 +1712,29 @@ sub options_completion_hash() {
"[Keep sequence of output same as the order of input]"
=> \$opt::keeporder),
("no-keep-order|nokeeporder|nok|no-k".
"[Overrides an earlier --keep-order (e.g. if set in ~/.parallel/config)]"
"[Overrides an earlier --keep-order (e.g. if set in ".
"~/.parallel/config)]"
=> \$opt::nokeeporder),
"group[Group output]" => \$opt::group,
"g" => \$opt::retired,
("ungroup|u".
"[Output is printed as soon as possible and bypasses GNU parallel internal processing]"
"[Output is printed as soon as possible and bypasses GNU parallel ".
"internal processing]"
=> \$opt::ungroup),
("last-line-buffer|last-line-buffered|lastlinebuffer|lastlinebuffered|llb".
("latest-line|latestline|ll".
"[Print latest line of each job]"
=> \$opt::lastlinebuffer),
=> \$opt::latestline),
("line-buffer|line-buffered|linebuffer|linebuffered|lb".
"[Buffer output on line basis]"
=> \$opt::linebuffer),
("tmux".
"[Use tmux for output. Start a tmux session and run each job in a window in that session. No other output will be produced]"
"[Use tmux for output. Start a tmux session and run each job in a ".
"window in that session. No other output will be produced]"
=> \$opt::tmux),
("tmux-pane|tmuxpane".
"[Use tmux for output but put output into panes in the first window. Useful if you want to monitor the progress of less than 100 concurrent jobs]"
"[Use tmux for output but put output into panes in the first ".
"window. Useful if you want to monitor the progress of less than ".
"100 concurrent jobs]"
=> \$opt::tmuxpane),
"null|0[Use NUL as delimiter]" => \$opt::null,
"quote|q[Quote command]" => \$opt::quote,
@ -1740,26 +1748,33 @@ sub options_completion_hash() {
"[Use the replacement string replace-str instead of {}]:replace-str"
=> \$opt::I),
("extensionreplace|er=s".
"[Use the replacement string replace-str instead of {.} for input line without extension]:replace-str"
"[Use the replacement string replace-str instead of {.} for input ".
"line without extension]:replace-str"
=> \$opt::U),
"U=s" => \$opt::retired,
("basenamereplace|bnr=s".
"[Use the replacement string replace-str instead of {/} for basename of input line]:replace-str"
"[Use the replacement string replace-str instead of {/} for ".
"basename of input line]:replace-str"
=> \$opt::basenamereplace),
("dirnamereplace|dnr=s".
"[Use the replacement string replace-str instead of {//} for dirname of input line]:replace-str"
"[Use the replacement string replace-str instead of {//} for ".
"dirname of input line]:replace-str"
=> \$opt::dirnamereplace),
("basenameextensionreplace|bner=s".
"[Use the replacement string replace-str instead of {/.} for basename of input line without extension]:replace-str"
"[Use the replacement string replace-str instead of {/.} for ".
"basename of input line without extension]:replace-str"
=> \$opt::basenameextensionreplace),
("seqreplace=s".
"[Use the replacement string replace-str instead of {#} for job sequence number]:replace-str"
"[Use the replacement string replace-str instead of {#} for job ".
"sequence number]:replace-str"
=> \$opt::seqreplace),
("slotreplace=s".
"[Use the replacement string replace-str instead of {%} for job slot number]:replace-str"
"[Use the replacement string replace-str instead of {%} for job ".
"slot number]:replace-str"
=> \$opt::slotreplace),
("jobs|j=s".
"[(Add +N to/Subtract -N from/Multiply N%) the number of CPU threads or read parameter from file]:_files"
"[(Add +N to/Subtract -N from/Multiply N%) the number of CPU ".
"threads or read parameter from file]:_files"
=> \$opt::jobs),
("delay=s".
"[Delay starting next job by duration]:duration" => \$opt::delay),
@ -1795,7 +1810,8 @@ sub options_completion_hash() {
"[Determine how GNU Parallel counts the number of CPUs]"
=> \$opt::use_cpus_instead_of_cores),
("shell-quote|shellquote|shell_quote".
"[Does not run the command but quotes it. Useful for making quoted composed commands for GNU parallel]"
"[Does not run the command but quotes it. Useful for making ".
"quoted composed commands for GNU parallel]"
=> \@opt::shellquote),
('nice=i[Run the command at this niceness]:niceness:($(seq -20 19))'
=> \$opt::nice),
@ -1812,10 +1828,12 @@ sub options_completion_hash() {
=> \$opt::filter_hosts),
('sshlogin|S=s'.
'[Distribute jobs to remote computers]'.
':[@hostgroups/][ncpus/]sshlogin[,[@hostgroups/][ncpus/]sshlogin[,...]] or @hostgroup'.
':[@hostgroups/][ncpus/]sshlogin'.
'[,[@hostgroups/][ncpus/]sshlogin[,...]] or @hostgroup'.
':_users') => \@opt::sshlogin,
("sshloginfile|slf=s".
"[File with sshlogins on separate lines. Lines starting with '#' are ignored.]:filename:_files"
"[File with sshlogins on separate lines. Lines starting with '#' ".
"are ignored.]:filename:_files"
=> \@opt::sshloginfile),
("controlmaster|M".
"[Use ssh's ControlMaster to make ssh connections faster]"
@ -1833,15 +1851,20 @@ sub options_completion_hash() {
"transfer[Transfer files to remote computers]" => \$opt::transfer,
"cleanup[Remove transferred files]" => \$opt::cleanup,
("basefile|bf=s".
"[Transfer file to each sshlogin before first job is started]:file:_files"
"[Transfer file to each sshlogin before first job is started]".
":file:_files"
=> \@opt::basefile),
("template|tmpl=s[Replace replacement strings in file and save it in repl]:file=repl:_files"
("template|tmpl=s".
"[Replace replacement strings in file and save it in repl]".
":file=repl:_files"
=> \%opt::template),
"B=s" => \$opt::retired,
"ctrl-c|ctrlc" => \$opt::retired,
"no-ctrl-c|no-ctrlc|noctrlc" => \$opt::retired,
("work-dir|workdir|wd=s".
"[Jobs will be run in the dir mydir. (default: the current dir for the local machine, the login dir for remote computers)]:mydir:_cd"
"[Jobs will be run in the dir mydir. (default: the current dir ".
"for the local machine, the login dir for remote computers)]".
":mydir:_cd"
=> \$opt::workdir),
"W=s" => \$opt::retired,
("rsync-opts|rsyncopts=s[Options to pass on to rsync]:options"
@ -1862,7 +1885,8 @@ sub options_completion_hash() {
"T" => \$opt::retired,
"H=i" => \$opt::retired,
("dry-run|dryrun|dr".
"[Print the job to run on stdout (standard output), but do not run the job]"
"[Print the job to run on stdout (standard output), but do not ".
"run the job]"
=> \$opt::dryrun),
"progress[Show progress of computations]" => \$opt::progress,
("eta[Show the estimated number of seconds before finishing]"
@ -1883,7 +1907,9 @@ sub options_completion_hash() {
"env=s[Copy environment variable var]:var:_vars" => \@opt::env,
"recordenv|record-env[Record environment]" => \$opt::record_env,
('session'.
'[Record names in current environment in $PARALLEL_IGNORED_NAMES and exit. Only used with env_parallel. Aliases, functions, and variables with names i]'
'[Record names in current environment in $PARALLEL_IGNORED_NAMES '.
'and exit. Only used with env_parallel. '.
'Aliases, functions, and variables with names i]'
=> \$opt::session),
('plain[Ignore --profile, $PARALLEL, and ~/.parallel/config]'
=> \$opt::plain),
@ -1900,12 +1926,16 @@ sub options_completion_hash() {
# You accept to be put in a public hall of shame by removing
# these lines.
("bibtex|citation".
"[Print the citation notice and BibTeX entry for GNU parallel, silence citation notice for all future runs, and exit. It will not run any commands]"
"[Print the citation notice and BibTeX entry for GNU parallel, ".
"silence citation notice for all future runs, and exit. ".
"It will not run any commands]"
=> \$opt::citation),
"will-cite|willcite|nn|nonotice|no-notice" => \$opt::willcite,
# Termination and retries
('halt-on-error|haltonerror|halt=s'.
'[When should GNU parallel terminate]:when:((now\:"kill all running jobs and halt immediately" soon\:"wait for all running jobs to complete, start no new jobs"))'
'[When should GNU parallel terminate]'.
':when:((now\:"kill all running jobs and halt immediately" '.
'soon\:"wait for all running jobs to complete, start no new jobs"))'
=> \$opt::halt),
'limit=s[Dynamic job limit]:"command args"' => \$opt::limit,
("memfree=s".
@ -1916,13 +1946,15 @@ sub options_completion_hash() {
=> \$opt::memsuspend),
"retries=s[Try failing jobs n times]:n" => \$opt::retries,
("timeout=s".
"[Time out for command. If the command runs for longer than duration seconds it will get killed as per --term-seq]:duration"
"[Time out for command. If the command runs for longer than ".
"duration seconds it will get killed as per --term-seq]:duration"
=> \$opt::timeout),
("term-seq|termseq=s".
"[Termination sequence]:sequence" => \$opt::termseq),
# xargs-compatibility - implemented, man, testsuite
("max-procs|maxprocs|P=s".
"[Add N to/Subtract N from/Multiply N% with/ the number of CPU threads or read parameter from file]:+N/-N/N%/N/procfile:_files"
"[Add N to/Subtract N from/Multiply N% with/ the number of CPU ".
"threads or read parameter from file]:+N/-N/N%/N/procfile:_files"
=> \$opt::jobs),
("delimiter|d=s[Input items are terminated by delim]:delim"
=> \$opt::d),
@ -1961,7 +1993,8 @@ sub options_completion_hash() {
("version|V[Print the version GNU parallel and exit]"
=> \$opt::version),
('min-version|minversion=i'.
'[Print the version GNU parallel and exit]:version:($(parallel --minversion 0))'
'[Print the version GNU parallel and exit]'.
':version:($(parallel --minversion 0))'
=> \$opt::minversion),
("show-limits|showlimits".
"[Display limits given by the operating system]"
@ -1971,7 +2004,8 @@ sub options_completion_hash() {
# Semaphore
"semaphore[Work as a counting semaphore]" => \$opt::semaphore,
("semaphore-timeout|semaphoretimeout|st=s".
"[If secs > 0: If the semaphore is not released within secs seconds, take it anyway]:secs"
"[If secs > 0: If the semaphore is not released within secs ".
"seconds, take it anyway]:secs"
=> \$opt::semaphoretimeout),
("semaphore-name|semaphorename|id=s".
"[Use name as the name of the semaphore]:name"
@ -1981,7 +2015,9 @@ sub options_completion_hash() {
"wait[Wait for all commands to complete]" => \$opt::wait,
# Shebang #!/usr/bin/parallel --shebang
("shebang|hashbang".
"[GNU parallel can be called as a shebang (#!) command as the first line of a script. The content of the file will be treated as inputsource]"
"[GNU parallel can be called as a shebang (#!) command as the ".
"first line of a script. The content of the file will be treated ".
"as inputsource]"
=> \$opt::shebang),
("_pipe-means-argfiles[internal]"
=> \$opt::_pipe_means_argfiles),
@ -2158,7 +2194,7 @@ sub parse_options(@) {
or defined $opt::color) {
$Global::color = 1;
}
if($opt::linebuffer or $opt::lastlinebuffer) {
if($opt::linebuffer or $opt::latestline) {
$Global::linebuffer = 1;
}
if(defined $opt::tag and not defined $opt::tagstring) {
@ -2167,7 +2203,8 @@ sub parse_options(@) {
}
if(defined $opt::tagstring) {
$opt::tagstring = unquote_printf($opt::tagstring);
if($opt::tagstring =~ /\Q$Global::parensleft\E.*\Q$Global::parensright\E/
if($opt::tagstring =~
/\Q$Global::parensleft\E.*\Q$Global::parensright\E/
and
$Global::linebuffer) {
# --tagstring contains {= =} and --linebuffer =>
@ -2175,7 +2212,9 @@ sub parse_options(@) {
$Global::cache_replacement_eval = 0;
}
}
if(defined $opt::interactive) { $Global::interactive = $opt::interactive; }
if(defined $opt::interactive) {
$Global::interactive = $opt::interactive;
}
if(defined $opt::quote) { $Global::quoting = 1; }
if(defined $opt::r) { $Global::ignore_empty = 1; }
if(defined $opt::verbose) { $Global::stderr_verbose = 1; }
@ -2401,7 +2440,8 @@ sub parse_options(@) {
}
}
if(defined $opt::max_replace_args) {
$opt::max_replace_args = multiply_binary_prefix($opt::max_replace_args);
$opt::max_replace_args =
multiply_binary_prefix($opt::max_replace_args);
$Global::max_number_of_args = $opt::max_replace_args;
$Global::ContextReplace = 1;
}
@ -2537,7 +2577,9 @@ sub parse_options(@) {
}
if($opt::sqlworker) { $Global::membuffer ||= 1; }
# The sqlmaster groups the arguments, so the should just read one
if($opt::sqlworker and not $opt::sqlmaster) { $Global::max_number_of_args = 1; }
if($opt::sqlworker and not $opt::sqlmaster) {
$Global::max_number_of_args = 1;
}
}
sub check_invalid_option_combinations() {
@ -2654,15 +2696,18 @@ sub init_globals() {
'{/..}' => 's:.*/::; s:\.[^/.]+\.[^/.]+$::',
'{/...}' => 's:.*/::; s:\.[^/.]+\.[^/.]+\.[^/.]+$::',
# n choose k = Binomial coefficient
'{choose_k}' => 'for $t (2..$#arg){ if($arg[$t-1] ge $arg[$t]) { skip() } }',
'{choose_k}' => ('for $t (2..$#arg)'.
'{ if($arg[$t-1] ge $arg[$t]) { skip() } }'),
# unique values: Skip job if any args are the same
'{uniq}' => 'if(::uniq(@arg) != @arg) { skip(); }',
# {##} = number of jobs
'{##}' => '1 $_=total_jobs()',
# {0%} = 0-padded jobslot
'{0%}' => '1 $f=1+int((log($Global::max_jobs_running||1)/log(10))); $_=sprintf("%0${f}d",slot())',
'{0%}' => ('1 $f=1+int((log($Global::max_jobs_running||1)/log(10)));'.
'$_=sprintf("%0${f}d",slot())'),
# {0%} = 0-padded seq
'{0#}' => '1 $f=1+int((log(total_jobs())/log(10))); $_=sprintf("%0${f}d",seq())',
'{0#}' => ('1 $f=1+int((log(total_jobs())/log(10)));'.
'$_=sprintf("%0${f}d",seq())'),
## Bash inspired replacement strings
# Bash ${a:-myval}
@ -2979,7 +3024,7 @@ sub open_joblog() {
$append = <$joblog_fh>;
my $joblog_regexp;
if($opt::retry_failed) {
# Make a regexp that only matches commands with exit+signal=0
# Make a regexp that matches commands with exit+signal=0
# 4 host 1360490623.067 3.445 1023 1222 0 0 command
$joblog_regexp='^(\d+)(?:\t[^\t]+){5}\t0\t0\t';
my @group;
@ -3004,12 +3049,14 @@ sub open_joblog() {
# Put args into argfile
if(grep /\0/, @group) {
# force --null to deal with \n in commandlines
::warning("Command lines contain newline. Forcing --null.");
::warning("Command lines contain newline. ".
"Forcing --null.");
$opt::null = 1;
$/ = "\0";
}
# Replace \0 with '\n' as used in print_joblog()
print $outfh map { s/\0/\n/g; $_,$/ } map { $_ } @group;
print $outfh (map { s/\0/\n/g; $_,$/ }
map { $_ } @group);
seek $outfh, 0, 0;
exit_if_disk_full();
# Set filehandle to -a
@ -3020,7 +3067,7 @@ sub open_joblog() {
}
if($opt::resume || $opt::resume_failed) {
if($opt::resume_failed) {
# Make a regexp that only matches commands with exit+signal=0
# Make a regexp that matches commands with exit+signal=0
# 4 host 1360490623.067 3.445 1023 1222 0 0 command
$joblog_regexp='^(\d+)(?:\t[^\t]+){5}\t0\t0\t';
} else {
@ -3176,7 +3223,7 @@ sub read_options() {
my @options;
my @parser;
if ($^O eq 'freebsd') {
# FreeBSD's #! puts different values in @ARGV than Linux' does.
# FreeBSD's #! puts different values in @ARGV than Linux' does
my @nooptions = @ARGV;
get_options_from_array(\@nooptions);
while($#ARGV > $#nooptions) {
@ -3198,7 +3245,8 @@ sub read_options() {
}
}
if($ARGV[0] =~ / --shebang(-?wrap)? /) {
::warning("--shebang and --shebang-wrap must be the first argument.\n");
::warning("--shebang and --shebang-wrap must be the first ".
"argument.\n");
}
Getopt::Long::Configure("bundling","require_order");
@ -3318,7 +3366,7 @@ sub read_args_from_command_line() {
$arg eq $Global::arg_file_sep
or
$arg eq $Global::arg_file_sep."+") {
my $group_sep = $arg; # This group of arguments is args or argfiles
my $group_sep = $arg; # This group of args is args or argfiles
my @group;
while(defined ($arg = shift @ARGV)) {
if($arg eq $Global::arg_sep
@ -3760,7 +3808,8 @@ sub init_run_jobs() {
my $mtime = (stat($actual_file))[9];
$last_mtime{$actual_file} ||= $mtime;
if($mtime - $last_mtime{$actual_file} > 1) {
::debug("run","--sshloginfile $actual_file changed. reload\n");
::debug("run",
"--sshloginfile $actual_file changed. reload\n");
$last_mtime{$actual_file} = $mtime;
# Reload $slf
# Empty sshlogins
@ -3820,7 +3869,7 @@ sub init_run_jobs() {
if ($sshlogin->jobs_running() < $sshlogin->max_jobs_running()) {
if($opt::delay
and
$opt::delay - 0.008 > ::now() - $Global::newest_starttime) {
$opt::delay-0.008 > ::now()-$Global::newest_starttime) {
# It has been too short since last start
next;
}
@ -3915,8 +3964,10 @@ sub init_run_jobs() {
}
} while ($job->is_already_in_joblog()
or
($opt::results and $opt::resume and $job->is_already_in_results()));
debug("start", "Command to run on '", $job->sshlogin()->string(), "': '",
($opt::results and $opt::resume
and $job->is_already_in_results()));
debug("start", "Command to run on '",
$job->sshlogin()->string(), "': '",
$job->replaced(),"'\n");
if($job->start()) {
if($opt::pipe) {
@ -3938,10 +3989,11 @@ sub init_run_jobs() {
my $max = $sshlogin->max_jobs_running();
if($max > 1) { $max--; } else {
my @arg;
for my $record (@{$job->{'commandline'}->{'arg_list'}}) {
for my $record (@{$job->{'commandline'}{'arg_list'}}) {
push @arg, map { $_->orig() } @$record;
}
::error("No more processes: cannot run a single job. Something is wrong at @arg.");
::error("No more processes: cannot run a single job. ".
"Something is wrong at @arg.");
::wait_and_exit(255);
}
$sshlogin->set_max_jobs_running($max);
@ -4185,7 +4237,7 @@ sub progress() {
@workers);
}
if(length $status > $termcols) {
# 1:XX/XX/XX% 2:XX/XX/XX% 3:XX/XX/XX% 4:XX/XX/XX% 5:XX/XX/XX% 6:XX/XX/XX%
# 1:XX/XX/XX% 2:XX/XX/XX% 3:XX/XX/XX% 4:XX/XX/XX% 5:XX/XX/XX%
$header = "Computer:jobs running/jobs completed/%of started jobs";
$status = $eta .
join(" ",map
@ -4203,11 +4255,11 @@ sub progress() {
@workers);
}
if(length $status > $termcols) {
# sshlogin1:XX/XX/XX% sshlogin2:XX/XX/XX% sshlogin3:XX/XX sshlogin4:XX/XX
# sshlogin1:XX/XX/XX% sshlogin2:XX/XX/XX% sshlogin3:XX/XX
$header = "Computer:jobs running/jobs completed";
$status = $eta .
join(" ",map
{ sprintf("%s:%d/%d",
join(" ",
map { sprintf("%s:%d/%d",
$sshlogin{$_}, $Global::host{$_}->jobs_running(),
($Global::host{$_}->jobs_completed()||0)) }
@workers);
@ -4216,8 +4268,8 @@ sub progress() {
# sshlogin1:XX/XX sshlogin2:XX/XX sshlogin3:XX/XX sshlogin4:XX/XX
$header = "Computer:jobs running/jobs completed";
$status = $eta .
join(" ",map
{ sprintf("%s:%d/%d",
join(" ",
map { sprintf("%s:%d/%d",
$sshlogin{$_}, $Global::host{$_}->jobs_running(),
($Global::host{$_}->jobs_completed()||0)) }
@workers);
@ -4226,9 +4278,9 @@ sub progress() {
# 1:XX/XX 2:XX/XX 3:XX/XX 4:XX/XX 5:XX/XX 6:XX/XX
$header = "Computer:jobs running/jobs completed";
$status = $eta .
join(" ",map
{ sprintf("%s:%d/%d",
$workerno{$_}, $Global::host{$_}->jobs_running(),
join(" ",
map { sprintf("%s:%d/%d", $workerno{$_},
$Global::host{$_}->jobs_running(),
($Global::host{$_}->jobs_completed()||0)) }
@workers);
}
@ -4236,9 +4288,8 @@ sub progress() {
# sshlogin1:XX sshlogin2:XX sshlogin3:XX sshlogin4:XX sshlogin5:XX
$header = "Computer:jobs completed";
$status = $eta .
join(" ",map
{ sprintf("%s:%d",
$sshlogin{$_},
join(" ",
map { sprintf("%s:%d", $sshlogin{$_},
($Global::host{$_}->jobs_completed()||0)) }
@workers);
}
@ -4246,13 +4297,14 @@ sub progress() {
# 1:XX 2:XX 3:XX 4:XX 5:XX 6:XX
$header = "Computer:jobs completed";
$status = $eta .
join(" ",map
{ sprintf("%s:%d",
join(" ",
map { sprintf("%s:%d",
$workerno{$_},
($Global::host{$_}->jobs_completed()||0)) }
@workers);
}
return ("workerlist" => $workerlist, "header" => $header, "status" => $status);
return ("workerlist" => $workerlist, "header" => $header,
"status" => $status);
}
{
@ -4323,7 +4375,8 @@ sub progress() {
my $zenity = sprintf("%-${terminal_width}s",
substr("# $eta sec $arg",
0,$terminal_width));
$s = "\r" . $zenity . "\r" . $pctcomplete*100 . # Prefix with zenity header
# Prefix with zenity header
$s = "\r" . $zenity . "\r" . $pctcomplete*100 .
"\r" . $rev . $s . $reset;
return $s;
}
@ -4583,21 +4636,26 @@ sub parse_sshlogin() {
}
# debug("start", "sshlogin: ", my_dump(%Global::host),"\n");
if(@Global::transfer_files or @opt::return or $opt::cleanup or @opt::basefile) {
if(@Global::transfer_files or @opt::return
or $opt::cleanup or @opt::basefile) {
if(not remote_hosts()) {
# There are no remote hosts
if(@opt::trc) {
::warning("--trc ignored as there are no remote --sshlogin.");
} elsif (defined $opt::transfer) {
::warning("--transfer ignored as there are no remote --sshlogin.");
::warning("--transfer ignored as there are ".
"no remote --sshlogin.");
} elsif (@opt::transfer_files) {
::warning("--transferfile ignored as there are no remote --sshlogin.");
::warning("--transferfile ignored as there ".
"are no remote --sshlogin.");
} elsif (@opt::return) {
::warning("--return ignored as there are no remote --sshlogin.");
} elsif (defined $opt::cleanup and not %opt::template) {
::warning("--cleanup ignored as there are no remote --sshlogin.");
::warning("--cleanup ignored as there ".
"are no remote --sshlogin.");
} elsif (@opt::basefile) {
::warning("--basefile ignored as there are no remote --sshlogin.");
::warning("--basefile ignored as there ".
"are no remote --sshlogin.");
}
}
}
@ -4630,7 +4688,8 @@ sub setup_basefile() {
::wait_and_exit(255);
}
if(not $workdir) {
my $dummycmdline = CommandLine->new(1,["true"],{},0,0,[],[],[],[],{},{});
my $dummycmdline =
CommandLine->new(1,["true"],{},0,0,[],[],[],[],{},{});
my $dummyjob = Job->new($dummycmdline);
$workdir = $dummyjob->workdir();
}
@ -4919,7 +4978,8 @@ sub parallelized_host_filtering() {
push(@threads, $host."\t"."true $host; ".
sshwrapped($sshlogin,"parallel --number-of-threads",0)."\n\0");
push(@maxline, $host."\t"."true $host; ".
sshwrapped($sshlogin,"parallel --max-line-length-allowed",0)."\n\0");
sshwrapped($sshlogin,
"parallel --max-line-length-allowed",0)."\n\0");
# 'echo' is used to get the fastest possible ssh login time
push(@echo, $host."\t"."true $host; ".
$sshlogin->wrap("echo $host")."\n\0");
@ -5109,7 +5169,8 @@ sub onall($@) {
my %seen;
for my $joblog (@joblogs) {
# Append to $joblog
open(my $fh, "<", $joblog) || ::die_bug("Cannot open tmp joblog $joblog");
open(my $fh, "<", $joblog) ||
::die_bug("Cannot open tmp joblog $joblog");
# Skip first line (header);
<$fh>;
print $Global::joblog (<$fh>);
@ -5515,8 +5576,10 @@ sub citation_notice() {
print $fh $runs;
close $fh;
if($runs >= 10) {
::status("Come on: You have run parallel $runs times. Isn't it about time ",
"you run 'parallel --citation' once to silence the citation notice?",
::status("Come on: You have run parallel $runs times. ".
"Isn't it about time ",
"you run 'parallel --citation' once to silence ".
"the citation notice?",
"");
}
}
@ -6055,8 +6118,10 @@ sub multiply_time_units($) {
s/m/*60+/gi;
s/h/*3600+/gi;
s/d/*86400+/gi;
$_ = eval $_."0";
# 1m/3 => 1*60+/3 => 1*60/3
s/\+(\D)/$1/gi;
}
$_ = eval $_."-0";
}
return wantarray ? @v : $v[0];
}
@ -6489,14 +6554,12 @@ sub reap_usleep() {
$something_printed += $job->print();
}
}
if($something_printed) {
$ms = $ms/2+0.001;
}
if($something_printed) { $ms = $ms/2+0.001; }
}
if($ms > 0.002) {
# When a child dies, wake up from sleep (or select(,,,))
$SIG{CHLD} = sub { kill "ALRM", $$ };
if($opt::delay) {
if($opt::delay and not $Global::linebuffer) {
# The 0.004s is approximately the time it takes for one round
my $next_earliest_start =
$Global::newest_starttime + $opt::delay - 0.004;
@ -11087,7 +11150,7 @@ sub print_files($) {
}
if(not $init) {
$init = 1;
if($Global::color or $opt::lastlinebuffer) {
if($Global::color or $opt::latestline) {
# cursor_up cuu1 = up one line
$up = `tput cuu1 </dev/tty`;
chomp($up);
@ -11137,7 +11200,7 @@ sub print_files($) {
# map { print $b,$_ } 1..10'
$i = ((rindex($buf,"\n")+1) || (rindex($buf,"\r")+1));
if($i) {
if($opt::lastlinebuffer) {
if($opt::latestline) {
# Remove the final \n/\r
my $l = join('', @$halfline_ref,
substr($buf,0,$i-1));
@ -11404,9 +11467,7 @@ sub print_results($) {
$outputlength = tell($in_fh);
}
}
if($fdno == 1) {
$self->add_returnsize($outputlength);
}
if($fdno == 1) { $self->add_returnsize($outputlength); }
close $in_fh;
if($? and $opt::compress) {
::error($opt::decompress_program." failed.");

View file

@ -1348,7 +1348,7 @@ Number of jobslots on each machine.
Run up to N jobs in parallel. 0 means as many as possible (this can
take a while to determine). Default is 100% which will run one job per
CPU on each machine.
CPU thread on each machine.
Due to a bug B<-j 0> will also evaluate replacement strings twice up
to the number of joblots:
@ -1360,6 +1360,10 @@ to the number of joblots:
If B<--semaphore> is set, the default is 1 thus making a mutex.
See also: B<--use-cores-instead-of-threads>
B<--use-sockets-instead-of-threads>
=item B<--jobs> I<+N>
@ -1543,9 +1547,9 @@ Similar to B<--memfree>.
See also: B<--memfree> B<--load>
=item B<--last-line-buffer> (alpha testing)
=item B<--latest-line> (alpha testing)
=item B<--llb> (alpha testing)
=item B<--ll> (alpha testing)
Print the lastest line of each running job.
@ -3446,8 +3450,9 @@ See also: B<--use-cores-instead-of-threads>
Determine how GNU B<parallel> counts the number of CPUs.
GNU B<parallel> uses this number when the number of jobslots is
computed relative to the number of CPUs (e.g. 100% or +1).
GNU B<parallel> uses this number when the number of jobslots
(B<--jobs>) is computed relative to the number of CPUs (e.g. 100% or
+1).
CPUs can be counted in three different ways:
@ -4872,9 +4877,6 @@ If you cannot use passwordless login, you may be able to use B<sshpass>:
seq 10 |
parallel --ssh 'sshpass -e ssh' -S 4/user-with-password@server' echo
Currently the remote detection of CPU cores is incompatible with
B<sshpass> so use the '4/' syntax to tell the server has 4 cores.
=head2 EXAMPLE: Use outrun instead of ssh
@ -5124,7 +5126,7 @@ Interleaved FASTQ starts with a line like these:
where '/1' and ' 1:' determines this is read 1.
This will cut big.fq into one chunk per CPU core and pass it on
This will cut big.fq into one chunk per CPU thread and pass it on
stdin (standard input) to the program fastq-reader:
parallel --pipe-part -a big.fq --block -1 --regexp \
@ -5752,7 +5754,7 @@ Remember to quote the $, so it gets evaluated by the correct shell. Or
use B<--plus> and {sshlogin}.
The value is the sshlogin line with number of cores removed. E.g.
The value is the sshlogin line with number of threads removed. E.g.
4//usr/bin/specialssh user@host

View file

@ -978,21 +978,41 @@ https://github.com/danielgtaylor/ladon (Last checked: 2019-01)
=head2 DIFFERENCES BETWEEN jobflow AND GNU Parallel
Summary (see legend above):
=over
=item I1 - - - - - I7
=item - - M3 - - (M6)
=item O1 O2 O3 - O5 O6 (O7) - - O10
=item E1 - - - - E6 -
=item - - - - - - - - -
=item - -
=back
B<jobflow> can run multiple jobs in parallel.
Just like B<xargs> output from B<jobflow> jobs running in parallel mix
together by default. B<jobflow> can buffer into files (placed in
/run/shm), but these are not cleaned up if B<jobflow> dies
unexpectedly (e.g. by Ctrl-C). If the total output is big (in the
order of RAM+swap) it can cause the system to slow to a crawl and
eventually run out of memory.
together by default. B<jobflow> can buffer into files with
B<-buffered> (placed in /run/shm), but these are not cleaned up if
B<jobflow> dies unexpectedly (e.g. by Ctrl-C). If the total output is
big (in the order of RAM+swap) it can cause the system to slow to a
crawl and eventually run out of memory.
B<jobflow> gives no error if the command is unknown, and like B<xargs>
redirection and composed commands require wrapping with B<bash -c>.
Just like B<xargs> redirection and composed commands require wrapping
with B<bash -c>.
Input lines can at most be 4096 bytes. You can at most have 16 {}'s in
the command template. More than that either crashes the program or
simple does not execute the command.
Input lines can at most be 4096 bytes.
B<jobflow> is faster than GNU B<parallel> but around 6 times slower
than B<parallel-bash>.
B<jobflow> has no equivalent for B<--pipe>, or B<--sshlogin>.
@ -1024,7 +1044,13 @@ jobs. This can be emulated by GNU B<parallel> using B<bash>'s B<ulimit>:
4$ find . -name '*.bmp' | \
parallel -j8 bmp2jpeg {.}.bmp {.}.jpg
https://github.com/rofl0r/jobflow
5$ seq 100 | jobflow -skip 10 -count 10
5$ seq 100 | parallel --filter '{1} > 10 and {1} <= 20' echo
5$ seq 100 | parallel echo '{= $_>10 and $_<=20 or skip() =}'
https://github.com/rofl0r/jobflow (Last checked: 2022-05)
=head2 DIFFERENCES BETWEEN gargs AND GNU Parallel

View file

@ -34,7 +34,7 @@ install_packages() {
# Shells
# (csh = bsd-csh that is broken)
shell_pkgs="ash dash fdclone fish fizsh ksh ksh93 mksh posh rc rush sash"
shell_pkgs="ash dash fdclone fish fizsh ksh ksh93u+m ksh93 mksh posh rc rush sash"
shell_pkgs="$shell_pkgs tcsh yash zsh"
# Databases

View file

@ -7,6 +7,17 @@
echo "### These tests requires VirtualBox running with the following images"
echo 'vagrant@centos3'
# add this to .ssh/config
# Host centos3
# HostKeyAlgorithms +ssh-rsa,ssh-dss
# PubkeyAcceptedAlgorithms +ssh-dss
# user vagrant
# add this to: /etc/ssh/sshd_config on 172.27.27.1
# HostKeyAlgorithms +ssh-rsa
# and:
# systemctl restart sshd
SERVER1=centos3
SSHUSER1=vagrant
SSHLOGIN1=$SSHUSER1@$SERVER1
@ -15,18 +26,29 @@ SERVER2=172.27.27.1
SSHUSER2=parallel
export SSHLOGIN2=$SSHUSER2@$SERVER2
stdout ping -w 1 -c 1 centos3 >/dev/null || (
start_centos3() {
stdout ping -w 1 -c 1 centos3 >/dev/null || (
# Vagrant does not set the IP addr
cd testsuite/vagrant/tange/centos3/ 2>/dev/null
cd vagrant/tange/centos3/ 2>/dev/null
cd ../vagrant/tange/centos3/ 2>/dev/null
(
stdout vagrant up >/dev/null
vagrant ssh -c 'sudo ifconfig eth1 172.27.27.3' |
vagrantssh() {
port=$(perl -ne '/#/ and next; /config.vm.network.*host:\s*(\d+)/ and print $1' Vagrantfile)
w4it-for-port-open localhost $port
ssh -oKexAlgorithms=+diffie-hellman-group1-sha1 \
-oHostKeyAlgorithms=+ssh-rsa,ssh-dss \
-oPubkeyAcceptedAlgorithms=+ssh-dss -p$port vagrant@localhost "$@" |
# Ignore empty ^M line
grep ..
}
(
stdout vagrant up >/dev/null
vagrantssh 'sudo /sbin/ifconfig eth1 172.27.27.3'
) &
)
)
}
start_centos3
(
# Copy binaries to server
cd testsuite/vagrant/tange/centos3/ 2>/dev/null

View file

@ -147,7 +147,7 @@ EOF
par_resume_k() {
echo '### --resume -k'
tmp=$(tempfile)
tmp=$(mktemp)
parallel -k --resume --joblog $tmp echo job{}id\;exit {} ::: 0 1 2 3 0 5
echo try 2 = nothing
parallel -k --resume --joblog $tmp echo job{}id\;exit {} ::: 0 1 2 3 0 5
@ -688,8 +688,8 @@ par_link_files_as_only_arg() {
}
par_basic_halt() {
cpuburn=$(tempfile)
cpuburn2=$(tempfile)
cpuburn=$(mktemp)
cpuburn2=$(mktemp)
(echo '#!/usr/bin/perl'
echo "eval{setpriority(0,0,9)}; while(1){}") > $cpuburn
chmod 700 $cpuburn
@ -745,8 +745,8 @@ par_X_eta_div_zero() {
par_parcat_args_stdin() {
echo 'bug #51690: parcat: read args from stdin'
tmp1=$(tempfile)
tmp2=$(tempfile)
tmp1=$(mktemp)
tmp2=$(mktemp)
echo OK1 > $tmp1
echo OK2 > $tmp2
(echo $tmp1
@ -756,7 +756,7 @@ par_parcat_args_stdin() {
par_parcat_rm() {
echo 'bug #51691: parcat --rm remove fifo when opened'
tmp1=$(tempfile)
tmp1=$(mktemp)
echo OK1 > $tmp1
parcat --rm $tmp1
rm $tmp1 2>/dev/null || echo OK file removed
@ -792,7 +792,7 @@ par_blocking_redir() {
par_pipepart_recend_recstart() {
echo 'bug #52343: --recend/--recstart does wrong thing with --pipepart'
tmp1=$(tempfile)
tmp1=$(mktemp)
seq 10 > $tmp1
parallel -k --pipepart -a $tmp1 --recend '\n' --recstart '6' --block 1 'echo a; cat'
parallel -k --pipe < $tmp1 --recend '\n' --recstart '6' --block 1 'echo a; cat'

View file

@ -454,8 +454,8 @@ par_semaphore() {
par_line_buffer() {
echo "### --line-buffer"
tmp1=$(tempfile)
tmp2=$(tempfile)
tmp1=$(mktemp)
tmp2=$(mktemp)
seq 10 | parallel -j20 --line-buffer 'seq {} 10 | pv -qL 10' > $tmp1
seq 10 | parallel -j20 'seq {} 10 | pv -qL 10' > $tmp2
@ -467,8 +467,8 @@ par_line_buffer() {
par_pipe_line_buffer() {
echo "### --pipe --line-buffer"
tmp1=$(tempfile)
tmp2=$(tempfile)
tmp1=$(mktemp)
tmp2=$(mktemp)
nowarn() {
# Ignore certain warnings

View file

@ -289,7 +289,7 @@ par_groupby_pipepart() {
generator="$1"
colsep="$2"
groupby="$3"
tmp=`tempfile`
tmp=`mktemp`
echo "### test $generator | --colsep $colsep --groupby $groupby"
$generator > $tmp

View file

@ -8,23 +8,6 @@
# Each should be taking 3-10s and be possible to run in parallel
# I.e.: No race conditions, no logins
par_llb_color() {
echo 'bug #62386: --color (--ctag but without --tag)'
echo 'bug #62438: See last line from multiple jobslots'
slow_seq() {
sleep 0.$1
seq $1 | pv -qL $1
}
export -f slow_seq
run() {
seq 4 | parallel --color $@ slow_seq
}
export -f run
parallel --delay 0.1 -vkj0 run \
::: --lb --llb '' ::: --color '' ::: '--tagstring {}{}' --tag '' ::: -k '' |
md5sum
}
par_process_slot_var() {
echo '### bug #62310: xargs compatibility: --process-slot-var=name'
seq 0.1 0.1 0.5 |
@ -144,7 +127,7 @@ EOF
true
}
run() {
tmp=`tempfile`
tmp=`mktemp`
"$@" > "$tmp"
chmod +x "$tmp"
"$tmp" A B C
@ -343,7 +326,7 @@ par_tee_with_premature_close() {
par_tee_too_many_args() {
echo '### Fail if there are more arguments than --jobs'
seq 11 | stdout parallel -k --tag --pipe -j4 --tee grep {} ::: {1..4}
tmp=`tempfile`
tmp=`mktemp`
seq 11 | parallel -k --tag --pipe -j0 --tee grep {} ::: {1..10000} 2> "$tmp"
cat "$tmp" | perl -pe 's/\d+/999/g'
rm "$tmp"

View file

@ -13,8 +13,8 @@ par_sem_dir() {
par_parcat_mixing() {
echo 'parcat output should mix: a b a b'
mktmpfifo() {
tmp=$(tempfile)
mktempfifo() {
tmp=$(mktemp)
rm $tmp
mkfifo $tmp
echo $tmp
@ -25,8 +25,8 @@ par_parcat_mixing() {
sleep 2
perl -e 'print "'$string'"x9000,"end\n"'
}
tmp1=$(mktmpfifo)
tmp2=$(mktmpfifo)
tmp1=$(mktempfifo)
tmp2=$(mktempfifo)
slow_output a > $tmp1 &
sleep 1
slow_output b > $tmp2 &
@ -106,7 +106,7 @@ par_bug56403() {
par_delay_Xauto() {
echo 'TODO: --retries for those that fail and --sshdelay'
echo '### bug #58911: --delay Xauto'
tmp=$(tempfile)
tmp=$(mktemp)
doit() {
perl -e '$a=shift;
$m = -M $a < 0.0000001;

View file

@ -6,6 +6,41 @@
# These fail regularly
par_ll_lb_color() {
echo 'bug #62386: --color (--ctag but without --tag)'
echo 'bug #62438: See last line from multiple jobslots'
# This is really a race condition - might have to be moved
# # delay modulo 4 seconds
# perl -MTime::HiRes -E 'Time::HiRes::usleep(1000000*(((time|3)+1)-Time::HiRes::time()));'
# # delay modulo 2 seconds
# perl -E 'use Time::HiRes qw(usleep time); usleep(1000000*(1-time+(time|1)));say time;'
# # delay modulo 1 second
# perl -E 'use Time::HiRes qw(usleep time); usleep(1000000*(1-time+(time|0)));say time;'
# perl -E 'use Time::HiRes qw(usleep time); usleep(1000000*(1-time+(time*4|0)/4));say time;'
# # delay modulo 1/4 second
# perl -E 'use Time::HiRes qw(usleep time); usleep(1000000*(-time+(1+time*3|0)/3));say time;';
# # delay modulo 1/4 second + 100 ms
# perl -E 'use Time::HiRes qw(usleep time); usleep(1000000*(0.1-time+(1+time*3|0)/3));say time;';
# # delay modulo 1 second + 200 ms
# perl -E 'use Time::HiRes qw(usleep time); usleep(1000000*(0.2-time+(1+time*1|0)/1));say time;';
# # delay modulo 1 second + delta ms
# perl -E 'use Time::HiRes qw(usleep time); $d=shift; for(1..shift){
# usleep(1000000*($d-time+(1+time*1|0)/1));say;}' 0.2 6;
offset_seq() {
perl -E 'use Time::HiRes qw(usleep time); $|=1;$d=shift; for(1..shift){
usleep(1000000*($d-time+(1+time*1|0)/1));say;}' $@;
}
export -f offset_seq
run() {
seq 4 -1 1 | parallel -j0 $@ offset_seq 0.{#} {}
}
export -f run
parallel --delay 0.17 -vkj0 run \
::: --lb --ll '' ::: --color '' ::: '--tagstring {}{}' --tag '' ::: -k '' |
md5sum
}
ctrlz_should_suspend_children() {
echo 'bug #46120: Suspend should suspend (at least local) children'
echo 'it should burn 1.9 CPU seconds, but no more than that'
@ -154,7 +189,7 @@ par_kill_hup() {
par_resume_failed_k() {
echo '### bug #38299: --resume-failed -k'
tmp=$(tempfile)
tmp=$(mktemp)
parallel -k --resume-failed --joblog $tmp echo job{#} val {}\;exit {} ::: 0 1 2 3 0 1
echo try 2. Gives failing - not 0
parallel -k --resume-failed --joblog $tmp echo job{#} val {}\;exit {} ::: 0 1 2 3 0 1

View file

@ -22,8 +22,8 @@ p_wrapper() {
SERVERURL=$(eval echo $2)
TABLE=TBL$RANDOM
DBURL=$SERVERURL/$TABLE
T1=$(tempfile)
T2=$(tempfile)
T1=$(mktemp)
T2=$(mktemp)
eval "$INNER"
echo Exit=$?
wait
@ -114,7 +114,7 @@ par_sql_joblog() {
parallel -k --joblog - --sqlmaster $DBURL --wait sleep .3\;echo ::: {1..5} ::: {a..e} |
perl -pe 's/\d+\.\d+/999.999/g' | sort -n &
sleep 0.5
T=$(tempfile)
T=$(mktemp)
parallel -k --joblog - --sqlworker $DBURL > $T
wait
# Needed because of race condition

View file

@ -29,8 +29,8 @@ p_wrapper() {
# Use a random table for each test
TABLE=TBL$RANDOM
DBURL=$SERVERURL/$TABLE
T1=$(tempfile)
T2=$(tempfile)
T1=$(mktemp)
T2=$(mktemp)
# Run $INNER (all the par_* functions)
eval "$INNER"
echo Exit=$?

View file

@ -3321,7 +3321,7 @@ compgen -A function | grep par_ | LC_ALL=C sort -r |
# parallel --joblog /tmp/jl-`basename $0` --delay $D -j$P --tag -k '{} 2>&1'
# 2019-07-14 200% too high for 16 GB/4 thread
parallel --joblog /tmp/jl-`basename $0` -j75% --retries 2 --tag -k '{} 2>&1' |
perl -pe 's/line \d?\d\d:/line XXX:/g;
perl -pe 's/line \d\d+/line XXX/g;
s/\d+ >= \d+/XXX >= XXX/;
s/sh:? \d?\d\d:/sh: XXX:/;
s/:\d?\d\d:/:XXX:/;

View file

@ -174,7 +174,7 @@ par_no_route_to_host() {
# Random hosts
findhosts() {
ip='$(($RANDOM%256)).$(($RANDOM%256)).$(($RANDOM%256)).$(($RANDOM%256))'
seq 10000 | parallel -N0 echo $ip
seq 10000 | parallel -N0 echo $ip | grep -v ^127
}
# See if the hosts fail fast

View file

@ -4,16 +4,28 @@
#
# SPDX-License-Identifier: GPL-3.0-or-later
stdout ping -w 1 -c 1 centos3 >/dev/null || (
start_centos3() {
stdout ping -w 1 -c 1 centos3 >/dev/null || (
# Vagrant does not set the IP addr
cd testsuite/vagrant/tange/centos3/ 2>/dev/null
cd vagrant/tange/centos3/ 2>/dev/null
cd ../vagrant/tange/centos3/ 2>/dev/null
stdout vagrant up >/dev/null
vagrant ssh -c 'sudo ifconfig eth1 172.27.27.3' |
vagrantssh() {
port=$(perl -ne '/#/ and next; /config.vm.network.*host:\s*(\d+)/ and print $1' Vagrantfile)
w4it-for-port-open localhost $port
ssh -oKexAlgorithms=+diffie-hellman-group1-sha1 \
-oHostKeyAlgorithms=+ssh-rsa,ssh-dss \
-oPubkeyAcceptedAlgorithms=+ssh-dss -p$port vagrant@localhost "$@" |
# Ignore empty ^M line
grep ..
)
}
(
stdout vagrant up >/dev/null
vagrantssh 'sudo /sbin/ifconfig eth1 172.27.27.3'
) &
)
}
start_centos3
stdout parallel --tag -k 'ping -w 1 -c 1 {} || (cd vagrant/*/{} && vagrant up)' ::: rhel8 centos3 |
grep -v 'default' | grep -v '==>' | grep -E '^$' &

View file

@ -8,7 +8,7 @@ par_whitespace_delimiter() {
echo 'bug #59779: parsort does not work with white characters as delimiters'
doit() {
del="$1"
tmp=$(tempfile)
tmp=$(mktemp)
(
printf "a%s8%se\n" "$del" "$del"
printf "b%s7%sf\n" "$del" "$del"

View file

@ -0,0 +1,77 @@
# -*- mode: ruby -*-
# vi: set ft=ruby :
# All Vagrant configuration is done below. The "2" in Vagrant.configure
# configures the configuration version (we support older styles for
# backwards compatibility). Please don't change it unless you know what
# you're doing.
Vagrant.configure("2") do |config|
# The most common configuration options are documented and commented below.
# For a complete reference, please see the online documentation at
# https://docs.vagrantup.com.
# Every Vagrant development environment requires a box. You can search for
# boxes at https://vagrantcloud.com/search.
config.vm.box = "tange/centos3"
# Disable automatic box update checking. If you disable this, then
# boxes will only be checked for updates when the user runs
# `vagrant box outdated`. This is not recommended.
# config.vm.box_check_update = false
# Create a forwarded port mapping which allows access to a specific port
# within the machine from a port on the host machine. In the example below,
# accessing "localhost:8080" will access port 80 on the guest machine.
# NOTE: This will enable public access to the opened port
config.vm.network :forwarded_port, guest: 22, host: 50036, id: 'ssh'
config.vm.boot_timeout = 600
# Create a forwarded port mapping which allows access to a specific port
# within the machine from a port on the host machine and only allow access
# via 127.0.0.1 to disable public access
# config.vm.network "forwarded_port", guest: 80, host: 8080, host_ip: "127.0.0.1"
# Create a private network, which allows host-only access to the machine
# using a specific IP.
config.vm.network "private_network", ip: "172.27.27.3"
# Create a public network, which generally matched to bridged network.
# Bridged networks make the machine appear as another physical device on
# your network.
# config.vm.network "public_network"
# Share an additional folder to the guest VM. The first argument is
# the path on the host to the actual folder. The second argument is
# the path on the guest to mount the folder. And the optional third
# argument is a set of non-required options.
# config.vm.synced_folder "../data", "/vagrant_data"
# Provider-specific configuration so you can fine-tune various
# backing providers for Vagrant. These expose provider-specific options.
# Example for VirtualBox:
#
config.vm.provider "virtualbox" do |vb|
# # Display the VirtualBox GUI when booting the machine
# vb.gui = true
#
# # Customize the amount of memory on the VM:
vb.memory = "256"
end
#
# View the documentation for the provider you are using for more
# information on available options.
# Enable provisioning with a shell script. Additional provisioners such as
# Puppet, Chef, Ansible, Salt, and Docker are also available. Please see the
# documentation for more information about their specific syntax and use.
config.vm.provision "shell" do |s|
ssh_pub_key = File.readlines("../../authorized_keys").first.strip
s.inline = <<-SHELL
mkdir /root/.ssh
echo #{ssh_pub_key} >> /home/vagrant/.ssh/authorized_keys
echo #{ssh_pub_key} >> /root/.ssh/authorized_keys
sudo apt install rsync || sudo yum install -y rsync || sudo pkg install -y rsync
SHELL
end
end

View file

@ -530,7 +530,7 @@ par_nice_locally PAR=a bash -c "echo \$PAR b"
par_nice_locally a b
par_no_command_given ### Test bugfix if no command given
par_no_command_given 1 2
par_no_command_given /bin/bash: 3: command not found
par_no_command_given /bin/bash: line 1: 3: command not found
par_no_command_given parallel: Error: Command line too long (1000002 >= 10) at input 0: zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz...
par_no_joblog_with_dryrun bug #46016: --joblog should not log when --dryrun
par_no_joblog_with_dryrun echo Only_this
@ -953,10 +953,10 @@ par_sem_quote ### sem --quote should not add empty argument
par_sem_quote echo
par_sem_quote
par_shellcompletion ### --shellcompletion
par_shellcompletion a040c070a388e8799d899dce6e4d478b -
par_shellcompletion a040c070a388e8799d899dce6e4d478b -
par_shellcompletion 7bd30aa4542083e298ef0d1a60dc1322 -
par_shellcompletion 7bd30aa4542083e298ef0d1a60dc1322 -
par_shellcompletion 329fc284cae55cbfed49ed5546eb2b29 -
par_shellcompletion 329fc284cae55cbfed49ed5546eb2b29 -
par_shellcompletion 4869360b2bf2f084c17bdc60413faace -
par_shellcompletion 4869360b2bf2f084c17bdc60413faace -
par_slow_pipe_regexp ### bug #53718: --pipe --regexp -N blocks
par_slow_pipe_regexp This should take a few ms, but took more than 2 hours
par_slow_pipe_regexp 0 1 1

View file

@ -934,8 +934,7 @@ par_shellquote fish '
par_shellquote fish par_shellquote fish  !"#$%&'"'"'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€亗儎厗噲墛媽崕彁憭摂晼棙櫄洔潪煚、¥ウЖ┆<D096><E29486><EFBFBD>辈炒刀犯购患骄坷谅媚牌侨墒颂臀闲岩釉罩棕仝圮蒉哙徕沅彐玷殛腱眍镳耱篝貊鼬<E8B28A><E9BCAC><EFBFBD><EFBFBD>'
par_shellquote fizsh '
par_shellquote fizsh par_shellquote fizsh  !"#$%&'"'"'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€亗儎厗噲墛媽崕彁憭摂晼棙櫄洔潪煚、¥ウЖ┆<D096><E29486><EFBFBD>辈炒刀犯购患骄坷谅媚牌侨墒颂臀闲岩釉罩棕仝圮蒉哙徕沅彐玷殛腱眍镳耱篝貊鼬<E8B28A><E9BCAC><EFBFBD><EFBFBD>'
par_shellquote ksh2020 '
par_shellquote ksh2020 par_shellquote ksh2020  !"#$%&'"'"'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€亗儎厗噲墛媽崕彁憭摂晼棙櫄洔潪煚、¥ウЖ┆<D096><E29486><EFBFBD>辈炒刀犯购患骄坷谅媚牌侨墒颂臀闲岩釉罩棕仝圮蒉哙徕沅彐玷殛腱眍镳耱篝貊鼬<E8B28A><E9BCAC><EFBFBD><EFBFBD>'
par_shellquote ksh2020 environment: line 1: ksh2020: command not found
par_shellquote ksh93 '
par_shellquote ksh93 par_shellquote ksh93  !"#$%&'"'"'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€亗儎厗噲墛媽崕彁憭摂晼棙櫄洔潪煚、¥ウЖ┆<D096><E29486><EFBFBD>辈炒刀犯购患骄坷谅媚牌侨墒颂臀闲岩釉罩棕仝圮蒉哙徕沅彐玷殛腱眍镳耱篝貊鼬<E8B28A><E9BCAC><EFBFBD><EFBFBD>'
par_shellquote lksh '

View file

@ -18,7 +18,7 @@ par_halt_on_error -2 false true parallel: This job succeeded:
par_halt_on_error -2 false true sleep 2;true
par_halt_on_error -2 false false 3
par_halt_on_error -2 false false 4
par_halt_on_error -2 false false /bin/bash: non_exist: command not found
par_halt_on_error -2 false false /bin/bash: line 1: non_exist: command not found
par_halt_on_error -1 true true 0
par_halt_on_error -1 true true 0
par_halt_on_error -1 true true parallel: This job succeeded:
@ -38,7 +38,7 @@ par_halt_on_error -1 true true parallel: Starting no more jobs. Waiting for 2 jo
par_halt_on_error -1 true true parallel: This job succeeded:
par_halt_on_error -1 true true sleep 3;true
par_halt_on_error -1 true true parallel: Starting no more jobs. Waiting for 1 jobs to finish.
par_halt_on_error -1 true true /bin/bash: non_exist: command not found
par_halt_on_error -1 true true /bin/bash: line 1: non_exist: command not found
par_halt_on_error -1 true false 0
par_halt_on_error -1 true false 0
par_halt_on_error -1 true false parallel: This job succeeded:
@ -52,7 +52,7 @@ par_halt_on_error -1 true false parallel: Starting no more jobs. Waiting for 3 j
par_halt_on_error -1 true false parallel: This job succeeded:
par_halt_on_error -1 true false sleep 3;true
par_halt_on_error -1 true false parallel: Starting no more jobs. Waiting for 1 jobs to finish.
par_halt_on_error -1 true false /bin/bash: non_exist: command not found
par_halt_on_error -1 true false /bin/bash: line 1: non_exist: command not found
par_halt_on_error -1 false true 0
par_halt_on_error -1 false true 0
par_halt_on_error -1 false true parallel: This job succeeded:
@ -61,25 +61,25 @@ par_halt_on_error -1 false true parallel: Starting no more jobs. Waiting for 1 j
par_halt_on_error -1 false true parallel: This job succeeded:
par_halt_on_error -1 false true sleep 2;true
par_halt_on_error -1 false true parallel: Starting no more jobs. Waiting for 2 jobs to finish.
par_halt_on_error -1 false true /bin/bash: non_exist: command not found
par_halt_on_error -1 false true /bin/bash: line 1: non_exist: command not found
par_halt_on_error -1 false false 3
par_halt_on_error -1 false false 4
par_halt_on_error -1 false false /bin/bash: non_exist: command not found
par_halt_on_error -1 false false /bin/bash: line 1: non_exist: command not found
par_halt_on_error 0 true true 0
par_halt_on_error 0 true true 1
par_halt_on_error 0 true true /bin/bash: non_exist: command not found
par_halt_on_error 0 true true /bin/bash: line 1: non_exist: command not found
par_halt_on_error 0 true false 1
par_halt_on_error 0 true false 2
par_halt_on_error 0 true false /bin/bash: non_exist: command not found
par_halt_on_error 0 true false /bin/bash: line 1: non_exist: command not found
par_halt_on_error 0 false true 2
par_halt_on_error 0 false true 3
par_halt_on_error 0 false true /bin/bash: non_exist: command not found
par_halt_on_error 0 false true /bin/bash: line 1: non_exist: command not found
par_halt_on_error 0 false false 3
par_halt_on_error 0 false false 4
par_halt_on_error 0 false false /bin/bash: non_exist: command not found
par_halt_on_error 0 false false /bin/bash: line 1: non_exist: command not found
par_halt_on_error 1 true true 0
par_halt_on_error 1 true true 127
par_halt_on_error 1 true true /bin/bash: non_exist: command not found
par_halt_on_error 1 true true /bin/bash: line 1: non_exist: command not found
par_halt_on_error 1 true true parallel: This job failed:
par_halt_on_error 1 true true sleep 4;non_exist
par_halt_on_error 1 true false 1
@ -90,7 +90,7 @@ par_halt_on_error 1 true false parallel: Starting no more jobs. Waiting for 1 jo
par_halt_on_error 1 true false parallel: This job failed:
par_halt_on_error 1 true false sleep 2;false
par_halt_on_error 1 true false parallel: Starting no more jobs. Waiting for 2 jobs to finish.
par_halt_on_error 1 true false /bin/bash: non_exist: command not found
par_halt_on_error 1 true false /bin/bash: line 1: non_exist: command not found
par_halt_on_error 1 true false parallel: This job failed:
par_halt_on_error 1 true false sleep 4;non_exist
par_halt_on_error 1 false true 1
@ -106,7 +106,7 @@ par_halt_on_error 1 false true parallel: Starting no more jobs. Waiting for 3 jo
par_halt_on_error 1 false true parallel: This job failed:
par_halt_on_error 1 false true sleep 3;false
par_halt_on_error 1 false true parallel: Starting no more jobs. Waiting for 1 jobs to finish.
par_halt_on_error 1 false true /bin/bash: non_exist: command not found
par_halt_on_error 1 false true /bin/bash: line 1: non_exist: command not found
par_halt_on_error 1 false true parallel: This job failed:
par_halt_on_error 1 false true sleep 4;non_exist
par_halt_on_error 1 false false 1
@ -128,12 +128,12 @@ par_halt_on_error 1 false false parallel: Starting no more jobs. Waiting for 2 j
par_halt_on_error 1 false false parallel: This job failed:
par_halt_on_error 1 false false sleep 3;false
par_halt_on_error 1 false false parallel: Starting no more jobs. Waiting for 1 jobs to finish.
par_halt_on_error 1 false false /bin/bash: non_exist: command not found
par_halt_on_error 1 false false /bin/bash: line 1: non_exist: command not found
par_halt_on_error 1 false false parallel: This job failed:
par_halt_on_error 1 false false sleep 4;non_exist
par_halt_on_error 2 true true 0
par_halt_on_error 2 true true 127
par_halt_on_error 2 true true /bin/bash: non_exist: command not found
par_halt_on_error 2 true true /bin/bash: line 1: non_exist: command not found
par_halt_on_error 2 true true parallel: This job failed:
par_halt_on_error 2 true true sleep 4;non_exist
par_halt_on_error 2 true false 1
@ -259,221 +259,221 @@ par_test_build_and_install pod2man --release='00000000' --center='parallel' \
par_test_build_and_install --section=1 "."/parallel.pod > "."/parallel.1n \
par_test_build_and_install && mv "."/parallel.1n "."/parallel.1 \
par_test_build_and_install || echo "Warning: pod2man not found. Using old parallel.1"
par_test_build_and_install /bin/bash: pod2man: command not found
par_test_build_and_install /bin/bash: line 1: pod2man: command not found
par_test_build_and_install Warning: pod2man not found. Using old parallel.1
par_test_build_and_install pod2man --release='00000000' --center='parallel' \
par_test_build_and_install --section=1 "."/env_parallel.pod > "."/env_parallel.1n \
par_test_build_and_install && mv "."/env_parallel.1n "."/env_parallel.1 \
par_test_build_and_install || echo "Warning: pod2man not found. Using old env_parallel.1"
par_test_build_and_install /bin/bash: pod2man: command not found
par_test_build_and_install /bin/bash: line 1: pod2man: command not found
par_test_build_and_install Warning: pod2man not found. Using old env_parallel.1
par_test_build_and_install pod2man --release='00000000' --center='parallel' \
par_test_build_and_install --section=1 "."/sem.pod > "."/sem.1n \
par_test_build_and_install && mv "."/sem.1n "."/sem.1 \
par_test_build_and_install || echo "Warning: pod2man not found. Using old sem.1"
par_test_build_and_install /bin/bash: pod2man: command not found
par_test_build_and_install /bin/bash: line 1: pod2man: command not found
par_test_build_and_install Warning: pod2man not found. Using old sem.1
par_test_build_and_install pod2man --release='00000000' --center='parallel' \
par_test_build_and_install --section=1 "."/sql > "."/sql.1n \
par_test_build_and_install && mv "."/sql.1n "."/sql.1 \
par_test_build_and_install || echo "Warning: pod2man not found. Using old sql.1"
par_test_build_and_install /bin/bash: pod2man: command not found
par_test_build_and_install /bin/bash: line 1: pod2man: command not found
par_test_build_and_install Warning: pod2man not found. Using old sql.1
par_test_build_and_install pod2man --release='00000000' --center='parallel' \
par_test_build_and_install --section=1 "."/niceload.pod > "."/niceload.1n \
par_test_build_and_install && mv "."/niceload.1n "."/niceload.1 \
par_test_build_and_install || echo "Warning: pod2man not found. Using old niceload.1"
par_test_build_and_install /bin/bash: pod2man: command not found
par_test_build_and_install /bin/bash: line 1: pod2man: command not found
par_test_build_and_install Warning: pod2man not found. Using old niceload.1
par_test_build_and_install pod2man --release='00000000' --center='parallel' \
par_test_build_and_install --section=7 "."/parallel_tutorial.pod > "."/parallel_tutorial.7n \
par_test_build_and_install && mv "."/parallel_tutorial.7n "."/parallel_tutorial.7 \
par_test_build_and_install || echo "Warning: pod2man not found. Using old parallel_tutorial.7"
par_test_build_and_install /bin/bash: pod2man: command not found
par_test_build_and_install /bin/bash: line 1: pod2man: command not found
par_test_build_and_install Warning: pod2man not found. Using old parallel_tutorial.7
par_test_build_and_install pod2man --release='00000000' --center='parallel' \
par_test_build_and_install --section=7 "."/parallel_book.pod > "."/parallel_book.7n \
par_test_build_and_install && mv "."/parallel_book.7n "."/parallel_book.7 \
par_test_build_and_install || echo "Warning: pod2man not found. Using old parallel_book.7"
par_test_build_and_install /bin/bash: pod2man: command not found
par_test_build_and_install /bin/bash: line 1: pod2man: command not found
par_test_build_and_install Warning: pod2man not found. Using old parallel_book.7
par_test_build_and_install pod2man --release='00000000' --center='parallel' \
par_test_build_and_install --section=7 "."/parallel_design.pod > "."/parallel_design.7n \
par_test_build_and_install && mv "."/parallel_design.7n "."/parallel_design.7 \
par_test_build_and_install || echo "Warning: pod2man not found. Using old parallel_design.7"
par_test_build_and_install /bin/bash: pod2man: command not found
par_test_build_and_install /bin/bash: line 1: pod2man: command not found
par_test_build_and_install Warning: pod2man not found. Using old parallel_design.7
par_test_build_and_install pod2man --release='00000000' --center='parallel' \
par_test_build_and_install --section=7 "."/parallel_alternatives.pod > "."/parallel_alternatives.7n \
par_test_build_and_install && mv "."/parallel_alternatives.7n "."/parallel_alternatives.7 \
par_test_build_and_install || echo "Warning: pod2man not found. Using old parallel_alternatives.7"
par_test_build_and_install /bin/bash: pod2man: command not found
par_test_build_and_install /bin/bash: line 1: pod2man: command not found
par_test_build_and_install Warning: pod2man not found. Using old parallel_alternatives.7
par_test_build_and_install pod2man --release='00000000' --center='parallel' \
par_test_build_and_install --section=1 "."/parcat.pod > "."/parcat.1n \
par_test_build_and_install && mv "."/parcat.1n "."/parcat.1 \
par_test_build_and_install || echo "Warning: pod2man not found. Using old parcat.1"
par_test_build_and_install /bin/bash: pod2man: command not found
par_test_build_and_install /bin/bash: line 1: pod2man: command not found
par_test_build_and_install Warning: pod2man not found. Using old parcat.1
par_test_build_and_install pod2man --release='00000000' --center='parallel' \
par_test_build_and_install --section=1 "."/parset.pod > "."/parset.1n \
par_test_build_and_install && mv "."/parset.1n "."/parset.1 \
par_test_build_and_install || echo "Warning: pod2man not found. Using old parset.1"
par_test_build_and_install /bin/bash: pod2man: command not found
par_test_build_and_install /bin/bash: line 1: pod2man: command not found
par_test_build_and_install Warning: pod2man not found. Using old parset.1
par_test_build_and_install pod2html --title "GNU Parallel" "."/parallel.pod > "."/parallel.htmln \
par_test_build_and_install && mv "."/parallel.htmln "."/parallel.html \
par_test_build_and_install || echo "Warning: pod2html not found. Using old parallel.html"
par_test_build_and_install /bin/bash: pod2html: command not found
par_test_build_and_install /bin/bash: line 1: pod2html: command not found
par_test_build_and_install Warning: pod2html not found. Using old parallel.html
par_test_build_and_install rm -f "."/pod2htm*
par_test_build_and_install pod2html --title "GNU Parallel with environment" "."/env_parallel.pod > "."/env_parallel.htmln \
par_test_build_and_install && mv "."/env_parallel.htmln "."/env_parallel.html \
par_test_build_and_install || echo "Warning: pod2html not found. Using old env_parallel.html"
par_test_build_and_install /bin/bash: pod2html: command not found
par_test_build_and_install /bin/bash: line 1: pod2html: command not found
par_test_build_and_install Warning: pod2html not found. Using old env_parallel.html
par_test_build_and_install rm -f "."/pod2htm*
par_test_build_and_install pod2html --title "GNU Parallel tutorial" "."/parallel_tutorial.pod > "."/parallel_tutorial.htmln \
par_test_build_and_install && mv "."/parallel_tutorial.htmln "."/parallel_tutorial.html \
par_test_build_and_install || echo "Warning: pod2html not found. Using old parallel_tutorial.html"
par_test_build_and_install /bin/bash: pod2html: command not found
par_test_build_and_install /bin/bash: line 1: pod2html: command not found
par_test_build_and_install Warning: pod2html not found. Using old parallel_tutorial.html
par_test_build_and_install rm -f "."/pod2htm*
par_test_build_and_install pod2html --title "GNU Parallel book" "."/parallel_book.pod > "."/parallel_book.htmln \
par_test_build_and_install && mv "."/parallel_book.htmln "."/parallel_book.html \
par_test_build_and_install || echo "Warning: pod2html not found. Using old parallel_book.html"
par_test_build_and_install /bin/bash: pod2html: command not found
par_test_build_and_install /bin/bash: line 1: pod2html: command not found
par_test_build_and_install Warning: pod2html not found. Using old parallel_book.html
par_test_build_and_install rm -f "."/pod2htm*
par_test_build_and_install pod2html --title "GNU Parallel design" "."/parallel_design.pod > "."/parallel_design.htmln \
par_test_build_and_install && mv "."/parallel_design.htmln "."/parallel_design.html \
par_test_build_and_install || echo "Warning: pod2html not found. Using old parallel_design.html"
par_test_build_and_install /bin/bash: pod2html: command not found
par_test_build_and_install /bin/bash: line 1: pod2html: command not found
par_test_build_and_install Warning: pod2html not found. Using old parallel_design.html
par_test_build_and_install rm -f "."/pod2htm*
par_test_build_and_install pod2html --title "GNU Parallel alternatives" "."/parallel_alternatives.pod > "."/parallel_alternatives.htmln \
par_test_build_and_install && mv "."/parallel_alternatives.htmln "."/parallel_alternatives.html \
par_test_build_and_install || echo "Warning: pod2html not found. Using old parallel_alternatives.html"
par_test_build_and_install /bin/bash: pod2html: command not found
par_test_build_and_install /bin/bash: line 1: pod2html: command not found
par_test_build_and_install Warning: pod2html not found. Using old parallel_alternatives.html
par_test_build_and_install rm -f "."/pod2htm*
par_test_build_and_install pod2html --title "sem (GNU Parallel)" "."/sem.pod > "."/sem.htmln \
par_test_build_and_install && mv "."/sem.htmln "."/sem.html \
par_test_build_and_install || echo "Warning: pod2html not found. Using old sem.html"
par_test_build_and_install /bin/bash: pod2html: command not found
par_test_build_and_install /bin/bash: line 1: pod2html: command not found
par_test_build_and_install Warning: pod2html not found. Using old sem.html
par_test_build_and_install rm -f "."/pod2htm*
par_test_build_and_install pod2html --title "GNU SQL" "."/sql > "."/sql.htmln \
par_test_build_and_install && mv "."/sql.htmln "."/sql.html \
par_test_build_and_install || echo "Warning: pod2html not found. Using old sql.html"
par_test_build_and_install /bin/bash: pod2html: command not found
par_test_build_and_install /bin/bash: line 1: pod2html: command not found
par_test_build_and_install Warning: pod2html not found. Using old sql.html
par_test_build_and_install rm -f "."/pod2htm*
par_test_build_and_install pod2html --title "GNU niceload" "."/niceload.pod > "."/niceload.htmln \
par_test_build_and_install && mv "."/niceload.htmln "."/niceload.html \
par_test_build_and_install || echo "Warning: pod2html not found. Using old niceload.html"
par_test_build_and_install /bin/bash: pod2html: command not found
par_test_build_and_install /bin/bash: line 1: pod2html: command not found
par_test_build_and_install Warning: pod2html not found. Using old niceload.html
par_test_build_and_install rm -f "."/pod2htm*
par_test_build_and_install pod2html --title "GNU parcat" "."/parcat.pod > "."/parcat.htmln \
par_test_build_and_install && mv "."/parcat.htmln "."/parcat.html \
par_test_build_and_install || echo "Warning: pod2html not found. Using old parcat.html"
par_test_build_and_install /bin/bash: pod2html: command not found
par_test_build_and_install /bin/bash: line 1: pod2html: command not found
par_test_build_and_install Warning: pod2html not found. Using old parcat.html
par_test_build_and_install rm -f "."/pod2htm*
par_test_build_and_install pod2html --title "GNU parset" "."/parset.pod > "."/parset.htmln \
par_test_build_and_install && mv "."/parset.htmln "."/parset.html \
par_test_build_and_install || echo "Warning: pod2html not found. Using old parset.html"
par_test_build_and_install /bin/bash: pod2html: command not found
par_test_build_and_install /bin/bash: line 1: pod2html: command not found
par_test_build_and_install Warning: pod2html not found. Using old parset.html
par_test_build_and_install rm -f "."/pod2htm*
par_test_build_and_install pod2texi --output="."/parallel.texi "."/parallel.pod \
par_test_build_and_install || echo "Warning: pod2texi not found. Using old parallel.texi"
par_test_build_and_install /bin/bash: pod2texi: command not found
par_test_build_and_install /bin/bash: line 1: pod2texi: command not found
par_test_build_and_install Warning: pod2texi not found. Using old parallel.texi
par_test_build_and_install pod2texi --output="."/env_parallel.texi "."/env_parallel.pod \
par_test_build_and_install || echo "Warning: pod2texi not found. Using old env_parallel.texi"
par_test_build_and_install /bin/bash: pod2texi: command not found
par_test_build_and_install /bin/bash: line 1: pod2texi: command not found
par_test_build_and_install Warning: pod2texi not found. Using old env_parallel.texi
par_test_build_and_install pod2texi --output="."/sem.texi "."/sem.pod \
par_test_build_and_install || echo "Warning: pod2texi not found. Using old sem.texi"
par_test_build_and_install /bin/bash: pod2texi: command not found
par_test_build_and_install /bin/bash: line 1: pod2texi: command not found
par_test_build_and_install Warning: pod2texi not found. Using old sem.texi
par_test_build_and_install pod2texi --output="."/sql.texi "."/sql \
par_test_build_and_install || echo "Warning: pod2texi not found. Using old sql.texi"
par_test_build_and_install /bin/bash: pod2texi: command not found
par_test_build_and_install /bin/bash: line 1: pod2texi: command not found
par_test_build_and_install Warning: pod2texi not found. Using old sql.texi
par_test_build_and_install pod2texi --output="."/niceload.texi "."/niceload.pod \
par_test_build_and_install || echo "Warning: pod2texi not found. Using old niceload.texi"
par_test_build_and_install /bin/bash: pod2texi: command not found
par_test_build_and_install /bin/bash: line 1: pod2texi: command not found
par_test_build_and_install Warning: pod2texi not found. Using old niceload.texi
par_test_build_and_install pod2texi --output="."/parallel_tutorial.texi "."/parallel_tutorial.pod \
par_test_build_and_install || echo "Warning: pod2texi not found. Using old parallel_tutorial.texi"
par_test_build_and_install /bin/bash: pod2texi: command not found
par_test_build_and_install /bin/bash: line 1: pod2texi: command not found
par_test_build_and_install Warning: pod2texi not found. Using old parallel_tutorial.texi
par_test_build_and_install pod2texi --output="."/parallel_book.texi "."/parallel_book.pod \
par_test_build_and_install || echo "Warning: pod2texi not found. Using old parallel_book.texi"
par_test_build_and_install /bin/bash: pod2texi: command not found
par_test_build_and_install /bin/bash: line 1: pod2texi: command not found
par_test_build_and_install Warning: pod2texi not found. Using old parallel_book.texi
par_test_build_and_install pod2texi --output="."/parallel_design.texi "."/parallel_design.pod \
par_test_build_and_install || echo "Warning: pod2texi not found. Using old parallel_design.texi"
par_test_build_and_install /bin/bash: pod2texi: command not found
par_test_build_and_install /bin/bash: line 1: pod2texi: command not found
par_test_build_and_install Warning: pod2texi not found. Using old parallel_design.texi
par_test_build_and_install pod2texi --output="."/parallel_alternatives.texi "."/parallel_alternatives.pod \
par_test_build_and_install || echo "Warning: pod2texi not found. Using old parallel_alternatives.texi"
par_test_build_and_install /bin/bash: pod2texi: command not found
par_test_build_and_install /bin/bash: line 1: pod2texi: command not found
par_test_build_and_install Warning: pod2texi not found. Using old parallel_alternatives.texi
par_test_build_and_install pod2texi --output="."/parcat.texi "."/parcat.pod \
par_test_build_and_install || echo "Warning: pod2texi not found. Using old parcat.texi"
par_test_build_and_install /bin/bash: pod2texi: command not found
par_test_build_and_install /bin/bash: line 1: pod2texi: command not found
par_test_build_and_install Warning: pod2texi not found. Using old parcat.texi
par_test_build_and_install pod2texi --output="."/parset.texi "."/parset.pod \
par_test_build_and_install || echo "Warning: pod2texi not found. Using old parset.texi"
par_test_build_and_install /bin/bash: pod2texi: command not found
par_test_build_and_install /bin/bash: line 1: pod2texi: command not found
par_test_build_and_install Warning: pod2texi not found. Using old parset.texi
par_test_build_and_install pod2pdf --output-file "."/parallel.pdf "."/parallel.pod --title "GNU Parallel" \
par_test_build_and_install || echo "Warning: pod2pdf not found. Using old parallel.pdf"
par_test_build_and_install /bin/bash: pod2pdf: command not found
par_test_build_and_install /bin/bash: line 1: pod2pdf: command not found
par_test_build_and_install Warning: pod2pdf not found. Using old parallel.pdf
par_test_build_and_install pod2pdf --output-file "."/env_parallel.pdf "."/env_parallel.pod --title "GNU Parallel with environment" \
par_test_build_and_install || echo "Warning: pod2pdf not found. Using old env_parallel.pdf"
par_test_build_and_install /bin/bash: pod2pdf: command not found
par_test_build_and_install /bin/bash: line 1: pod2pdf: command not found
par_test_build_and_install Warning: pod2pdf not found. Using old env_parallel.pdf
par_test_build_and_install pod2pdf --output-file "."/sem.pdf "."/sem.pod --title "GNU sem" \
par_test_build_and_install || echo "Warning: pod2pdf not found. Using old sem.pdf"
par_test_build_and_install /bin/bash: pod2pdf: command not found
par_test_build_and_install /bin/bash: line 1: pod2pdf: command not found
par_test_build_and_install Warning: pod2pdf not found. Using old sem.pdf
par_test_build_and_install pod2pdf --output-file "."/sql.pdf "."/sql --title "GNU SQL" \
par_test_build_and_install || echo "Warning: pod2pdf not found. Using old sql.pdf"
par_test_build_and_install /bin/bash: pod2pdf: command not found
par_test_build_and_install /bin/bash: line 1: pod2pdf: command not found
par_test_build_and_install Warning: pod2pdf not found. Using old sql.pdf
par_test_build_and_install pod2pdf --output-file "."/niceload.pdf "."/niceload.pod --title "GNU niceload" \
par_test_build_and_install || echo "Warning: pod2pdf not found. Using old niceload.pdf"
par_test_build_and_install /bin/bash: pod2pdf: command not found
par_test_build_and_install /bin/bash: line 1: pod2pdf: command not found
par_test_build_and_install Warning: pod2pdf not found. Using old niceload.pdf
par_test_build_and_install pod2pdf --output-file "."/parallel_tutorial.pdf "."/parallel_tutorial.pod --title "GNU Parallel Tutorial" \
par_test_build_and_install || echo "Warning: pod2pdf not found. Using old parallel_tutorial.pdf"
par_test_build_and_install /bin/bash: pod2pdf: command not found
par_test_build_and_install /bin/bash: line 1: pod2pdf: command not found
par_test_build_and_install Warning: pod2pdf not found. Using old parallel_tutorial.pdf
par_test_build_and_install pod2pdf --output-file "."/parallel_book.pdf "."/parallel_book.pod --title "GNU Parallel Book" \
par_test_build_and_install || echo "Warning: pod2pdf not found. Using old parallel_book.pdf"
par_test_build_and_install /bin/bash: pod2pdf: command not found
par_test_build_and_install /bin/bash: line 1: pod2pdf: command not found
par_test_build_and_install Warning: pod2pdf not found. Using old parallel_book.pdf
par_test_build_and_install pod2pdf --output-file "."/parallel_design.pdf "."/parallel_design.pod --title "GNU Parallel Design" \
par_test_build_and_install || echo "Warning: pod2pdf not found. Using old parallel_design.pdf"
par_test_build_and_install /bin/bash: pod2pdf: command not found
par_test_build_and_install /bin/bash: line 1: pod2pdf: command not found
par_test_build_and_install Warning: pod2pdf not found. Using old parallel_design.pdf
par_test_build_and_install pod2pdf --output-file "."/parallel_alternatives.pdf "."/parallel_alternatives.pod --title "GNU Parallel alternatives" \
par_test_build_and_install || echo "Warning: pod2pdf not found. Using old parallel_alternatives.pdf"
par_test_build_and_install /bin/bash: pod2pdf: command not found
par_test_build_and_install /bin/bash: line 1: pod2pdf: command not found
par_test_build_and_install Warning: pod2pdf not found. Using old parallel_alternatives.pdf
par_test_build_and_install pod2pdf --output-file "."/parcat.pdf "."/parcat.pod --title "GNU parcat" \
par_test_build_and_install || echo "Warning: pod2pdf not found. Using old parcat.pdf"
par_test_build_and_install /bin/bash: pod2pdf: command not found
par_test_build_and_install /bin/bash: line 1: pod2pdf: command not found
par_test_build_and_install Warning: pod2pdf not found. Using old parcat.pdf
par_test_build_and_install pod2pdf --output-file "."/parset.pdf "."/parset.pod --title "GNU parset" \
par_test_build_and_install || echo "Warning: pod2pdf not found. Using old parset.pdf"
par_test_build_and_install /bin/bash: pod2pdf: command not found
par_test_build_and_install /bin/bash: line 1: pod2pdf: command not found
par_test_build_and_install Warning: pod2pdf not found. Using old parset.pdf
par_test_build_and_install make[0]: Entering directory '/tmp/parallel-00000000/src'
par_test_build_and_install /bin/mkdir -p '/tmp/parallel-install/bin'
@ -486,156 +486,156 @@ par_test_build_and_install make[0]: Leaving directory '/tmp/parallel-00000000/sr
par_test_build_and_install pod2html --title "GNU Parallel" "."/parallel.pod > "."/parallel.htmln \
par_test_build_and_install && mv "."/parallel.htmln "."/parallel.html \
par_test_build_and_install || echo "Warning: pod2html not found. Using old parallel.html"
par_test_build_and_install /bin/bash: pod2html: command not found
par_test_build_and_install /bin/bash: line 1: pod2html: command not found
par_test_build_and_install Warning: pod2html not found. Using old parallel.html
par_test_build_and_install rm -f "."/pod2htm*
par_test_build_and_install pod2html --title "GNU Parallel with environment" "."/env_parallel.pod > "."/env_parallel.htmln \
par_test_build_and_install && mv "."/env_parallel.htmln "."/env_parallel.html \
par_test_build_and_install || echo "Warning: pod2html not found. Using old env_parallel.html"
par_test_build_and_install /bin/bash: pod2html: command not found
par_test_build_and_install /bin/bash: line 1: pod2html: command not found
par_test_build_and_install Warning: pod2html not found. Using old env_parallel.html
par_test_build_and_install rm -f "."/pod2htm*
par_test_build_and_install pod2html --title "GNU Parallel tutorial" "."/parallel_tutorial.pod > "."/parallel_tutorial.htmln \
par_test_build_and_install && mv "."/parallel_tutorial.htmln "."/parallel_tutorial.html \
par_test_build_and_install || echo "Warning: pod2html not found. Using old parallel_tutorial.html"
par_test_build_and_install /bin/bash: pod2html: command not found
par_test_build_and_install /bin/bash: line 1: pod2html: command not found
par_test_build_and_install Warning: pod2html not found. Using old parallel_tutorial.html
par_test_build_and_install rm -f "."/pod2htm*
par_test_build_and_install pod2html --title "GNU Parallel book" "."/parallel_book.pod > "."/parallel_book.htmln \
par_test_build_and_install && mv "."/parallel_book.htmln "."/parallel_book.html \
par_test_build_and_install || echo "Warning: pod2html not found. Using old parallel_book.html"
par_test_build_and_install /bin/bash: pod2html: command not found
par_test_build_and_install /bin/bash: line 1: pod2html: command not found
par_test_build_and_install Warning: pod2html not found. Using old parallel_book.html
par_test_build_and_install rm -f "."/pod2htm*
par_test_build_and_install pod2html --title "GNU Parallel design" "."/parallel_design.pod > "."/parallel_design.htmln \
par_test_build_and_install && mv "."/parallel_design.htmln "."/parallel_design.html \
par_test_build_and_install || echo "Warning: pod2html not found. Using old parallel_design.html"
par_test_build_and_install /bin/bash: pod2html: command not found
par_test_build_and_install /bin/bash: line 1: pod2html: command not found
par_test_build_and_install Warning: pod2html not found. Using old parallel_design.html
par_test_build_and_install rm -f "."/pod2htm*
par_test_build_and_install pod2html --title "GNU Parallel alternatives" "."/parallel_alternatives.pod > "."/parallel_alternatives.htmln \
par_test_build_and_install && mv "."/parallel_alternatives.htmln "."/parallel_alternatives.html \
par_test_build_and_install || echo "Warning: pod2html not found. Using old parallel_alternatives.html"
par_test_build_and_install /bin/bash: pod2html: command not found
par_test_build_and_install /bin/bash: line 1: pod2html: command not found
par_test_build_and_install Warning: pod2html not found. Using old parallel_alternatives.html
par_test_build_and_install rm -f "."/pod2htm*
par_test_build_and_install pod2html --title "sem (GNU Parallel)" "."/sem.pod > "."/sem.htmln \
par_test_build_and_install && mv "."/sem.htmln "."/sem.html \
par_test_build_and_install || echo "Warning: pod2html not found. Using old sem.html"
par_test_build_and_install /bin/bash: pod2html: command not found
par_test_build_and_install /bin/bash: line 1: pod2html: command not found
par_test_build_and_install Warning: pod2html not found. Using old sem.html
par_test_build_and_install rm -f "."/pod2htm*
par_test_build_and_install pod2html --title "GNU SQL" "."/sql > "."/sql.htmln \
par_test_build_and_install && mv "."/sql.htmln "."/sql.html \
par_test_build_and_install || echo "Warning: pod2html not found. Using old sql.html"
par_test_build_and_install /bin/bash: pod2html: command not found
par_test_build_and_install /bin/bash: line 1: pod2html: command not found
par_test_build_and_install Warning: pod2html not found. Using old sql.html
par_test_build_and_install rm -f "."/pod2htm*
par_test_build_and_install pod2html --title "GNU niceload" "."/niceload.pod > "."/niceload.htmln \
par_test_build_and_install && mv "."/niceload.htmln "."/niceload.html \
par_test_build_and_install || echo "Warning: pod2html not found. Using old niceload.html"
par_test_build_and_install /bin/bash: pod2html: command not found
par_test_build_and_install /bin/bash: line 1: pod2html: command not found
par_test_build_and_install Warning: pod2html not found. Using old niceload.html
par_test_build_and_install rm -f "."/pod2htm*
par_test_build_and_install pod2html --title "GNU parcat" "."/parcat.pod > "."/parcat.htmln \
par_test_build_and_install && mv "."/parcat.htmln "."/parcat.html \
par_test_build_and_install || echo "Warning: pod2html not found. Using old parcat.html"
par_test_build_and_install /bin/bash: pod2html: command not found
par_test_build_and_install /bin/bash: line 1: pod2html: command not found
par_test_build_and_install Warning: pod2html not found. Using old parcat.html
par_test_build_and_install rm -f "."/pod2htm*
par_test_build_and_install pod2html --title "GNU parset" "."/parset.pod > "."/parset.htmln \
par_test_build_and_install && mv "."/parset.htmln "."/parset.html \
par_test_build_and_install || echo "Warning: pod2html not found. Using old parset.html"
par_test_build_and_install /bin/bash: pod2html: command not found
par_test_build_and_install /bin/bash: line 1: pod2html: command not found
par_test_build_and_install Warning: pod2html not found. Using old parset.html
par_test_build_and_install rm -f "."/pod2htm*
par_test_build_and_install pod2texi --output="."/parallel.texi "."/parallel.pod \
par_test_build_and_install || echo "Warning: pod2texi not found. Using old parallel.texi"
par_test_build_and_install /bin/bash: pod2texi: command not found
par_test_build_and_install /bin/bash: line 1: pod2texi: command not found
par_test_build_and_install Warning: pod2texi not found. Using old parallel.texi
par_test_build_and_install pod2texi --output="."/env_parallel.texi "."/env_parallel.pod \
par_test_build_and_install || echo "Warning: pod2texi not found. Using old env_parallel.texi"
par_test_build_and_install /bin/bash: pod2texi: command not found
par_test_build_and_install /bin/bash: line 1: pod2texi: command not found
par_test_build_and_install Warning: pod2texi not found. Using old env_parallel.texi
par_test_build_and_install pod2texi --output="."/sem.texi "."/sem.pod \
par_test_build_and_install || echo "Warning: pod2texi not found. Using old sem.texi"
par_test_build_and_install /bin/bash: pod2texi: command not found
par_test_build_and_install /bin/bash: line 1: pod2texi: command not found
par_test_build_and_install Warning: pod2texi not found. Using old sem.texi
par_test_build_and_install pod2texi --output="."/sql.texi "."/sql \
par_test_build_and_install || echo "Warning: pod2texi not found. Using old sql.texi"
par_test_build_and_install /bin/bash: pod2texi: command not found
par_test_build_and_install /bin/bash: line 1: pod2texi: command not found
par_test_build_and_install Warning: pod2texi not found. Using old sql.texi
par_test_build_and_install pod2texi --output="."/niceload.texi "."/niceload.pod \
par_test_build_and_install || echo "Warning: pod2texi not found. Using old niceload.texi"
par_test_build_and_install /bin/bash: pod2texi: command not found
par_test_build_and_install /bin/bash: line 1: pod2texi: command not found
par_test_build_and_install Warning: pod2texi not found. Using old niceload.texi
par_test_build_and_install pod2texi --output="."/parallel_tutorial.texi "."/parallel_tutorial.pod \
par_test_build_and_install || echo "Warning: pod2texi not found. Using old parallel_tutorial.texi"
par_test_build_and_install /bin/bash: pod2texi: command not found
par_test_build_and_install /bin/bash: line 1: pod2texi: command not found
par_test_build_and_install Warning: pod2texi not found. Using old parallel_tutorial.texi
par_test_build_and_install pod2texi --output="."/parallel_book.texi "."/parallel_book.pod \
par_test_build_and_install || echo "Warning: pod2texi not found. Using old parallel_book.texi"
par_test_build_and_install /bin/bash: pod2texi: command not found
par_test_build_and_install /bin/bash: line 1: pod2texi: command not found
par_test_build_and_install Warning: pod2texi not found. Using old parallel_book.texi
par_test_build_and_install pod2texi --output="."/parallel_design.texi "."/parallel_design.pod \
par_test_build_and_install || echo "Warning: pod2texi not found. Using old parallel_design.texi"
par_test_build_and_install /bin/bash: pod2texi: command not found
par_test_build_and_install /bin/bash: line 1: pod2texi: command not found
par_test_build_and_install Warning: pod2texi not found. Using old parallel_design.texi
par_test_build_and_install pod2texi --output="."/parallel_alternatives.texi "."/parallel_alternatives.pod \
par_test_build_and_install || echo "Warning: pod2texi not found. Using old parallel_alternatives.texi"
par_test_build_and_install /bin/bash: pod2texi: command not found
par_test_build_and_install /bin/bash: line 1: pod2texi: command not found
par_test_build_and_install Warning: pod2texi not found. Using old parallel_alternatives.texi
par_test_build_and_install pod2texi --output="."/parcat.texi "."/parcat.pod \
par_test_build_and_install || echo "Warning: pod2texi not found. Using old parcat.texi"
par_test_build_and_install /bin/bash: pod2texi: command not found
par_test_build_and_install /bin/bash: line 1: pod2texi: command not found
par_test_build_and_install Warning: pod2texi not found. Using old parcat.texi
par_test_build_and_install pod2texi --output="."/parset.texi "."/parset.pod \
par_test_build_and_install || echo "Warning: pod2texi not found. Using old parset.texi"
par_test_build_and_install /bin/bash: pod2texi: command not found
par_test_build_and_install /bin/bash: line 1: pod2texi: command not found
par_test_build_and_install Warning: pod2texi not found. Using old parset.texi
par_test_build_and_install pod2pdf --output-file "."/parallel.pdf "."/parallel.pod --title "GNU Parallel" \
par_test_build_and_install || echo "Warning: pod2pdf not found. Using old parallel.pdf"
par_test_build_and_install /bin/bash: pod2pdf: command not found
par_test_build_and_install /bin/bash: line 1: pod2pdf: command not found
par_test_build_and_install Warning: pod2pdf not found. Using old parallel.pdf
par_test_build_and_install pod2pdf --output-file "."/env_parallel.pdf "."/env_parallel.pod --title "GNU Parallel with environment" \
par_test_build_and_install || echo "Warning: pod2pdf not found. Using old env_parallel.pdf"
par_test_build_and_install /bin/bash: pod2pdf: command not found
par_test_build_and_install /bin/bash: line 1: pod2pdf: command not found
par_test_build_and_install Warning: pod2pdf not found. Using old env_parallel.pdf
par_test_build_and_install pod2pdf --output-file "."/sem.pdf "."/sem.pod --title "GNU sem" \
par_test_build_and_install || echo "Warning: pod2pdf not found. Using old sem.pdf"
par_test_build_and_install /bin/bash: pod2pdf: command not found
par_test_build_and_install /bin/bash: line 1: pod2pdf: command not found
par_test_build_and_install Warning: pod2pdf not found. Using old sem.pdf
par_test_build_and_install pod2pdf --output-file "."/sql.pdf "."/sql --title "GNU SQL" \
par_test_build_and_install || echo "Warning: pod2pdf not found. Using old sql.pdf"
par_test_build_and_install /bin/bash: pod2pdf: command not found
par_test_build_and_install /bin/bash: line 1: pod2pdf: command not found
par_test_build_and_install Warning: pod2pdf not found. Using old sql.pdf
par_test_build_and_install pod2pdf --output-file "."/niceload.pdf "."/niceload.pod --title "GNU niceload" \
par_test_build_and_install || echo "Warning: pod2pdf not found. Using old niceload.pdf"
par_test_build_and_install /bin/bash: pod2pdf: command not found
par_test_build_and_install /bin/bash: line 1: pod2pdf: command not found
par_test_build_and_install Warning: pod2pdf not found. Using old niceload.pdf
par_test_build_and_install pod2pdf --output-file "."/parallel_tutorial.pdf "."/parallel_tutorial.pod --title "GNU Parallel Tutorial" \
par_test_build_and_install || echo "Warning: pod2pdf not found. Using old parallel_tutorial.pdf"
par_test_build_and_install /bin/bash: pod2pdf: command not found
par_test_build_and_install /bin/bash: line 1: pod2pdf: command not found
par_test_build_and_install Warning: pod2pdf not found. Using old parallel_tutorial.pdf
par_test_build_and_install pod2pdf --output-file "."/parallel_book.pdf "."/parallel_book.pod --title "GNU Parallel Book" \
par_test_build_and_install || echo "Warning: pod2pdf not found. Using old parallel_book.pdf"
par_test_build_and_install /bin/bash: pod2pdf: command not found
par_test_build_and_install /bin/bash: line 1: pod2pdf: command not found
par_test_build_and_install Warning: pod2pdf not found. Using old parallel_book.pdf
par_test_build_and_install pod2pdf --output-file "."/parallel_design.pdf "."/parallel_design.pod --title "GNU Parallel Design" \
par_test_build_and_install || echo "Warning: pod2pdf not found. Using old parallel_design.pdf"
par_test_build_and_install /bin/bash: pod2pdf: command not found
par_test_build_and_install /bin/bash: line 1: pod2pdf: command not found
par_test_build_and_install Warning: pod2pdf not found. Using old parallel_design.pdf
par_test_build_and_install pod2pdf --output-file "."/parallel_alternatives.pdf "."/parallel_alternatives.pod --title "GNU Parallel alternatives" \
par_test_build_and_install || echo "Warning: pod2pdf not found. Using old parallel_alternatives.pdf"
par_test_build_and_install /bin/bash: pod2pdf: command not found
par_test_build_and_install /bin/bash: line 1: pod2pdf: command not found
par_test_build_and_install Warning: pod2pdf not found. Using old parallel_alternatives.pdf
par_test_build_and_install pod2pdf --output-file "."/parcat.pdf "."/parcat.pod --title "GNU parcat" \
par_test_build_and_install || echo "Warning: pod2pdf not found. Using old parcat.pdf"
par_test_build_and_install /bin/bash: pod2pdf: command not found
par_test_build_and_install /bin/bash: line 1: pod2pdf: command not found
par_test_build_and_install Warning: pod2pdf not found. Using old parcat.pdf
par_test_build_and_install pod2pdf --output-file "."/parset.pdf "."/parset.pod --title "GNU parset" \
par_test_build_and_install || echo "Warning: pod2pdf not found. Using old parset.pdf"
par_test_build_and_install /bin/bash: pod2pdf: command not found
par_test_build_and_install /bin/bash: line 1: pod2pdf: command not found
par_test_build_and_install Warning: pod2pdf not found. Using old parset.pdf
par_test_build_and_install /bin/mkdir -p '/tmp/parallel-install/share/doc/parallel'
par_test_build_and_install /bin/install -c -m 644 parallel.html env_parallel.html sem.html sql.html niceload.html parallel_tutorial.html parallel_book.html parallel_design.html parallel_alternatives.html parcat.html parset.html parsort.html parallel.texi env_parallel.texi sem.texi sql.texi niceload.texi parallel_tutorial.texi parallel_book.texi parallel_design.texi parallel_alternatives.texi parcat.texi parset.texi parsort.texi parallel.rst env_parallel.rst sem.rst sql.rst niceload.rst parallel_tutorial.rst parallel_book.rst parallel_design.rst parallel_alternatives.rst parcat.rst parset.rst parsort.rst parallel.pdf env_parallel.pdf sem.pdf sql.pdf '/tmp/parallel-install/share/doc/parallel'
@ -644,67 +644,67 @@ par_test_build_and_install pod2man --release='00000000' --center='parallel' \
par_test_build_and_install --section=1 "."/parallel.pod > "."/parallel.1n \
par_test_build_and_install && mv "."/parallel.1n "."/parallel.1 \
par_test_build_and_install || echo "Warning: pod2man not found. Using old parallel.1"
par_test_build_and_install /bin/bash: pod2man: command not found
par_test_build_and_install /bin/bash: line 1: pod2man: command not found
par_test_build_and_install Warning: pod2man not found. Using old parallel.1
par_test_build_and_install pod2man --release='00000000' --center='parallel' \
par_test_build_and_install --section=1 "."/env_parallel.pod > "."/env_parallel.1n \
par_test_build_and_install && mv "."/env_parallel.1n "."/env_parallel.1 \
par_test_build_and_install || echo "Warning: pod2man not found. Using old env_parallel.1"
par_test_build_and_install /bin/bash: pod2man: command not found
par_test_build_and_install /bin/bash: line 1: pod2man: command not found
par_test_build_and_install Warning: pod2man not found. Using old env_parallel.1
par_test_build_and_install pod2man --release='00000000' --center='parallel' \
par_test_build_and_install --section=1 "."/sem.pod > "."/sem.1n \
par_test_build_and_install && mv "."/sem.1n "."/sem.1 \
par_test_build_and_install || echo "Warning: pod2man not found. Using old sem.1"
par_test_build_and_install /bin/bash: pod2man: command not found
par_test_build_and_install /bin/bash: line 1: pod2man: command not found
par_test_build_and_install Warning: pod2man not found. Using old sem.1
par_test_build_and_install pod2man --release='00000000' --center='parallel' \
par_test_build_and_install --section=1 "."/sql > "."/sql.1n \
par_test_build_and_install && mv "."/sql.1n "."/sql.1 \
par_test_build_and_install || echo "Warning: pod2man not found. Using old sql.1"
par_test_build_and_install /bin/bash: pod2man: command not found
par_test_build_and_install /bin/bash: line 1: pod2man: command not found
par_test_build_and_install Warning: pod2man not found. Using old sql.1
par_test_build_and_install pod2man --release='00000000' --center='parallel' \
par_test_build_and_install --section=1 "."/niceload.pod > "."/niceload.1n \
par_test_build_and_install && mv "."/niceload.1n "."/niceload.1 \
par_test_build_and_install || echo "Warning: pod2man not found. Using old niceload.1"
par_test_build_and_install /bin/bash: pod2man: command not found
par_test_build_and_install /bin/bash: line 1: pod2man: command not found
par_test_build_and_install Warning: pod2man not found. Using old niceload.1
par_test_build_and_install pod2man --release='00000000' --center='parallel' \
par_test_build_and_install --section=7 "."/parallel_tutorial.pod > "."/parallel_tutorial.7n \
par_test_build_and_install && mv "."/parallel_tutorial.7n "."/parallel_tutorial.7 \
par_test_build_and_install || echo "Warning: pod2man not found. Using old parallel_tutorial.7"
par_test_build_and_install /bin/bash: pod2man: command not found
par_test_build_and_install /bin/bash: line 1: pod2man: command not found
par_test_build_and_install Warning: pod2man not found. Using old parallel_tutorial.7
par_test_build_and_install pod2man --release='00000000' --center='parallel' \
par_test_build_and_install --section=7 "."/parallel_book.pod > "."/parallel_book.7n \
par_test_build_and_install && mv "."/parallel_book.7n "."/parallel_book.7 \
par_test_build_and_install || echo "Warning: pod2man not found. Using old parallel_book.7"
par_test_build_and_install /bin/bash: pod2man: command not found
par_test_build_and_install /bin/bash: line 1: pod2man: command not found
par_test_build_and_install Warning: pod2man not found. Using old parallel_book.7
par_test_build_and_install pod2man --release='00000000' --center='parallel' \
par_test_build_and_install --section=7 "."/parallel_design.pod > "."/parallel_design.7n \
par_test_build_and_install && mv "."/parallel_design.7n "."/parallel_design.7 \
par_test_build_and_install || echo "Warning: pod2man not found. Using old parallel_design.7"
par_test_build_and_install /bin/bash: pod2man: command not found
par_test_build_and_install /bin/bash: line 1: pod2man: command not found
par_test_build_and_install Warning: pod2man not found. Using old parallel_design.7
par_test_build_and_install pod2man --release='00000000' --center='parallel' \
par_test_build_and_install --section=7 "."/parallel_alternatives.pod > "."/parallel_alternatives.7n \
par_test_build_and_install && mv "."/parallel_alternatives.7n "."/parallel_alternatives.7 \
par_test_build_and_install || echo "Warning: pod2man not found. Using old parallel_alternatives.7"
par_test_build_and_install /bin/bash: pod2man: command not found
par_test_build_and_install /bin/bash: line 1: pod2man: command not found
par_test_build_and_install Warning: pod2man not found. Using old parallel_alternatives.7
par_test_build_and_install pod2man --release='00000000' --center='parallel' \
par_test_build_and_install --section=1 "."/parcat.pod > "."/parcat.1n \
par_test_build_and_install && mv "."/parcat.1n "."/parcat.1 \
par_test_build_and_install || echo "Warning: pod2man not found. Using old parcat.1"
par_test_build_and_install /bin/bash: pod2man: command not found
par_test_build_and_install /bin/bash: line 1: pod2man: command not found
par_test_build_and_install Warning: pod2man not found. Using old parcat.1
par_test_build_and_install pod2man --release='00000000' --center='parallel' \
par_test_build_and_install --section=1 "."/parset.pod > "."/parset.1n \
par_test_build_and_install && mv "."/parset.1n "."/parset.1 \
par_test_build_and_install || echo "Warning: pod2man not found. Using old parset.1"
par_test_build_and_install /bin/bash: pod2man: command not found
par_test_build_and_install /bin/bash: line 1: pod2man: command not found
par_test_build_and_install Warning: pod2man not found. Using old parset.1
par_test_build_and_install /bin/mkdir -p '/tmp/parallel-install/share/man/man1'
par_test_build_and_install /bin/install -c -m 644 parallel.1 env_parallel.1 sem.1 sql.1 niceload.1 parcat.1 parset.1 parsort.1 '/tmp/parallel-install/share/man/man1'

View file

@ -88,16 +88,16 @@ par_exit_code fizsh parallel --halt-on-error now,fail=1 'true;/tmp/mysleep' :::
par_exit_code fizsh parallel --halt-on-error now,done=1 'true;/tmp/mysleep' ::: 100 137
par_exit_code fizsh parallel --halt-on-error now,done=1 'true;/bin/true' ::: 100 0
par_exit_code fizsh parallel --halt-on-error now,done=1 'true;exit' ::: 100 100
par_exit_code ksh2020 /tmp/mysleep 100 137
par_exit_code ksh2020 parallel --halt-on-error now,fail=1 /tmp/mysleep ::: 100 137
par_exit_code ksh2020 parallel --halt-on-error now,done=1 /tmp/mysleep ::: 100 137
par_exit_code ksh2020 parallel --halt-on-error now,done=1 /bin/true ::: 100 0
par_exit_code ksh2020 parallel --halt-on-error now,done=1 exit ::: 100 100
par_exit_code ksh2020 true;/tmp/mysleep 100 137
par_exit_code ksh2020 parallel --halt-on-error now,fail=1 'true;/tmp/mysleep' ::: 100 137
par_exit_code ksh2020 parallel --halt-on-error now,done=1 'true;/tmp/mysleep' ::: 100 137
par_exit_code ksh2020 parallel --halt-on-error now,done=1 'true;/bin/true' ::: 100 0
par_exit_code ksh2020 parallel --halt-on-error now,done=1 'true;exit' ::: 100 100
par_exit_code ksh2020 /tmp/mysleep 100 open3: exec of ksh2020 -c /tmp/mysleep 100 failed: No such file or directory at -e line 1.
par_exit_code ksh2020 parallel --halt-on-error now,fail=1 /tmp/mysleep ::: 100 open3: exec of ksh2020 -c parallel --halt-on-error now,fail=1 /tmp/mysleep ::: 100 failed: No such file or directory at -e line 1.
par_exit_code ksh2020 parallel --halt-on-error now,done=1 /tmp/mysleep ::: 100 open3: exec of ksh2020 -c parallel --halt-on-error now,done=1 /tmp/mysleep ::: 100 failed: No such file or directory at -e line 1.
par_exit_code ksh2020 parallel --halt-on-error now,done=1 /bin/true ::: 100 open3: exec of ksh2020 -c parallel --halt-on-error now,done=1 /bin/true ::: 100 failed: No such file or directory at -e line 1.
par_exit_code ksh2020 parallel --halt-on-error now,done=1 exit ::: 100 open3: exec of ksh2020 -c parallel --halt-on-error now,done=1 exit ::: 100 failed: No such file or directory at -e line 1.
par_exit_code ksh2020 true;/tmp/mysleep 100 open3: exec of ksh2020 -c true;/tmp/mysleep 100 failed: No such file or directory at -e line 1.
par_exit_code ksh2020 parallel --halt-on-error now,fail=1 'true;/tmp/mysleep' ::: 100 open3: exec of ksh2020 -c parallel --halt-on-error now,fail=1 'true;/tmp/mysleep' ::: 100 failed: No such file or directory at -e line 1.
par_exit_code ksh2020 parallel --halt-on-error now,done=1 'true;/tmp/mysleep' ::: 100 open3: exec of ksh2020 -c parallel --halt-on-error now,done=1 'true;/tmp/mysleep' ::: 100 failed: No such file or directory at -e line 1.
par_exit_code ksh2020 parallel --halt-on-error now,done=1 'true;/bin/true' ::: 100 open3: exec of ksh2020 -c parallel --halt-on-error now,done=1 'true;/bin/true' ::: 100 failed: No such file or directory at -e line 1.
par_exit_code ksh2020 parallel --halt-on-error now,done=1 'true;exit' ::: 100 open3: exec of ksh2020 -c parallel --halt-on-error now,done=1 'true;exit' ::: 100 failed: No such file or directory at -e line 1.
par_exit_code posh /tmp/mysleep 100 137
par_exit_code posh parallel --halt-on-error now,fail=1 /tmp/mysleep ::: 100 137
par_exit_code posh parallel --halt-on-error now,done=1 /tmp/mysleep ::: 100 137
@ -153,7 +153,7 @@ par_exit_code bash parallel --halt-on-error now,fail=1 /tmp/mysleep ::: 100 137
par_exit_code bash parallel --halt-on-error now,done=1 /tmp/mysleep ::: 100 137
par_exit_code bash parallel --halt-on-error now,done=1 /bin/true ::: 100 0
par_exit_code bash parallel --halt-on-error now,done=1 exit ::: 100 100
par_exit_code bash true;/tmp/mysleep 100 137
par_exit_code bash true;/tmp/mysleep 100 0
par_exit_code bash parallel --halt-on-error now,fail=1 'true;/tmp/mysleep' ::: 100 137
par_exit_code bash parallel --halt-on-error now,done=1 'true;/tmp/mysleep' ::: 100 137
par_exit_code bash parallel --halt-on-error now,done=1 'true;/bin/true' ::: 100 0
@ -1481,13 +1481,13 @@ par_macron
par_macron ¯ -q "¯" ¯
par_macron ¯ -q ¯¯
par_macron ¯ -q "¯"¯
par_macron ¯ -q /usr/bin/bash: $'echo \257': command not found
par_macron ¯ -q /usr/bin/bash: line 1: $'echo \257': command not found
par_macron ¯ -Xq ¯
par_macron ¯ -Xq ¯ ¯
par_macron ¯ -Xq "¯" ¯
par_macron ¯ -Xq ¯¯
par_macron ¯ -Xq "¯"¯
par_macron ¯ -Xq /usr/bin/bash: $'echo \257': command not found
par_macron ¯ -Xq /usr/bin/bash: line 1: $'echo \257': command not found
par_macron ¯ -k ¯
par_macron ¯ -k ¯
par_macron ¯ -k ¯ ¯
@ -1505,13 +1505,13 @@ par_macron
par_macron ¯® -q "¯®" ¯®
par_macron ¯® -q ¯®¯®
par_macron ¯® -q "¯®"¯®
par_macron ¯® -q /usr/bin/bash: $'echo \257\256': command not found
par_macron ¯® -q /usr/bin/bash: line 1: $'echo \257\256': command not found
par_macron ¯® -Xq ¯®
par_macron ¯® -Xq ¯® ¯®
par_macron ¯® -Xq "¯®" ¯®
par_macron ¯® -Xq ¯®¯®
par_macron ¯® -Xq "¯®"¯®
par_macron ¯® -Xq /usr/bin/bash: $'echo \257\256': command not found
par_macron ¯® -Xq /usr/bin/bash: line 1: $'echo \257\256': command not found
par_macron ¯® -k ¯®
par_macron ¯® -k ¯®
par_macron ¯® -k ¯® ¯®
@ -1529,13 +1529,13 @@ par_macron
par_macron ¯¯® -q "¯¯®" ¯¯®
par_macron ¯¯® -q ¯¯®¯¯®
par_macron ¯¯® -q "¯¯®"¯¯®
par_macron ¯¯® -q /usr/bin/bash: $'echo \257\257\256': command not found
par_macron ¯¯® -q /usr/bin/bash: line 1: $'echo \257\257\256': command not found
par_macron ¯¯® -Xq ¯¯®
par_macron ¯¯® -Xq ¯¯® ¯¯®
par_macron ¯¯® -Xq "¯¯®" ¯¯®
par_macron ¯¯® -Xq ¯¯®¯¯®
par_macron ¯¯® -Xq "¯¯®"¯¯®
par_macron ¯¯® -Xq /usr/bin/bash: $'echo \257\257\256': command not found
par_macron ¯¯® -Xq /usr/bin/bash: line 1: $'echo \257\257\256': command not found
par_macron ¯¯® -k ¯¯®
par_macron ¯¯® -k ¯¯®
par_macron ¯¯® -k ¯¯® ¯¯®
@ -1545,29 +1545,29 @@ par_macron
par_macron ¯<¯<¯>¯> -X ¯<¯<¯>¯>
par_macron ¯<¯<¯>¯> -X ¯<¯<¯>¯> ¯<¯<¯>¯>
par_macron ¯<¯<¯>¯> -X ¯<¯<¯>¯>¯<¯<¯>¯>
par_macron ¯<¯<¯>¯> -X /usr/bin/bash: -c: line 0: syntax error near unexpected token `newline'
par_macron ¯<¯<¯>¯> -X /usr/bin/bash: -c: line 0: `echo ¯<¯<¯>¯>'
par_macron ¯<¯<¯>¯> -X /usr/bin/bash: ¯: No such file or directory
par_macron ¯<¯<¯>¯> -X /usr/bin/bash: ¯: No such file or directory
par_macron ¯<¯<¯>¯> -X /usr/bin/bash: -c: line 1: syntax error near unexpected token `newline'
par_macron ¯<¯<¯>¯> -X /usr/bin/bash: -c: line 1: `echo ¯<¯<¯>¯>'
par_macron ¯<¯<¯>¯> -X /usr/bin/bash: line 1: ¯: No such file or directory
par_macron ¯<¯<¯>¯> -X /usr/bin/bash: line 1: ¯: No such file or directory
par_macron ¯<¯<¯>¯> -q ¯<¯<¯>¯>
par_macron ¯<¯<¯>¯> -q ¯<¯<¯>¯> ¯<¯<¯>¯>
par_macron ¯<¯<¯>¯> -q "¯<¯<¯>¯>" ¯<¯<¯>¯>
par_macron ¯<¯<¯>¯> -q ¯<¯<¯>¯>¯<¯<¯>¯>
par_macron ¯<¯<¯>¯> -q "¯<¯<¯>¯>"¯<¯<¯>¯>
par_macron ¯<¯<¯>¯> -q /usr/bin/bash: $'echo \257<\257<\257>\257>': command not found
par_macron ¯<¯<¯>¯> -q /usr/bin/bash: line 1: $'echo \257<\257<\257>\257>': command not found
par_macron ¯<¯<¯>¯> -Xq ¯<¯<¯>¯>
par_macron ¯<¯<¯>¯> -Xq ¯<¯<¯>¯> ¯<¯<¯>¯>
par_macron ¯<¯<¯>¯> -Xq "¯<¯<¯>¯>" ¯<¯<¯>¯>
par_macron ¯<¯<¯>¯> -Xq ¯<¯<¯>¯>¯<¯<¯>¯>
par_macron ¯<¯<¯>¯> -Xq "¯<¯<¯>¯>"¯<¯<¯>¯>
par_macron ¯<¯<¯>¯> -Xq /usr/bin/bash: $'echo \257<\257<\257>\257>': command not found
par_macron ¯<¯<¯>¯> -Xq /usr/bin/bash: line 1: $'echo \257<\257<\257>\257>': command not found
par_macron ¯<¯<¯>¯> -k ¯<¯<¯>¯>
par_macron ¯<¯<¯>¯> -k ¯<¯<¯>¯> ¯<¯<¯>¯>
par_macron ¯<¯<¯>¯> -k ¯<¯<¯>¯>¯<¯<¯>¯>
par_macron ¯<¯<¯>¯> -k /usr/bin/bash: -c: line 0: syntax error near unexpected token `newline'
par_macron ¯<¯<¯>¯> -k /usr/bin/bash: -c: line 0: `echo ¯<¯<¯>¯>'
par_macron ¯<¯<¯>¯> -k /usr/bin/bash: ¯: No such file or directory
par_macron ¯<¯<¯>¯> -k /usr/bin/bash: ¯: No such file or directory
par_macron ¯<¯<¯>¯> -k /usr/bin/bash: -c: line 1: syntax error near unexpected token `newline'
par_macron ¯<¯<¯>¯> -k /usr/bin/bash: -c: line 1: `echo ¯<¯<¯>¯>'
par_macron ¯<¯<¯>¯> -k /usr/bin/bash: line 1: ¯: No such file or directory
par_macron ¯<¯<¯>¯> -k /usr/bin/bash: line 1: ¯: No such file or directory
par_max_length_len_128k ### BUG: The length for -X is not close to max (131072)
par_max_length_len_128k 64xxx
par_max_length_len_128k 64xxx

View file

@ -135,9 +135,6 @@ par_kill_term bash---pstree
par_lb_mem_usage 1
par_lb_mem_usage 1
par_lb_mem_usage 2
par_llb_color bug #62386: --color (--ctag but without --tag)
par_llb_color bug #62438: See last line from multiple jobslots
par_llb_color 74c668db859b3c8acbecbddf5880fd20 -
par_maxargs ### Test -n and --max-args: Max number of args per line (only with -X and -m)
par_maxargs line 1
par_maxargs line 2

View file

@ -118,6 +118,9 @@ par_kill_hup parallel: Waiting for these 2 jobs to finish. Send SIGTERM to stop
par_kill_hup parallel: bash -c 'sleep 3 & pid=$!; wait $pid'
par_kill_hup parallel: bash -c 'sleep 3 & pid=$!; wait $pid'
par_kill_hup bash---pstree
par_ll_lb_color bug #62386: --color (--ctag but without --tag)
par_ll_lb_color bug #62438: See last line from multiple jobslots
par_ll_lb_color 715a389ad9d92c8fab448a74494617d1 -
par_more_than_9_relative_sshlogin ### Check more than 9(relative) simultaneous sshlogins
par_more_than_9_relative_sshlogin 1
par_more_than_9_relative_sshlogin 2

View file

@ -285,7 +285,7 @@ par_empty $SQLITE p_wrapper par_empty '$SQLITE'
par_empty $SQLITE Do nothing: TBL99999 does not exist because it is not created
par_empty $SQLITE Exit=0
par_empty $SQLITE Exit=0
par_empty $SQLITE Error: near line 1: no such table: TBL99999
par_empty $SQLITE Error: near line 1: in prepare, no such table: TBL99999 (1)
par_empty $CSV p_wrapper par_empty '$CSV'
par_empty $CSV Do nothing: TBL99999 does not exist because it is not created
par_empty $CSV Exit=0

View file

@ -608,5 +608,5 @@ par_autossh AUTOSSH_DEBUG - turn logging to maximum verbosity and log
par_autossh stderr
par_autossh
par_autossh rsync: connection unexpectedly closed (0 bytes received so far) [Receiver]
par_autossh rsync error: error in rsync protocol data stream (code 12) at io.c(235) [Receiver=3.1.3]
par_autossh rsync error: error in rsync protocol data stream (code 12) at io.c(228) [Receiver=3.2.3]
par_autossh foo_autossh

View file

@ -718,8 +718,8 @@ par_mksh_underscore variables in aliases in and arrays in functions work
par_mksh_underscore variables in aliases in and arrays in functions work
par_mksh_underscore variables in aliases in and arrays in functions work
par_mksh_underscore variables in aliases in and arrays in functions work
par_mksh_underscore script[9]: not_copied_alias: inaccessible or not found
par_mksh_underscore script[9]: not_copied_func: inaccessible or not found
par_mksh_underscore W: script[9]: not_copied_alias: inaccessible or not found
par_mksh_underscore W: script[9]: not_copied_func: inaccessible or not found
par_mksh_underscore error=OK
par_mksh_underscore error=OK
par_mksh_underscore aliases in and arrays in functions work
@ -730,9 +730,9 @@ par_mksh_underscore aliases in functions work
par_mksh_underscore OK if no myecho ^^^^^^^^^^^^^^^^^
par_mksh_underscore aliases in functions work
par_mksh_underscore OK if no myecho ^^^^^^^^^^^^^^^^^
par_mksh_underscore /bin/mksh: myfunc: inaccessible or not found
par_mksh_underscore W: /bin/mksh: myfunc: inaccessible or not found
par_mksh_underscore OK if no myfunc ^^^^^^^^^^^^^^^^^
par_mksh_underscore script[9]: myfunc: inaccessible or not found
par_mksh_underscore W: script[9]: myfunc: inaccessible or not found
par_mksh_underscore OK if no myfunc ^^^^^^^^^^^^^^^^^
par_mksh_parset parset
par_mksh_parset ### parset into array
@ -880,12 +880,12 @@ par_mksh_env_parallel_session ### Test env_parallel --session
par_mksh_env_parallel_session ### level0 should be hidden, level1 should be transferred
par_mksh_env_parallel_session
par_mksh_env_parallel_session fail
par_mksh_env_parallel_session script[9]: level0func: inaccessible or not found
par_mksh_env_parallel_session script[9]: level0alias: inaccessible or not found
par_mksh_env_parallel_session W: script[9]: level0func: inaccessible or not found
par_mksh_env_parallel_session W: script[9]: level0alias: inaccessible or not found
par_mksh_env_parallel_session
par_mksh_env_parallel_session fail
par_mksh_env_parallel_session /bin/mksh: level0func: inaccessible or not found
par_mksh_env_parallel_session /bin/mksh: level0alias: inaccessible or not found
par_mksh_env_parallel_session W: /bin/mksh: level0func: inaccessible or not found
par_mksh_env_parallel_session W: /bin/mksh: level0alias: inaccessible or not found
par_mksh_env_parallel_session l1var
par_mksh_env_parallel_session l1func
par_mksh_env_parallel_session l1alias
@ -897,20 +897,20 @@ par_mksh_env_parallel_session level1 array OK
par_mksh_env_parallel_session ### level0+1 should be hidden, level2 should be transferred
par_mksh_env_parallel_session
par_mksh_env_parallel_session fail
par_mksh_env_parallel_session script[9]: level0func: inaccessible or not found
par_mksh_env_parallel_session script[9]: level0alias: inaccessible or not found
par_mksh_env_parallel_session W: script[9]: level0func: inaccessible or not found
par_mksh_env_parallel_session W: script[9]: level0alias: inaccessible or not found
par_mksh_env_parallel_session
par_mksh_env_parallel_session fail
par_mksh_env_parallel_session /bin/mksh: level0func: inaccessible or not found
par_mksh_env_parallel_session /bin/mksh: level0alias: inaccessible or not found
par_mksh_env_parallel_session W: /bin/mksh: level0func: inaccessible or not found
par_mksh_env_parallel_session W: /bin/mksh: level0alias: inaccessible or not found
par_mksh_env_parallel_session
par_mksh_env_parallel_session fail
par_mksh_env_parallel_session script[9]: level1func: inaccessible or not found
par_mksh_env_parallel_session script[9]: level1alias: inaccessible or not found
par_mksh_env_parallel_session W: script[9]: level1func: inaccessible or not found
par_mksh_env_parallel_session W: script[9]: level1alias: inaccessible or not found
par_mksh_env_parallel_session
par_mksh_env_parallel_session fail
par_mksh_env_parallel_session /bin/mksh: level1func: inaccessible or not found
par_mksh_env_parallel_session /bin/mksh: level1alias: inaccessible or not found
par_mksh_env_parallel_session W: /bin/mksh: level1func: inaccessible or not found
par_mksh_env_parallel_session W: /bin/mksh: level1alias: inaccessible or not found
par_mksh_env_parallel_session l2var
par_mksh_env_parallel_session l2func
par_mksh_env_parallel_session l2alias
@ -922,12 +922,12 @@ par_mksh_env_parallel_session level2 array OK
par_mksh_env_parallel_session ### level0 should be hidden, level1+2 should be transferred
par_mksh_env_parallel_session
par_mksh_env_parallel_session fail
par_mksh_env_parallel_session script[9]: level0func: inaccessible or not found
par_mksh_env_parallel_session script[9]: level0alias: inaccessible or not found
par_mksh_env_parallel_session W: script[9]: level0func: inaccessible or not found
par_mksh_env_parallel_session W: script[9]: level0alias: inaccessible or not found
par_mksh_env_parallel_session
par_mksh_env_parallel_session fail
par_mksh_env_parallel_session /bin/mksh: level0func: inaccessible or not found
par_mksh_env_parallel_session /bin/mksh: level0alias: inaccessible or not found
par_mksh_env_parallel_session W: /bin/mksh: level0func: inaccessible or not found
par_mksh_env_parallel_session W: /bin/mksh: level0alias: inaccessible or not found
par_mksh_env_parallel_session l1var
par_mksh_env_parallel_session l1func
par_mksh_env_parallel_session l1alias
@ -969,10 +969,10 @@ par_mksh_env_parallel_session l2var
par_mksh_env_parallel_session l2func
par_mksh_env_parallel_session l2alias
par_mksh_env_parallel_session level2 array OK
par_mksh_env_parallel_session /bin/mksh: aliasbefore: inaccessible or not found
par_mksh_env_parallel_session script[9]: aliasbefore: inaccessible or not found
par_mksh_env_parallel_session /bin/mksh: funcbefore: inaccessible or not found
par_mksh_env_parallel_session script[9]: funcbefore: inaccessible or not found
par_mksh_env_parallel_session W: /bin/mksh: aliasbefore: inaccessible or not found
par_mksh_env_parallel_session W: script[9]: aliasbefore: inaccessible or not found
par_mksh_env_parallel_session W: /bin/mksh: funcbefore: inaccessible or not found
par_mksh_env_parallel_session W: script[9]: funcbefore: inaccessible or not found
par_mksh_env_parallel_session no_before
par_mksh_env_parallel_session no_before
par_mksh_env_parallel_session no_before
@ -1021,21 +1021,21 @@ par_ksh_underscore variables in aliases in and arrays in functions work
par_ksh_underscore variables in aliases in and arrays in functions work
par_ksh_underscore variables in aliases in and arrays in functions work
par_ksh_underscore variables in aliases in and arrays in functions work
par_ksh_underscore script[9]: not_copied_alias: not found [No such file or directory]
par_ksh_underscore script[9]: not_copied_func: not found [No such file or directory]
par_ksh_underscore script: line 5: not_copied_alias: not found
par_ksh_underscore script: line 5: not_copied_func: not found
par_ksh_underscore error=OK
par_ksh_underscore error=OK
par_ksh_underscore aliases in and arrays in functions work
par_ksh_underscore aliases in and arrays in functions work
par_ksh_underscore aliases in functions work
par_ksh_underscore aliases in functions work
par_ksh_underscore /bin/ksh: myecho: not found [No such file or directory]
par_ksh_underscore /bin/ksh: myecho: not found
par_ksh_underscore OK if no myecho ^^^^^^^^^^^^^^^^^
par_ksh_underscore script[9]: myecho: not found [No such file or directory]
par_ksh_underscore script[9]: myecho: not found
par_ksh_underscore OK if no myecho ^^^^^^^^^^^^^^^^^
par_ksh_underscore /bin/ksh: myfunc: not found
par_ksh_underscore OK if no myfunc ^^^^^^^^^^^^^^^^^
par_ksh_underscore script[9]: myfunc: not found [No such file or directory]
par_ksh_underscore script: line 2: myfunc: not found
par_ksh_underscore OK if no myfunc ^^^^^^^^^^^^^^^^^
par_ksh_parset parset
par_ksh_parset ### parset into array
@ -1142,9 +1142,9 @@ par_ksh_man work,
par_ksh_man too
par_ksh_man This may never work
par_ksh_man https://unix.stackexchange.com/questions/457031/extract-full-function-definitions
par_ksh_man /bin/ksh: line XXX: syntax error at line XXX: `{' unmatched
par_ksh_man /bin/ksh: line XXX: syntax error at line XXX: `{' unmatched
par_ksh_man /bin/ksh: line XXX: syntax error at line XXX: `{' unmatched
par_ksh_man /bin/ksh: line 3: syntax error at line XXX: `{' unmatched
par_ksh_man /bin/ksh: line 3: syntax error at line XXX: `{' unmatched
par_ksh_man /bin/ksh: line 3: syntax error at line XXX: `{' unmatched
par_ksh_man exit value 2 should be 2
par_ksh_man Unknown option: no-such-option
par_ksh_man exit value 255 should be 255
@ -1187,12 +1187,12 @@ par_ksh_env_parallel_session ### Test env_parallel --session
par_ksh_env_parallel_session ### level0 should be hidden, level1 should be transferred
par_ksh_env_parallel_session
par_ksh_env_parallel_session fail
par_ksh_env_parallel_session script[9]: level0func: not found [No such file or directory]
par_ksh_env_parallel_session script[9]: level0alias: not found [No such file or directory]
par_ksh_env_parallel_session script[9]: level0func: not found
par_ksh_env_parallel_session script[9]: level0alias: not found
par_ksh_env_parallel_session
par_ksh_env_parallel_session fail
par_ksh_env_parallel_session /bin/ksh[XXX]: level0func: not found [No such file or directory]
par_ksh_env_parallel_session /bin/ksh[XXX]: level0alias: not found [No such file or directory]
par_ksh_env_parallel_session /bin/ksh[XXX]: level0func: not found
par_ksh_env_parallel_session /bin/ksh[XXX]: level0alias: not found
par_ksh_env_parallel_session l1var
par_ksh_env_parallel_session l1func
par_ksh_env_parallel_session l1alias
@ -1204,20 +1204,20 @@ par_ksh_env_parallel_session level1 array OK
par_ksh_env_parallel_session ### level0+1 should be hidden, level2 should be transferred
par_ksh_env_parallel_session
par_ksh_env_parallel_session fail
par_ksh_env_parallel_session script[9]: level0func: not found [No such file or directory]
par_ksh_env_parallel_session script[9]: level0alias: not found [No such file or directory]
par_ksh_env_parallel_session script[9]: level0func: not found
par_ksh_env_parallel_session script[9]: level0alias: not found
par_ksh_env_parallel_session
par_ksh_env_parallel_session fail
par_ksh_env_parallel_session /bin/ksh[XXX]: level0func: not found [No such file or directory]
par_ksh_env_parallel_session /bin/ksh[XXX]: level0alias: not found [No such file or directory]
par_ksh_env_parallel_session /bin/ksh[XXX]: level0func: not found
par_ksh_env_parallel_session /bin/ksh[XXX]: level0alias: not found
par_ksh_env_parallel_session
par_ksh_env_parallel_session fail
par_ksh_env_parallel_session script[9]: level1func: not found [No such file or directory]
par_ksh_env_parallel_session script[9]: level1alias: not found [No such file or directory]
par_ksh_env_parallel_session script[9]: level1func: not found
par_ksh_env_parallel_session script[9]: level1alias: not found
par_ksh_env_parallel_session
par_ksh_env_parallel_session fail
par_ksh_env_parallel_session /bin/ksh[XXX]: level1func: not found [No such file or directory]
par_ksh_env_parallel_session /bin/ksh[XXX]: level1alias: not found [No such file or directory]
par_ksh_env_parallel_session /bin/ksh[XXX]: level1func: not found
par_ksh_env_parallel_session /bin/ksh[XXX]: level1alias: not found
par_ksh_env_parallel_session l2var
par_ksh_env_parallel_session l2func
par_ksh_env_parallel_session l2alias
@ -1229,12 +1229,12 @@ par_ksh_env_parallel_session level2 array OK
par_ksh_env_parallel_session ### level0 should be hidden, level1+2 should be transferred
par_ksh_env_parallel_session
par_ksh_env_parallel_session fail
par_ksh_env_parallel_session script[9]: level0func: not found [No such file or directory]
par_ksh_env_parallel_session script[9]: level0alias: not found [No such file or directory]
par_ksh_env_parallel_session script[9]: level0func: not found
par_ksh_env_parallel_session script[9]: level0alias: not found
par_ksh_env_parallel_session
par_ksh_env_parallel_session fail
par_ksh_env_parallel_session /bin/ksh[XXX]: level0func: not found [No such file or directory]
par_ksh_env_parallel_session /bin/ksh[XXX]: level0alias: not found [No such file or directory]
par_ksh_env_parallel_session /bin/ksh[XXX]: level0func: not found
par_ksh_env_parallel_session /bin/ksh[XXX]: level0alias: not found
par_ksh_env_parallel_session l1var
par_ksh_env_parallel_session l1func
par_ksh_env_parallel_session l1alias
@ -1277,9 +1277,9 @@ par_ksh_env_parallel_session l2func
par_ksh_env_parallel_session l2alias
par_ksh_env_parallel_session level2 array OK
par_ksh_env_parallel_session /bin/ksh: line 3: aliasbefore: not found
par_ksh_env_parallel_session script[9]: aliasbefore: not found [No such file or directory]
par_ksh_env_parallel_session script: line 4: aliasbefore: not found
par_ksh_env_parallel_session /bin/ksh: line 3: funcbefore: not found
par_ksh_env_parallel_session script[9]: funcbefore: not found [No such file or directory]
par_ksh_env_parallel_session script: line 4: funcbefore: not found
par_ksh_env_parallel_session no_before
par_ksh_env_parallel_session no_before
par_ksh_env_parallel_session no_before
@ -1327,10 +1327,10 @@ par_fish_underscore variables in aliases and arrays in functions work
par_fish_underscore variables in aliases and arrays in functions work
par_fish_underscore variables in aliases and arrays in functions work
par_fish_underscore variables in aliases and arrays in functions work
par_fish_underscore script (line 15):
par_fish_underscore script (line XXX):
par_fish_underscore not_copied_alias 'error=OK'
par_fish_underscore ^
par_fish_underscore script (line 15):
par_fish_underscore script (line XXX):
par_fish_underscore not_copied_func 'error=OK'
par_fish_underscore ^
par_fish_underscore error=OK
@ -1343,11 +1343,11 @@ par_fish_underscore myecho $myarray functions $argv
par_fish_underscore ^
par_fish_underscore in function 'myfunc' with arguments 'work'
par_fish_underscore OK if ^^^^^^^^^^^^^^^^^ no myecho
par_fish_underscore script (line 3):
par_fish_underscore script (line 4):
par_fish_underscore myecho $myarray functions $argv
par_fish_underscore ^
par_fish_underscore in function 'myfunc' with arguments 'work'
par_fish_underscore called on line 9 of file script
par_fish_underscore called on line XXX of file script
par_fish_underscore OK if ^^^^^^^^^^^^^^^^^ no myecho
par_fish_underscore myfunc work
par_fish_underscore ^

View file

@ -89,6 +89,7 @@ from one to xoney
xargs: argument list too long
stdsort parallel -k -i -s26 -0 echo from \{\} to x{}y < items-0.xi
from one to xoney
parallel: Error: Command line too long (32 >= 26) at input 0:
echo '### -l -0 echo < ldata-0.xi'
### -l -0 echo < ldata-0.xi
@ -314,6 +315,7 @@ second
echo '### -P3 -n1 -IARG sh -c ARG < Pdata.xi'
### -P3 -n1 -IARG sh -c ARG < Pdata.xi
stdout xargs -P3 -n1 -IARG sh -c ARG < Pdata.xi
xargs: warning: options --max-args and --replace/-I/-i are mutually exclusive, ignoring previous --max-args value
three
two
one
@ -599,6 +601,7 @@ stdout parallel -k -L2 echo < ldatab.xi
echo '### -L2 -n2 echo < ldata.xi'
### -L2 -n2 echo < ldata.xi
stdout xargs -L2 -n2 echo < ldata.xi
xargs: warning: options --max-lines and --max-args/-n are mutually exclusive, ignoring previous --max-lines value
1 22
333 4444
55555 666666
@ -1267,6 +1270,7 @@ stdout parallel -l -k echo < ldata.xi
echo '### -l1 -n4 echo < files.xi'
### -l1 -n4 echo < files.xi
stdout xargs -l1 -n4 echo < files.xi
xargs: warning: options --max-lines and --max-args/-n are mutually exclusive, ignoring previous --max-lines value
/src/gnu/autoconf-1.11 /src/gnu/autoconf-1.11/README /src/gnu/autoconf-1.11/Makefile.in /src/gnu/autoconf-1.11/INSTALL
/src/gnu/autoconf-1.11/NEWS /src/gnu/autoconf-1.11/COPYING /src/gnu/autoconf-1.11/ChangeLog /src/gnu/autoconf-1.11/autoconf.texi
/src/gnu/autoconf-1.11/acconfig.h /src/gnu/autoconf-1.11/autoconf.sh /src/gnu/autoconf-1.11/acgeneral.m4 /src/gnu/autoconf-1.11/acspecific.m4

View file

@ -16,7 +16,7 @@ parallel: Error: Command line too long (2012 >= 523) at input 0: 2001
parallel: Error: Command line too long (3012 >= 523) at input 0: 3001
255
seq 4001 10 4030 | PARALLEL_TMUX=tmux-1.9 par_tm
/usr/bin/bash: par_tm: command not found
/usr/bin/bash: line 1: par_tm: command not found
echo 4036 | PARALLEL_TMUX=tmux-1.9 par_tmux
parallel: Error: Command line too long (4047 >= 523) at input 0: 4036
255

View file

@ -1,14 +1,14 @@
par_big_func 1 3XXX 91XXX
par_big_func 1 3XXX 91XXX
par_big_func 1 3XXX 91XXX
par_big_func 1 1XXX 44XXX
par_big_func 1 1XXX 45XXX
par_big_func_name 19XXX
par_big_func_name 19XXX
par_big_func_name 19XXX
par_big_func_name 19XXX
par_big_func_name 19XXX
par_big_func_name 19XXX
par_big_func_name 2XXX
par_big_func_name 3XXX
par_big_var_func_name 19XXX
par_big_var_func_name 19XXX
par_big_var_func_name 19XXX
@ -25,7 +25,7 @@ par_big_var_func_name 19XXX
par_big_var_func_name 19XXX
par_big_var_func_name 19XXX
par_big_var_func_name 19XXX
par_big_var_func_name 8XXX
par_big_var_func_name 9XXX
par_many_args 1 3XXX 6XXX
par_many_args 1 3XXX 6XXX
par_many_args 1 3XXX 6XXX
@ -33,43 +33,43 @@ par_many_args 1 3XXX 6XXX
par_many_args 1 3XXX 6XXX
par_many_args 1 3XXX 6XXX
par_many_args 1 1XXX 2XXX
par_many_func 1 228 5XXX
par_many_func 1 228 5XXX
par_many_func 1 228 5XXX
par_many_func 1 228 5XXX
par_many_func 1 228 5XXX
par_many_func 1 228 5XXX
par_many_func 1 228 5XXX
par_many_func 1 228 5XXX
par_many_func 1 228 5XXX
par_many_func 1 228 5XXX
par_many_func 1 228 5XXX
par_many_func 1 228 5XXX
par_many_func 1 228 5XXX
par_many_func 1 228 5XXX
par_many_func 1 228 5XXX
par_many_func 1 228 5XXX
par_many_func 1 228 5XXX
par_many_func 1 228 5XXX
par_many_func 1 228 5XXX
par_many_func 1 228 5XXX
par_many_func 1 228 5XXX
par_many_func 1 228 5XXX
par_many_func 1 228 5XXX
par_many_func 1 228 5XXX
par_many_func 1 228 5XXX
par_many_func 1 228 5XXX
par_many_func 1 228 5XXX
par_many_func 1 228 5XXX
par_many_func 1 228 5XXX
par_many_func 1 56 1XXX
par_many_var 1 980 23XXX
par_many_var 1 980 23XXX
par_many_var 1 980 23XXX
par_many_var 1 980 23XXX
par_many_var 1 980 23XXX
par_many_var 1 980 23XXX
par_many_var 1 788 18XXX
par_many_func 1 224 5XXX
par_many_func 1 224 5XXX
par_many_func 1 224 5XXX
par_many_func 1 224 5XXX
par_many_func 1 224 5XXX
par_many_func 1 224 5XXX
par_many_func 1 224 5XXX
par_many_func 1 224 5XXX
par_many_func 1 224 5XXX
par_many_func 1 224 5XXX
par_many_func 1 224 5XXX
par_many_func 1 224 5XXX
par_many_func 1 224 5XXX
par_many_func 1 224 5XXX
par_many_func 1 224 5XXX
par_many_func 1 224 5XXX
par_many_func 1 224 5XXX
par_many_func 1 224 5XXX
par_many_func 1 224 5XXX
par_many_func 1 224 5XXX
par_many_func 1 224 5XXX
par_many_func 1 224 5XXX
par_many_func 1 224 5XXX
par_many_func 1 224 5XXX
par_many_func 1 224 5XXX
par_many_func 1 224 5XXX
par_many_func 1 224 5XXX
par_many_func 1 224 5XXX
par_many_func 1 224 5XXX
par_many_func 1 172 4XXX
par_many_var 1 976 23XXX
par_many_var 1 976 23XXX
par_many_var 1 976 23XXX
par_many_var 1 976 23XXX
par_many_var 1 976 23XXX
par_many_var 1 976 23XXX
par_many_var 1 812 19XXX
par_many_var_big_func 6XXX
par_many_var_big_func 6XXX
par_many_var_big_func 6XXX
@ -95,7 +95,8 @@ par_many_var_big_func 6XXX
par_many_var_big_func 6XXX
par_many_var_big_func 6XXX
par_many_var_big_func 6XXX
par_many_var_big_func 4XXX
par_many_var_big_func 6XXX
par_many_var_big_func 260
par_many_var_func 1 2XXX 59XXX
par_many_var_func 1 2XXX 59XXX
par_many_var_func 1 1XXX 40XXX
par_many_var_func 1 1XXX 41XXX

View file

@ -8,8 +8,8 @@
40f53af6 9e20dae5 713ba06c f517006d 9897747b ed8a4694 b1acba1b 1464beb4
60055629 3f2356f3 3e9c4e3c 76e3f3af a9db4b32 bd33322b 975696fc e6b23cfb
$ bash install.sh
/usr/bin/bash: -c: line 0: syntax error near unexpected token `)'
/usr/bin/bash: -c: line 0: ` fetch -o - http://pi.dk/3 ) > install.sh'
/usr/bin/bash: -c: line 1: syntax error near unexpected token `)'
/usr/bin/bash: -c: line 1: ` fetch -o - http://pi.dk/3 ) > install.sh'
parallel -k echo ::: A B C > abc-file
parallel -k echo ::: D E F > def-file
perl -e 'printf "A\0B\0C\0"' > abc0-file
@ -21,11 +21,11 @@
perl -e 'for(1..1000000){print "$_\n"}' > num1000000
(echo %head1; echo %head2; \
sleep .3
/usr/bin/bash: -c: line 2: syntax error: unexpected end of file
/usr/bin/bash: -c: line 3: syntax error: unexpected end of file
sleep .3
perl -e 'for(1..10){print "$_\n"}') > num_%header
/usr/bin/bash: -c: line 0: syntax error near unexpected token `)'
/usr/bin/bash: -c: line 0: ` perl -e 'for(1..10){print "$_\n"}') > num_%header'
/usr/bin/bash: -c: line 1: syntax error near unexpected token `)'
/usr/bin/bash: -c: line 1: ` perl -e 'for(1..10){print "$_\n"}') > num_%header'
perl -e 'print "HHHHAAABBBCCC"' > fixedlen
parallel echo ::: A B C
parallel -a abc-file echo
@ -213,7 +213,7 @@ foo
foo
parallel --rpl '{..} s:\.[^.]+$::;s:\.[^.]+$::;' echo '{..}'
::: foo.tar.gz
/usr/bin/bash: line 1: :::: command not found
/usr/bin/bash: line 2: :::: command not found
parallel --rpl '{%(.+?)} s/$$1$//;' echo {%.tar.gz}.zip ::: foo.tar.gz
foo.zip
parallel --rpl '{/(.+?)/(.*?)} s/$$1/$$2/;' echo {/tar.gz/zip} \
@ -227,13 +227,13 @@ foo.zip
eval "use File::Basename; 1;"; $_ = dirname($_);'
--rpl '{/.} s:.*/::; s:\.[^/.]+$::;'
--rpl '{.} s:\.[^/.]+$::'
/usr/bin/bash: --rpl: command not found
/usr/bin/bash: line 1: --rpl: command not found
/usr/bin/bash: line 2: --rpl: command not found
/usr/bin/bash: line 3: --rpl: command not found
/usr/bin/bash: line 5: --rpl: command not found
/usr/bin/bash: line 4: --rpl: command not found
/usr/bin/bash: line 6: --rpl: command not found
/usr/bin/bash: line 7: --rpl: command not found
/usr/bin/bash: line 8: --rpl: command not found
parallel echo {1} and {2} ::: A B ::: C D
A and C
A and D
@ -351,9 +351,9 @@ foo
Warning: Press CTRL-D to exit.
perl -e 'print "@ARGV\n"'
[CTRL-D]
/usr/bin/bash: line 1: Warning:: command not found
/usr/bin/bash: -c: line 2: syntax error near unexpected token `('
/usr/bin/bash: -c: line 2: ` Warning: are doing (in which case: YOU ARE AWESOME!) or you forgot'
/usr/bin/bash: line 2: Warning:: command not found
/usr/bin/bash: -c: line 3: syntax error near unexpected token `('
/usr/bin/bash: -c: line 3: ` Warning: are doing (in which case: YOU ARE AWESOME!) or you forgot'
parallel --trim r echo pre-{}-post ::: ' A '
pre- A-post
parallel --trim l echo pre-{}-post ::: ' A '
@ -365,26 +365,26 @@ pre-A-post
=bash
=ls
parallel 'set a="{}"; if( { test -d "$a" } ) echo "$a is a dir"' ::: *
/usr/bin/bash: -c: line 0: syntax error near unexpected token `)'
/usr/bin/bash: -c: line 0: `set a="abc-file"; if( { test -d "$a" } ) echo "$a is a dir"'
/usr/bin/bash: -c: line 0: syntax error near unexpected token `)'
/usr/bin/bash: -c: line 0: `set a="abc0-file"; if( { test -d "$a" } ) echo "$a is a dir"'
/usr/bin/bash: -c: line 0: syntax error near unexpected token `)'
/usr/bin/bash: -c: line 0: `set a="abc_-file"; if( { test -d "$a" } ) echo "$a is a dir"'
/usr/bin/bash: -c: line 0: syntax error near unexpected token `)'
/usr/bin/bash: -c: line 0: `set a="def-file"; if( { test -d "$a" } ) echo "$a is a dir"'
/usr/bin/bash: -c: line 0: syntax error near unexpected token `)'
/usr/bin/bash: -c: line 0: `set a="fixedlen"; if( { test -d "$a" } ) echo "$a is a dir"'
/usr/bin/bash: -c: line 0: syntax error near unexpected token `)'
/usr/bin/bash: -c: line 0: `set a="num1000000"; if( { test -d "$a" } ) echo "$a is a dir"'
/usr/bin/bash: -c: line 0: syntax error near unexpected token `)'
/usr/bin/bash: -c: line 0: `set a="num128"; if( { test -d "$a" } ) echo "$a is a dir"'
/usr/bin/bash: -c: line 0: syntax error near unexpected token `)'
/usr/bin/bash: -c: line 0: `set a="num30000"; if( { test -d "$a" } ) echo "$a is a dir"'
/usr/bin/bash: -c: line 0: syntax error near unexpected token `)'
/usr/bin/bash: -c: line 0: `set a="num8"; if( { test -d "$a" } ) echo "$a is a dir"'
/usr/bin/bash: -c: line 0: syntax error near unexpected token `)'
/usr/bin/bash: -c: line 0: `set a="tsv-file.tsv"; if( { test -d "$a" } ) echo "$a is a dir"'
/usr/bin/bash: -c: line 1: syntax error near unexpected token `)'
/usr/bin/bash: -c: line 1: `set a="abc-file"; if( { test -d "$a" } ) echo "$a is a dir"'
/usr/bin/bash: -c: line 1: syntax error near unexpected token `)'
/usr/bin/bash: -c: line 1: `set a="abc0-file"; if( { test -d "$a" } ) echo "$a is a dir"'
/usr/bin/bash: -c: line 1: syntax error near unexpected token `)'
/usr/bin/bash: -c: line 1: `set a="abc_-file"; if( { test -d "$a" } ) echo "$a is a dir"'
/usr/bin/bash: -c: line 1: syntax error near unexpected token `)'
/usr/bin/bash: -c: line 1: `set a="def-file"; if( { test -d "$a" } ) echo "$a is a dir"'
/usr/bin/bash: -c: line 1: syntax error near unexpected token `)'
/usr/bin/bash: -c: line 1: `set a="fixedlen"; if( { test -d "$a" } ) echo "$a is a dir"'
/usr/bin/bash: -c: line 1: syntax error near unexpected token `)'
/usr/bin/bash: -c: line 1: `set a="num1000000"; if( { test -d "$a" } ) echo "$a is a dir"'
/usr/bin/bash: -c: line 1: syntax error near unexpected token `)'
/usr/bin/bash: -c: line 1: `set a="num128"; if( { test -d "$a" } ) echo "$a is a dir"'
/usr/bin/bash: -c: line 1: syntax error near unexpected token `)'
/usr/bin/bash: -c: line 1: `set a="num30000"; if( { test -d "$a" } ) echo "$a is a dir"'
/usr/bin/bash: -c: line 1: syntax error near unexpected token `)'
/usr/bin/bash: -c: line 1: `set a="num8"; if( { test -d "$a" } ) echo "$a is a dir"'
/usr/bin/bash: -c: line 1: syntax error near unexpected token `)'
/usr/bin/bash: -c: line 1: `set a="tsv-file.tsv"; if( { test -d "$a" } ) echo "$a is a dir"'
parallel --tag echo foo-{} ::: A B C
A foo-A
B foo-B
@ -452,15 +452,15 @@ echo C
outdir/1/C/seq
outdir/1/C/stderr
outdir/1/C/stdout
/usr/bin/bash: outdir/1/A/seq: No such file or directory
/usr/bin/bash: line 1: outdir/1/A/stderr: No such file or directory
/usr/bin/bash: line 2: outdir/1/A/stdout: No such file or directory
/usr/bin/bash: line 3: outdir/1/B/seq: No such file or directory
/usr/bin/bash: line 4: outdir/1/B/stderr: No such file or directory
/usr/bin/bash: line 5: outdir/1/B/stdout: No such file or directory
/usr/bin/bash: line 6: outdir/1/C/seq: No such file or directory
/usr/bin/bash: line 7: outdir/1/C/stderr: No such file or directory
/usr/bin/bash: line 8: outdir/1/C/stdout: No such file or directory
/usr/bin/bash: line 1: outdir/1/A/seq: No such file or directory
/usr/bin/bash: line 2: outdir/1/A/stderr: No such file or directory
/usr/bin/bash: line 3: outdir/1/A/stdout: No such file or directory
/usr/bin/bash: line 4: outdir/1/B/seq: No such file or directory
/usr/bin/bash: line 5: outdir/1/B/stderr: No such file or directory
/usr/bin/bash: line 6: outdir/1/B/stdout: No such file or directory
/usr/bin/bash: line 7: outdir/1/C/seq: No such file or directory
/usr/bin/bash: line 8: outdir/1/C/stderr: No such file or directory
/usr/bin/bash: line 9: outdir/1/C/stdout: No such file or directory
parallel --header : --results outdir echo ::: f1 A B ::: f2 C D
outdir/f1/A/f2/C/seq
outdir/f1/A/f2/C/stderr
@ -474,18 +474,18 @@ echo C
outdir/f1/B/f2/D/seq
outdir/f1/B/f2/D/stderr
outdir/f1/B/f2/D/stdout
/usr/bin/bash: outdir/f1/A/f2/C/seq: No such file or directory
/usr/bin/bash: line 1: outdir/f1/A/f2/C/stderr: No such file or directory
/usr/bin/bash: line 2: outdir/f1/A/f2/C/stdout: No such file or directory
/usr/bin/bash: line 3: outdir/f1/A/f2/D/seq: No such file or directory
/usr/bin/bash: line 4: outdir/f1/A/f2/D/stderr: No such file or directory
/usr/bin/bash: line 5: outdir/f1/A/f2/D/stdout: No such file or directory
/usr/bin/bash: line 6: outdir/f1/B/f2/C/seq: No such file or directory
/usr/bin/bash: line 7: outdir/f1/B/f2/C/stderr: No such file or directory
/usr/bin/bash: line 8: outdir/f1/B/f2/C/stdout: No such file or directory
/usr/bin/bash: line 9: outdir/f1/B/f2/D/seq: No such file or directory
/usr/bin/bash: line 10: outdir/f1/B/f2/D/stderr: No such file or directory
/usr/bin/bash: line 11: outdir/f1/B/f2/D/stdout: No such file or directory
/usr/bin/bash: line 1: outdir/f1/A/f2/C/seq: No such file or directory
/usr/bin/bash: line 2: outdir/f1/A/f2/C/stderr: No such file or directory
/usr/bin/bash: line 3: outdir/f1/A/f2/C/stdout: No such file or directory
/usr/bin/bash: line 4: outdir/f1/A/f2/D/seq: No such file or directory
/usr/bin/bash: line 5: outdir/f1/A/f2/D/stderr: No such file or directory
/usr/bin/bash: line 6: outdir/f1/A/f2/D/stdout: No such file or directory
/usr/bin/bash: line 7: outdir/f1/B/f2/C/seq: No such file or directory
/usr/bin/bash: line 8: outdir/f1/B/f2/C/stderr: No such file or directory
/usr/bin/bash: line 9: outdir/f1/B/f2/C/stdout: No such file or directory
/usr/bin/bash: line 10: outdir/f1/B/f2/D/seq: No such file or directory
/usr/bin/bash: line 11: outdir/f1/B/f2/D/stderr: No such file or directory
/usr/bin/bash: line 12: outdir/f1/B/f2/D/stdout: No such file or directory
/usr/bin/time -f %e parallel -N0 -j64 sleep 1 :::: num128
9
/usr/bin/time -f %e parallel -N0 sleep 1 :::: num128
@ -634,7 +634,7 @@ parallel: Warning: This job was killed because it timed out:
parallel: Warning: show_signals ''
echo | parallel --termseq INT,200,TERM,100,KILL,25 \
-u --timeout 1 show_signals
/usr/bin/bash: show_signals: command not found
/usr/bin/bash: line 1: show_signals: command not found
parallel --load 100% echo load is less than {} job per cpu ::: 1
load is less than 1 job per cpu
parallel --noswap echo the system is not swapping ::: now
@ -692,6 +692,7 @@ This is input_file
parallel -S $SERVER1 --trc {}.out cat {} ">"{}.out ::: input_file
cat input_file.out
This is input_file
rsync: [sender] link_stat "/home/parallel/input_file.out" failed: No such file or directory (2)
echo common data > common_file
parallel --basefile common_file -S $SERVER1 \
cat common_file\; echo {} ::: foo
@ -1026,11 +1027,11 @@ Seq,Host,Starttime,JobRuntime,Send,Receive,Exitval,_Signal,Command,V1,V2,Stdout,
2,:,000000000.000,0.000,0,12,0,0,"seq 10 13",10,13,outdir/1/10/2/13/stdout,outdir/1/10/2/13/stderr
3,:,000000000.000,0.000,0,15,0,0,"seq 10 14",10,14,outdir/1/10/2/14/stdout,outdir/1/10/2/14/stderr
vendor://[[user][:password]@][host][:port]/[database[/table]
/usr/bin/bash: vendor://[[user][:password]@][host][:port]/[database[/table]: No such file or directory
/usr/bin/bash: line 1: vendor://[[user][:password]@][host][:port]/[database[/table]: No such file or directory
sqlite3:///%2Ftmp%2Fmydatabase/mytable
csv:///%2Ftmp/log.csv
/usr/bin/bash: sqlite3:///%2Ftmp%2Fmydatabase/mytable: No such file or directory
/usr/bin/bash: line 1: csv:///%2Ftmp/log.csv: No such file or directory
/usr/bin/bash: line 1: sqlite3:///%2Ftmp%2Fmydatabase/mytable: No such file or directory
/usr/bin/bash: line 2: csv:///%2Ftmp/log.csv: No such file or directory
DBURL=sqlite3:///%2Ftmp%2Fmydatabase
DBURLTABLE=$DBURL/mytable
parallel --sqlandworker $DBURLTABLE echo ::: foo bar ::: baz quuz
@ -1103,40 +1104,43 @@ cat: num_%header: No such file or directory
999999 999999 9999999
126984 126984 888889
cat input_file | parallel command
/usr/bin/bash: This is input_file: command not found
/usr/bin/bash: line 1: This is input_file: command not found
#!/bin/bash
#!/usr/bin/parallel --shebang -r echo
foo
bar
baz
/usr/bin/bash: foo: command not found
/usr/bin/bash: line 1: bar: command not found
/usr/bin/bash: line 2: baz: command not found
/usr/bin/bash: line 1: foo: command not found
/usr/bin/bash: line 2: bar: command not found
/usr/bin/bash: line 3: baz: command not found
cat input_file | parallel command
parallel command ::: foo bar
/usr/bin/bash: This is input_file: command not found
/usr/bin/bash: foo: command not found
/usr/bin/bash: bar: command not found
/usr/bin/bash: line 1: This is input_file: command not found
/usr/bin/bash: line 1: foo: command not found
/usr/bin/bash: line 1: bar: command not found
cat input_file | command
command foo bar
/usr/bin/bash: line 1: foo: command not found
/usr/bin/bash: line 2: foo: command not found
#!/usr/bin/perl
print "@ARGV\n"
Warning: unknown mime-type for "@ARGV\n" -- using "application/octet-stream"
Error: no such file "@ARGV\n"
parallel perl_echo ::: foo bar
/usr/bin/bash: perl_echo: command not found
/usr/bin/bash: line 1: perl_echo: command not found
#!/usr/bin/parallel --shebang-wrap /usr/bin/perl
print "@ARGV\n"
Warning: unknown mime-type for "@ARGV\n" -- using "application/octet-stream"
Error: no such file "@ARGV\n"
perl_echo foo bar
/usr/bin/bash: perl_echo: command not found
/usr/bin/bash: line 1: perl_echo: command not found
#!/usr/bin/parallel --shebang-wrap /usr/bin/perl
print "Arguments @ARGV\n";
Warning: unknown mime-type for "Arguments @ARGV\n" -- using "application/octet-stream"
Error: no such file "Arguments @ARGV\n"
#!/usr/bin/parallel --shebang-wrap /usr/bin/python
print 'Arguments', str(sys.argv)
/usr/bin/bash: -c: line 3: syntax error near unexpected token `('
/usr/bin/bash: -c: line 3: ` print 'Arguments', str(sys.argv)'
/usr/bin/bash: -c: line 4: syntax error near unexpected token `('
/usr/bin/bash: -c: line 4: ` print 'Arguments', str(sys.argv)'
#!/usr/bin/parallel --shebang-wrap /bin/bash
echo Arguments "$@"
Arguments
@ -1145,21 +1149,22 @@ Arguments
Arguments
#!/usr/bin/parallel --shebang-wrap /usr/bin/tclsh
puts "Arguments $argv"
/usr/bin/bash: line 2: puts: command not found
/usr/bin/bash: line 3: puts: command not found
#!/usr/bin/parallel --shebang-wrap /usr/bin/Rscript --vanilla --slave
args <- commandArgs(trailingOnly = TRUE)
print(paste("Arguments ",args))
/usr/bin/bash: -c: line 2: syntax error near unexpected token `('
/usr/bin/bash: -c: line 2: ` args <- commandArgs(trailingOnly = TRUE)'
/usr/bin/bash: -c: line 3: syntax error near unexpected token `('
/usr/bin/bash: -c: line 3: ` args <- commandArgs(trailingOnly = TRUE)'
#!/usr/bin/parallel --shebang-wrap ARG={} /usr/bin/gnuplot
print "Arguments ", system('echo $ARG')
/usr/bin/bash: -c: line 2: syntax error near unexpected token `('
/usr/bin/bash: -c: line 2: ` print "Arguments ", system('echo $ARG')'
/usr/bin/bash: -c: line 3: syntax error near unexpected token `('
/usr/bin/bash: -c: line 3: ` print "Arguments ", system('echo $ARG')'
#!/usr/bin/parallel --shebang-wrap /usr/bin/ruby
print "Arguments "
puts ARGV
Warning: unknown mime-type for "Arguments " -- using "application/octet-stream"
Error: no such file "Arguments "
/usr/bin/bash: line 3: puts: command not found
/usr/bin/bash: line 4: puts: command not found
#!/usr/bin/parallel --shebang-wrap /usr/bin/octave
printf ("Arguments");
arg_list = argv ();
@ -1167,13 +1172,13 @@ Error: no such file "Arguments "
printf (" %s", arg_list{i});
endfor
printf ("\n");
/usr/bin/bash: -c: line 2: syntax error near unexpected token `"Arguments"'
/usr/bin/bash: -c: line 2: ` printf ("Arguments");'
/usr/bin/bash: -c: line 3: syntax error near unexpected token `"Arguments"'
/usr/bin/bash: -c: line 3: ` printf ("Arguments");'
#!/usr/bin/parallel --shebang-wrap /usr/bin/clisp
(format t "~&~S~&" 'Arguments)
(format t "~&~S~&" *args*)
/usr/bin/bash: -c: line 2: unexpected EOF while looking for matching `''
/usr/bin/bash: -c: line 4: syntax error: unexpected end of file
/usr/bin/bash: -c: line 3: unexpected EOF while looking for matching `''
/usr/bin/bash: -c: line 5: syntax error: unexpected end of file
#!/usr/bin/parallel --shebang-wrap /usr/bin/php
<?php
echo "Arguments";
@ -1184,14 +1189,14 @@ Error: no such file "Arguments "
echo "\n";
?>
Arguments
/usr/bin/bash: line 1: ?php: No such file or directory
/usr/bin/bash: -c: line 3: syntax error near unexpected token `array_slice'
/usr/bin/bash: -c: line 3: ` foreach(array_slice($argv,1) as $v)'
/usr/bin/bash: line 2: ?php: No such file or directory
/usr/bin/bash: -c: line 4: syntax error near unexpected token `array_slice'
/usr/bin/bash: -c: line 4: ` foreach(array_slice($argv,1) as $v)'
#!/usr/bin/parallel --shebang-wrap /usr/bin/node
var myArgs = process.argv.slice(2);
console.log('Arguments ', myArgs);
/usr/bin/bash: -c: line 0: syntax error near unexpected token `('
/usr/bin/bash: -c: line 0: ` var myArgs = process.argv.slice(2);'
/usr/bin/bash: -c: line 1: syntax error near unexpected token `('
/usr/bin/bash: -c: line 1: ` var myArgs = process.argv.slice(2);'
#!/usr/bin/parallel --shebang-wrap /usr/bin/lua
io.write "Arguments"
for a = 1, #arg do
@ -1199,14 +1204,14 @@ Arguments
io.write(arg[a])
end
print("")
/usr/bin/bash: line 2: io.write: command not found
/usr/bin/bash: -c: line 3: syntax error near unexpected token `='
/usr/bin/bash: -c: line 3: ` for a = 1, #arg do'
/usr/bin/bash: line 3: io.write: command not found
/usr/bin/bash: -c: line 4: syntax error near unexpected token `='
/usr/bin/bash: -c: line 4: ` for a = 1, #arg do'
#!/usr/bin/parallel --shebang-wrap ARGV={} /usr/bin/csharp
var argv = Environment.GetEnvironmentVariable("ARGV");
print("Arguments "+argv);
/usr/bin/bash: -c: line 2: syntax error near unexpected token `('
/usr/bin/bash: -c: line 2: ` var argv = Environment.GetEnvironmentVariable("ARGV");'
/usr/bin/bash: -c: line 3: syntax error near unexpected token `('
/usr/bin/bash: -c: line 3: ` var argv = Environment.GetEnvironmentVariable("ARGV");'
sem 'sleep 1; echo The first finished' &&
echo The first is now running in the background &&
sem 'sleep 1; echo The second finished' &&

View file

@ -110,12 +110,10 @@ par_exit 30 environment: line 1: PID Power failure bash -c 'kill -'$1'
par_exit 31 Bash exit value 159
par_exit 31 Sem exit value 159
par_exit 31 environment: line 1: PID Bad system call (core dumped) bash -c 'kill -'$1' $$'
par_exit 32 Bash exit value 160
par_exit 32 Sem exit value 160
par_exit 32 environment: line 1: PID Unknown signal 32 bash -c 'kill -'$1' $$'
par_exit 33 Bash exit value 161
par_exit 33 Sem exit value 161
par_exit 33 environment: line 1: PID Unknown signal 33 bash -c 'kill -'$1' $$'
par_exit 32 Bash exit value 0
par_exit 32 Sem exit value 0
par_exit 33 Bash exit value 0
par_exit 33 Sem exit value 0
par_exit 34 Bash exit value 162
par_exit 34 Sem exit value 162
par_exit 34 environment: line 1: PID Real-time signal 0 bash -c 'kill -'$1' $$'

View file

@ -55,30 +55,23 @@ Yes it does
### Test -r
dburl pg://nongood@127.0.0.3:2227/
databasedriver pg user nongood password host 127.0.0.3 port 2227 database nongood query
psql: error: could not connect to server: Connection refused
Is the server running on host "127.0.0.3" and accepting
TCP/IP connections on port 2227?
psql: error: could not connect to server: Connection refused
Is the server running on host "127.0.0.3" and accepting
TCP/IP connections on port 2227?
psql: error: could not connect to server: Connection refused
Is the server running on host "127.0.0.3" and accepting
TCP/IP connections on port 2227?
psql: error: connection to server at "127.0.0.3", port 2227 failed: Connection refused
Is the server running on that host and accepting TCP/IP connections?
psql: error: connection to server at "127.0.0.3", port 2227 failed: Connection refused
Is the server running on that host and accepting TCP/IP connections?
psql: error: connection to server at "127.0.0.3", port 2227 failed: Connection refused
Is the server running on that host and accepting TCP/IP connections?
### Test --retries=s
dburl pg://nongood@127.0.0.3:2227/
databasedriver pg user nongood password host 127.0.0.3 port 2227 database nongood query
psql: error: could not connect to server: Connection refused
Is the server running on host "127.0.0.3" and accepting
TCP/IP connections on port 2227?
psql: error: could not connect to server: Connection refused
Is the server running on host "127.0.0.3" and accepting
TCP/IP connections on port 2227?
psql: error: could not connect to server: Connection refused
Is the server running on host "127.0.0.3" and accepting
TCP/IP connections on port 2227?
psql: error: could not connect to server: Connection refused
Is the server running on host "127.0.0.3" and accepting
TCP/IP connections on port 2227?
psql: error: connection to server at "127.0.0.3", port 2227 failed: Connection refused
Is the server running on that host and accepting TCP/IP connections?
psql: error: connection to server at "127.0.0.3", port 2227 failed: Connection refused
Is the server running on that host and accepting TCP/IP connections?
psql: error: connection to server at "127.0.0.3", port 2227 failed: Connection refused
Is the server running on that host and accepting TCP/IP connections?
psql: error: connection to server at "127.0.0.3", port 2227 failed: Connection refused
Is the server running on that host and accepting TCP/IP connections?
### Test --help -h
Usage:
sql [options] dburl [sqlcommand]

View file

@ -37,7 +37,7 @@ bytes
3072
Current command: sqlite3
foo
sqltest.sqlite3: SQLite 3.x database, last written using SQLite version 3031001
sqltest.sqlite3: SQLite 3.x database, last written using SQLite version 3037002, file counter 1, database pages 2, cookie 0x1, schema 4, UTF-8, version-valid-for 1
n|t
1|Line 1
2|Line 2

View file

@ -76,11 +76,11 @@ ls: tmp/parallel.file*: No such file or directory
OK
Input for ssh
-l vagrant one-server -- exec mkdir -p ./.
-l vagrant one-server rsync --server -lDrRze.iLsfxC . ./.
-l vagrant one-server rsync --server -lDrRze.iLsfxCIvu . ./.
-l vagrant one-server -- exec perl -X -e GNU_Parallel_worker,eval+pack+q/H10000000/,join+q//,@ARGV hex
-l vagrant one-server cd ././tmp; rsync --server --sender -lDrRze.iLsfxC . './parallel.file.
-l vagrant one-server cd ././tmp; rsync --server --sender -lDrRze.iLsfxCIvu . './parallel.file.
newlineX.out'
-l vagrant one-server cd ././tmp; rsync --server --sender -lDrRze.iLsfxC . './parallel.file.
-l vagrant one-server cd ././tmp; rsync --server --sender -lDrRze.iLsfxCIvu . './parallel.file.
newlineX.out2'
-l vagrant one-server -- exec sh -c 'rm -f '"'"'./tmp/parallel.file.
newlineX'"'"' 2>/dev/null;rmdir ./tmp/ ./ 2>/dev/null;'
@ -89,11 +89,11 @@ newlineX.out'"'"' 2>/dev/null;rmdir ./tmp/ ./ 2>/dev/null;'
-l vagrant one-server -- exec sh -c 'rm -f '"'"'./tmp/parallel.file.
newlineX.out2'"'"' 2>/dev/null;rmdir ./tmp/ ./ 2>/dev/null;'
-l vagrant one-server -- exec mkdir -p ./.
-l vagrant one-server rsync --server -lDrRze.iLsfxC . ./.
-l vagrant one-server rsync --server -lDrRze.iLsfxCIvu . ./.
-l vagrant one-server -- exec perl -X -e GNU_Parallel_worker,eval+pack+q/H10000000/,join+q//,@ARGV hex
-l vagrant one-server cd ././tmp; rsync --server --sender -lDrRze.iLsfxC . './parallel.file.
-l vagrant one-server cd ././tmp; rsync --server --sender -lDrRze.iLsfxCIvu . './parallel.file.
newlineX.out'
-l vagrant one-server cd ././tmp; rsync --server --sender -lDrRze.iLsfxC . './parallel.file.
-l vagrant one-server cd ././tmp; rsync --server --sender -lDrRze.iLsfxCIvu . './parallel.file.
newlineX.out2'
-l vagrant one-server -- exec sh -c 'rm -f '"'"'./tmp/parallel.file.
newlineX'"'"' 2>/dev/null;rmdir ./tmp/ ./ 2>/dev/null;'