mirror of
https://git.savannah.gnu.org/git/parallel.git
synced 2024-12-22 20:57:53 +00:00
env_parallel.fish: Initial support for --session.
parallel: 'true | parallel --shuf echo' fixed. testsuite: Updates due to Ubuntu 18.04. parallel: Fixed bug #54869: Long lines break.
This commit is contained in:
parent
4f0422d9b0
commit
001d9d0f66
2
CREDITS
2
CREDITS
|
@ -1,5 +1,7 @@
|
|||
People who have helped GNU Parallel different ways.
|
||||
|
||||
Jakub Kulík: Maintaining GNU Parallel for Solaris-userland.
|
||||
Rich Burridge: Maintaining GNU Parallel for Solaris-userland.
|
||||
Jonathan Kamens: Bug patch for chomp.
|
||||
John Rusnak: Feedback on all documentation.
|
||||
FrithMartin: Bug patch for orphan blocks.
|
||||
|
|
|
@ -120,6 +120,7 @@ monitorman:
|
|||
inotifywait -qmre MOVED_TO -e CLOSE_WRITE --format %w%f . | parallel -uj1 'echo {=/\.pod$$/ or skip()=};make -j && sudo make install; pdfman {/.} &'
|
||||
|
||||
testurls:
|
||||
grep -h -Po 'https?://[^ $$<>")}]+' src/* | perl -pe 's/(>|\{).*//;s/\\//g;s/&/&/g;s/&#.*//;'"s/'.*//" | sort -u | parallel -j0 --tag 'wget -qm -l1 -Q1 {}; echo $$?'
|
||||
mkdir -p urls
|
||||
cd urls && grep -v '(dead)' ../src/* | grep -h -Po 'https?://[^ $$<>")}]+' | perl -pe 's/(>|\{).*//;s/\\-/-/g;s/\\n//g;s/&/&/g;s/&#.*//;'"s/'.*//" | sort -u | egrep -v 'example.com|##|\*\(' | parallel -j0 --timeout 33 --bar --tag --retries 3 neno wget -m -l1 -Q1 '{=$$_=Q($$_)=}'
|
||||
|
||||
EXTRA_DIST = CITATION CREDITS cc-by-sa.txt fdl.txt
|
||||
|
|
|
@ -868,7 +868,8 @@ monitorman:
|
|||
inotifywait -qmre MOVED_TO -e CLOSE_WRITE --format %w%f . | parallel -uj1 'echo {=/\.pod$$/ or skip()=};make -j && sudo make install; pdfman {/.} &'
|
||||
|
||||
testurls:
|
||||
grep -h -Po 'https?://[^ $$<>")}]+' src/* | perl -pe 's/(>|\{).*//;s/\\//g;s/&/&/g;s/&#.*//;'"s/'.*//" | sort -u | parallel -j0 --tag 'wget -qm -l1 -Q1 {}; echo $$?'
|
||||
mkdir -p urls
|
||||
cd urls && grep -v '(dead)' ../src/* | grep -h -Po 'https?://[^ $$<>")}]+' | perl -pe 's/(>|\{).*//;s/\\-/-/g;s/\\n//g;s/&/&/g;s/&#.*//;'"s/'.*//" | sort -u | egrep -v 'example.com|##|\*\(' | parallel -j0 --timeout 33 --bar --tag --retries 3 neno wget -m -l1 -Q1 '{=$$_=Q($$_)=}'
|
||||
|
||||
# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
||||
# Otherwise a system limit (for SysV at least) may be exceeded.
|
||||
|
|
|
@ -39,7 +39,8 @@ measure() {
|
|||
|
||||
PATH=/tmp/bin:$PATH
|
||||
cd /tmp/bin
|
||||
ls parallel-* | parallel --shuf -j$CORES --joblog ~/tmp/joblog$CORES-$INNER-$OUTER.csv 'seq '$INNER' | {2} true' :::: <(seq $OUTER) -
|
||||
ls parallel-* |
|
||||
parallel --shuf -j$CORES --joblog ~/tmp/joblog$CORES-$INNER-$OUTER.csv 'seq '$INNER' | {2} true' :::: <(seq $OUTER) -
|
||||
|
||||
killall forever
|
||||
|
||||
|
@ -49,7 +50,7 @@ measure() {
|
|||
pdf("/tmp/boxplot.pdf");
|
||||
par(cex.axis=0.5);
|
||||
boxplot(JobRuntime/$INNER*1000~Command,data=jl,las=2,outline=F,
|
||||
ylab="milliseconds/job",main="GNU Parallel performance of different versions\n$OUTER trials each running $INNER jobs");
|
||||
ylab="milliseconds/job",main="GNU Parallel overhead for different versions\n$OUTER trials each running $INNER jobs");
|
||||
_
|
||||
cp /tmp/boxplot.pdf $HOME/tmp/boxplot-j$CORES-${MHZ}MHz-$OUTER-${INNER}v$VERSION.pdf
|
||||
evince /tmp/boxplot.pdf
|
|
@ -205,28 +205,23 @@ from:tange@gnu.org
|
|||
to:parallel@gnu.org, bug-parallel@gnu.org
|
||||
stable-bcc: Jesse Alama <jessealama@fastmail.fm>
|
||||
|
||||
Subject: GNU Parallel 20180922 ('Danske') released <<[stable]>>
|
||||
Subject: GNU Parallel 20181022 ('peoples vote cumex khashoggi Sulawesi(Palu)') released <<[stable]>>
|
||||
|
||||
GNU Parallel 20180922 ('Danske') <<[stable]>> has been released. It is available for download at: http://ftpmirror.gnu.org/parallel/
|
||||
GNU Parallel 20181022 ('') <<[stable]>> has been released. It is available for download at: http://ftpmirror.gnu.org/parallel/
|
||||
|
||||
<<No new functionality was introduced so this is a good candidate for a stable release.>>
|
||||
|
||||
Quote of the month:
|
||||
|
||||
I know I'm late to the party but GNU Parallel is truly amazing!
|
||||
-- Sam Diaz-Munoz @sociovirology
|
||||
|
||||
New in this release:
|
||||
|
||||
* Minix is supported again.
|
||||
* env_parallel.fish: --session support (alpha quality)
|
||||
|
||||
* Updated graph showing GNU Parallel's overhead per job for each version. https://www.gnu.org/software/parallel/process-time-j2-1700MHz-3000-1000.pdf
|
||||
* GNU Parallel was cited in: High-throughput sequencing of murine immunoglobulin heavy chain repertoires using single side unique molecular identifiers on an Ion Torrent PGM https://doi.org/10.18632/oncotarget.25493
|
||||
|
||||
* Intro to Computing at CARC includes introduction to GNU Parallel http://carc.unm.edu/education--training/workshops-and-seminars.html
|
||||
* GNU parallel in Japanese Wikipedia https://ja.wikipedia.org/wiki/GNU_parallel
|
||||
|
||||
* Fast-GBS uses GNU Parallel https://bitbucket.org/jerlar73/fast-gbs/wiki/Home
|
||||
|
||||
* Belgium at 10 m resolution in July 2018 http://www.cesbio.ups-tlse.fr/multitemp/?p=14116
|
||||
* Outils de paramétrisation des tâches: lots de tâches, GNU Parallel https://www.eventbrite.ca/e/inscription-outils-de-parametrisation-des-taches-lots-de-taches-gnu-parallel-et-bqtools-midi-conference-de-50271076142
|
||||
|
||||
* Bug fixes and man page updates.
|
||||
|
||||
|
@ -253,7 +248,7 @@ Walk through the tutorial (man parallel_tutorial). Your commandline will love yo
|
|||
|
||||
When using programs that use GNU Parallel to process data for publication please cite:
|
||||
|
||||
O. Tange (2018): GNU Parallel 2018, April 2018, https://doi.org/10.5281/zenodo.1146014.
|
||||
O. Tange (2018): GNU Parallel 2018, March 2018, https://doi.org/10.5281/zenodo.1146014.
|
||||
|
||||
If you like GNU Parallel:
|
||||
|
||||
|
|
|
@ -363,7 +363,7 @@ _parset_main() {
|
|||
($_parset_PARALLEL_PRG --files -k "$@"; echo $? > "$_exit_FILE") |
|
||||
# var1=`cat tmpfile1; rm tmpfile1`
|
||||
# var2=`cat tmpfile2; rm tmpfile2`
|
||||
parallel -q echo {2}='`cat {1}; rm {1}`' :::: - :::+ $(
|
||||
parallel --plain -q echo {2}='`cat {1}; rm {1}`' :::: - :::+ $(
|
||||
echo "$_parset_NAME" | perl -pe 's/,/ /g'
|
||||
)
|
||||
);
|
||||
|
|
|
@ -83,6 +83,7 @@ else
|
|||
# Make a tmpfile for the variable definitions + alias
|
||||
set _tMpaLLfILe=`_tempfile`
|
||||
foreach _vARnAmE ($_vARnAmES);
|
||||
# These 3 lines break in csh version 20110502-3
|
||||
# if not defined: next
|
||||
eval if'(! $?'$_vARnAmE') continue'
|
||||
# if $#myvar <= 1 echo scalar_myvar=$var
|
||||
|
|
|
@ -42,6 +42,17 @@
|
|||
|
||||
function env_parallel
|
||||
# env_parallel.fish
|
||||
|
||||
# --session
|
||||
perl -e 'exit grep { /^--session/ } @ARGV' -- $argv; or begin;
|
||||
setenv PARALLEL_IGNORED_NAMES (
|
||||
begin;
|
||||
functions -n
|
||||
set -n;
|
||||
end | perl -pe 's/\n/,/g';
|
||||
)
|
||||
return 0
|
||||
end;
|
||||
setenv PARALLEL_ENV (
|
||||
begin;
|
||||
set _grep_REGEXP (
|
||||
|
@ -71,10 +82,14 @@ function env_parallel
|
|||
"Run \"parallel --record-env\" in a clean environment first.\n";
|
||||
} else {
|
||||
chomp(@ignored_vars = <IN>);
|
||||
$vars = join "|",map { quotemeta $_ } @ignored_vars;
|
||||
print $vars ? "($vars)" : "(,,nO,,VaRs,,)";
|
||||
}
|
||||
}
|
||||
if($ENV{PARALLEL_IGNORED_NAMES}) {
|
||||
push @ignored_vars, split/,/, $ENV{PARALLEL_IGNORED_NAMES};
|
||||
chomp @ignored_vars;
|
||||
}
|
||||
$vars = join "|",map { quotemeta $_ } @ignored_vars;
|
||||
print $vars ? "($vars)" : "(,,nO,,VaRs,,)";
|
||||
' -- $argv;
|
||||
end;
|
||||
)
|
||||
|
|
|
@ -51,7 +51,7 @@ env_parallel() {
|
|||
}
|
||||
_ignore_HARDCODED() {
|
||||
# These names cannot be detected
|
||||
echo '([-\?\#\!\$\*\@\_0]|zsh_eval_context|ZSH_EVAL_CONTEXT|LINENO|IFS|commands|functions|options|aliases|EUID|EGID|UID|GID|dis_patchars|patchars|terminfo|galiases|keymaps|parameters|jobdirs|dirstack|functrace|funcsourcetrace|zsh_scheduled_events|dis_aliases|dis_reswords|dis_saliases|modules|reswords|saliases|widgets|userdirs|historywords|nameddirs|termcap|dis_builtins|dis_functions|jobtexts|funcfiletrace|dis_galiases|builtins|history|jobstates|funcstack)'
|
||||
echo '([-\?\#\!\$\*\@\_0]|zsh_eval_context|ZSH_EVAL_CONTEXT|LINENO|IFS|commands|functions|options|aliases|EUID|EGID|UID|GID|dis_patchars|patchars|terminfo|galiases|keymaps|parameters|jobdirs|dirstack|functrace|funcsourcetrace|zsh_scheduled_events|dis_aliases|dis_reswords|dis_saliases|modules|reswords|saliases|widgets|userdirs|historywords|nameddirs|termcap|dis_builtins|dis_functions|jobtexts|funcfiletrace|dis_galiases|builtins|history|jobstates|funcstack|run-help)'
|
||||
}
|
||||
_ignore_READONLY() {
|
||||
typeset -pr | perl -e '@r = map {
|
||||
|
|
|
@ -24,7 +24,7 @@
|
|||
use strict;
|
||||
use Getopt::Long;
|
||||
$Global::progname="niceload";
|
||||
$Global::version = 20180922;
|
||||
$Global::version = 20180923;
|
||||
Getopt::Long::Configure("bundling","require_order");
|
||||
get_options_from_array(\@ARGV) || die_usage();
|
||||
if($opt::version) {
|
||||
|
|
10
src/parallel
10
src/parallel
|
@ -1452,8 +1452,8 @@ sub parse_options {
|
|||
# Running 'parallel --citation' one single time takes less than 10
|
||||
# seconds, and will silence the citation notice for future
|
||||
# runs. If that is too much trouble for you, why not use one of
|
||||
# the alternatives instead? See a list in: 'man
|
||||
# parallel_alternatives'
|
||||
# the alternatives instead?
|
||||
# See a list in: 'man parallel_alternatives'
|
||||
citation_notice();
|
||||
|
||||
parse_halt();
|
||||
|
@ -1554,7 +1554,7 @@ sub check_invalid_option_combinations {
|
|||
|
||||
sub init_globals {
|
||||
# Defaults:
|
||||
$Global::version = 20180922;
|
||||
$Global::version = 20180923;
|
||||
$Global::progname = 'parallel';
|
||||
$Global::infinity = 2**31;
|
||||
$Global::debug = 0;
|
||||
|
@ -7156,7 +7156,7 @@ sub total_jobs {
|
|||
while($record = $record_queue->get()) {
|
||||
push @arg_records, $record;
|
||||
}
|
||||
if($opt::shuf) {
|
||||
if($opt::shuf and @arg_records) {
|
||||
my $i = @arg_records;
|
||||
while (--$i) {
|
||||
my $j = int rand($i+1);
|
||||
|
@ -10104,7 +10104,7 @@ sub replace_placeholders {
|
|||
# New context group
|
||||
@ctxgroup=();
|
||||
}
|
||||
if($t eq "\0spc") {
|
||||
if($t eq "\0spc" or $t eq " ") {
|
||||
CORE::push @replaced,$t;
|
||||
} else {
|
||||
CORE::push @ctxgroup,$t;
|
||||
|
|
|
@ -2363,6 +2363,11 @@ open a tty for the job.
|
|||
|
||||
You can of course override B<-j1> and B<-u>.
|
||||
|
||||
Using B<--tty> unfortunately means that GNU B<parallel> cannot kill
|
||||
the jobs (with B<--timeout>, B<--memfree>, or B<--halt>). This is due
|
||||
to GNU B<parallel> giving each child its own process group, which is
|
||||
then killed. Process groups are dependant on the tty.
|
||||
|
||||
|
||||
=item B<--tag>
|
||||
|
||||
|
@ -3053,6 +3058,14 @@ downloads 10 videos in parallel.
|
|||
B<{=> and B<=}> mark a perl expression. B<pQ> perl-quotes the
|
||||
string. B<date +%FT%T> is the date in ISO8601 with time.
|
||||
|
||||
=head1 EXAMPLE: Save output in ISO8601 dirs
|
||||
|
||||
Save output from B<ps aux> every second into dirs named
|
||||
yyyy-mm-ddThh:mm:ss+zz:zz.
|
||||
|
||||
seq 1000 | parallel -N0 -j1 --delay 1 \
|
||||
--results '{= $_=`date -Isec`; chomp=}/' ps aux
|
||||
|
||||
|
||||
=head1 EXAMPLE: Digital clock with "blinking" :
|
||||
|
||||
|
|
|
@ -13,6 +13,16 @@ There are a lot programs with some of the functionality of GNU
|
|||
B<parallel>. GNU B<parallel> strives to include the best of the
|
||||
functionality without sacrificing ease of use.
|
||||
|
||||
B<parallel> has existed since 2002 and as GNU B<parallel> since
|
||||
2010. A lot of the alternatives have not had the vitality to survive
|
||||
that long, but have come and gone during that time.
|
||||
|
||||
GNU B<parallel> is actively maintained with a new release every month
|
||||
since 2010. Most other alternatives are fleeting interests of the
|
||||
developers with irregular releases and only maintained for a few
|
||||
years.
|
||||
|
||||
|
||||
=head2 SUMMARY TABLE
|
||||
|
||||
The following features are in some of the comparable tools:
|
||||
|
@ -452,15 +462,16 @@ B<dxargs> does not deal well with more simultaneous jobs than SSHD's
|
|||
MaxStartups. B<dxargs> is only built for remote run jobs, but does not
|
||||
support transferring of files.
|
||||
|
||||
http://www.semicomplete.com/blog/geekery/distributed-xargs.html
|
||||
https://web.archive.org/web/20120518070250/http://www.semicomplete.com/blog/geekery/distributed-xargs.html
|
||||
|
||||
|
||||
=head2 DIFFERENCES BETWEEN mdm/middleman AND GNU Parallel
|
||||
|
||||
middleman(mdm) is also a tool for running jobs in parallel.
|
||||
|
||||
Here are the shellscripts of http://mdm.berlios.de/usage.html ported
|
||||
to GNU B<parallel>:
|
||||
Here are the shellscripts of
|
||||
https://web.archive.org/web/20110728064735/http://mdm.berlios.de/usage.html
|
||||
ported to GNU B<parallel>:
|
||||
|
||||
seq 19 | parallel buffon -o - | sort -n > result
|
||||
cat files | parallel cmd
|
||||
|
@ -900,6 +911,9 @@ These do something different from GNU B<parallel>
|
|||
(seq 10; sleep 5; echo 2) | time parallel -j2 'sleep 2; echo'
|
||||
tail -f /var/log/syslog | parallel echo
|
||||
|
||||
Most of the examples from the book GNU Parallel 2018 do not work, thus
|
||||
Rust parallel is not close to being a compatible replacement.
|
||||
|
||||
Rust parallel has no remote facilities.
|
||||
|
||||
It uses /tmp/parallel for tmp files and does not clean up if
|
||||
|
@ -1514,10 +1528,203 @@ Here are the 5 examples converted to GNU Parallel:
|
|||
https://github.com/soveran/map
|
||||
|
||||
|
||||
=head2 DIFFERENCES BETWEEN loop AND GNU Parallel
|
||||
|
||||
B<loop> mixes stdout and stderr:
|
||||
|
||||
loop 'ls /no-such-file' >/dev/null
|
||||
|
||||
B<loop>'s replacement string B<$ITEM> does not quote strings:
|
||||
|
||||
echo 'two spaces' | loop 'echo $ITEM'
|
||||
|
||||
B<loop> cannot run functions:
|
||||
|
||||
myfunc() { echo joe; }
|
||||
export -f myfunc
|
||||
loop 'myfunc this fails'
|
||||
|
||||
Some of the examples from https://github.com/Miserlou/Loop/ can be
|
||||
emulated with GNU B<parallel>:
|
||||
|
||||
# A couple of functions will make the code easier to read
|
||||
$ loopy() {
|
||||
yes | parallel -uN0 -j1 "$@"
|
||||
}
|
||||
$ export -f loopy
|
||||
$ time_out() {
|
||||
parallel -uN0 -q --timeout "$@" ::: 1
|
||||
}
|
||||
$ match() {
|
||||
perl -0777 -ne 'grep /'"$1"'/,$_ and print or exit 1'
|
||||
}
|
||||
$ export -f match
|
||||
|
||||
$ loop 'ls' --every 10s
|
||||
$ loopy --delay 10s ls
|
||||
|
||||
$ loop 'touch $COUNT.txt' --count-by 5
|
||||
$ loopy touch '{= $_=seq()*5 =}'.txt
|
||||
|
||||
$ loop --until-contains 200 -- ./get_response_code.sh --site mysite.biz`
|
||||
$ loopy --halt now,success=1 './get_response_code.sh --site mysite.biz |
|
||||
match 200'
|
||||
|
||||
$ loop './poke_server' --for-duration 8h
|
||||
$ time_out 8h loopy ./poke_server
|
||||
|
||||
$ loop './poke_server' --until-success
|
||||
$ loopy --halt now,success=1 ./poke_server
|
||||
|
||||
$ cat files_to_create.txt | loop 'touch $ITEM'
|
||||
$ cat files_to_create.txt | parallel touch {}
|
||||
|
||||
$ loop 'ls' --for-duration 10min --summary
|
||||
# --joblog is somewhat more verbose than --summary
|
||||
$ time_out 10m loopy --joblog my.log ./poke_server; cat my.log
|
||||
|
||||
$ loop 'echo hello'
|
||||
$ loopy echo hello
|
||||
|
||||
$ loop 'echo $COUNT'
|
||||
# GNU Parallel counts from 1
|
||||
$ loopy echo {#}
|
||||
# Counting from 0 can be forced
|
||||
$ loopy echo '{= $_=seq()-1 =}'
|
||||
|
||||
$ loop 'echo $COUNT' --count-by 2
|
||||
$ loopy echo '{= $_=2*(seq()-1) =}'
|
||||
|
||||
$ loop 'echo $COUNT' --count-by 2 --offset 10
|
||||
$ loopy echo '{= $_=10+2*(seq()-1) =}'
|
||||
|
||||
$ loop 'echo $COUNT' --count-by 1.1
|
||||
# GNU Parallel rounds 3.3000000000000003 to 3.3
|
||||
$ loopy echo '{= $_=1.1*(seq()-1) =}'
|
||||
|
||||
$ loop 'echo $COUNT $ACTUALCOUNT' --count-by 2
|
||||
$ loopy echo '{= $_=2*(seq()-1) =} {#}'
|
||||
|
||||
$ loop 'echo $COUNT' --num 3 --summary
|
||||
# --joblog is somewhat more verbose than --summary
|
||||
$ seq 3 | parallel --joblog my.log echo; cat my.log
|
||||
|
||||
$ loop 'ls -foobarbatz' --num 3 --summary
|
||||
# --joblog is somewhat more verbose than --summary
|
||||
$ seq 3 | parallel --joblog my.log -N0 ls -foobarbatz; cat my.log
|
||||
|
||||
$ loop 'echo $COUNT' --count-by 2 --num 50 --only-last
|
||||
# Can be emulated by running 2 jobs
|
||||
$ seq 49 | parallel echo '{= $_=2*(seq()-1) =}' >/dev/null
|
||||
$ echo 50| parallel echo '{= $_=2*(seq()-1) =}'
|
||||
|
||||
$ loop 'date' --every 5s
|
||||
$ loopy --delay 5s date
|
||||
|
||||
$ loop 'date' --for-duration 8s --every 2s
|
||||
$ time_out 8s loopy --delay 2s date
|
||||
|
||||
$ loop 'date -u' --until-time '2018-05-25 20:50:00' --every 5s
|
||||
$ seconds=$((`date -d 2019-05-25T20:50:00 +%s` - `date +%s`))s
|
||||
$ time_out $seconds loopy --delay 5s date -u
|
||||
|
||||
$ loop 'echo $RANDOM' --until-contains "666"
|
||||
$ loopy --halt now,success=1 'echo $RANDOM | match 666'
|
||||
|
||||
$ loop 'if (( RANDOM % 2 )); then
|
||||
(echo "TRUE"; true);
|
||||
else
|
||||
(echo "FALSE"; false);
|
||||
fi' --until-success
|
||||
$ loopy --halt now,success=1 'if (( $RANDOM % 2 )); then
|
||||
(echo "TRUE"; true);
|
||||
else
|
||||
(echo "FALSE"; false);
|
||||
fi'
|
||||
|
||||
$ loop 'if (( RANDOM % 2 )); then
|
||||
(echo "TRUE"; true);
|
||||
else
|
||||
(echo "FALSE"; false);
|
||||
fi' --until-error
|
||||
$ loopy --halt now,fail=1 'if (( $RANDOM % 2 )); then
|
||||
(echo "TRUE"; true);
|
||||
else
|
||||
(echo "FALSE"; false);
|
||||
fi'
|
||||
|
||||
$ loop 'date' --until-match "(\d{4})"
|
||||
$ loopy --halt now,success=1 'date | match [0-9][0-9][0-9][0-9]'
|
||||
|
||||
$ loop 'echo $ITEM' --for red,green,blue
|
||||
$ parallel echo ::: red green blue
|
||||
|
||||
$ cat /tmp/my-list-of-files-to-create.txt | loop 'touch $ITEM'
|
||||
$ cat /tmp/my-list-of-files-to-create.txt | parallel touch
|
||||
|
||||
$ ls | loop 'cp $ITEM $ITEM.bak'; ls
|
||||
$ ls | parallel cp {} {}.bak; ls
|
||||
|
||||
$ loop 'echo $ITEM | tr a-z A-Z' -i
|
||||
$ parallel 'echo {} | tr a-z A-Z'
|
||||
# Or more efficiently:
|
||||
$ parallel --pipe tr a-z A-Z
|
||||
|
||||
$ loop 'echo $ITEM' --for "`ls`"
|
||||
$ parallel echo {} ::: "`ls`"
|
||||
|
||||
$ ls | loop './my_program $ITEM' --until-success;
|
||||
$ ls | parallel --halt now,success=1 ./my_program {}
|
||||
|
||||
$ ls | loop './my_program $ITEM' --until-fail;
|
||||
$ ls | parallel --halt now,fail=1 ./my_program {}
|
||||
|
||||
$ ./deploy.sh;
|
||||
loop 'curl -sw "%{http_code}" http://coolwebsite.biz' \
|
||||
--every 5s --until-contains 200;
|
||||
./announce_to_slack.sh
|
||||
$ ./deploy.sh;
|
||||
loopy --delay 5s --halt now,success=1 \
|
||||
'curl -sw "%{http_code}" http://coolwebsite.biz | match 200';
|
||||
./announce_to_slack.sh
|
||||
|
||||
$ loop "ping -c 1 mysite.com" --until-success; ./do_next_thing
|
||||
$ loopy --halt now,success=1 ping -c 1 mysite.com; ./do_next_thing
|
||||
|
||||
$ ./create_big_file -o my_big_file.bin;
|
||||
loop 'ls' --until-contains 'my_big_file.bin';
|
||||
./upload_big_file my_big_file.bin
|
||||
# inotifywait is a better tool to detect file system changes.
|
||||
# It can even make sure the file is complete
|
||||
# so you are not uploading an incomplete file
|
||||
$ inotifywait -qmre MOVED_TO -e CLOSE_WRITE --format %w%f . |
|
||||
grep my_big_file.bin
|
||||
|
||||
$ ls | loop 'cp $ITEM $ITEM.bak'
|
||||
$ ls | parallel cp {} {}.bak
|
||||
|
||||
$ loop './do_thing.sh' --every 15s --until-success --num 5
|
||||
$ parallel --retries 5 --delay 15s ::: ./do_thing.sh
|
||||
|
||||
https://github.com/Miserlou/Loop/ (Last checked: 2018-10)
|
||||
|
||||
|
||||
=head2 DIFFERENCES BETWEEN lorikeet AND GNU Parallel
|
||||
|
||||
B<lorikeet> can run jobs in parallel. It does this based on a
|
||||
dependency graph described in a file, so this is similar to B<make>.
|
||||
|
||||
https://github.com/cetra3/lorikeet (Last checked: 2018-10)
|
||||
|
||||
|
||||
=head2 Todo
|
||||
|
||||
Url for spread
|
||||
|
||||
https://github.com/john01dav/spp
|
||||
|
||||
https://github.com/amritb/with-this.git
|
||||
|
||||
https://github.com/fd0/machma Requires Go >= 1.7.
|
||||
|
||||
https://github.com/k-bx/par requires Haskell to work. This limits the
|
||||
|
|
|
@ -1229,9 +1229,11 @@ cost work and which have not been tested are, however, unlikely to be
|
|||
prioritized.
|
||||
|
||||
Running B<parallel --citation> one single time takes less than 10
|
||||
seconds, and will silence the citation notice for future runs. If that
|
||||
is too much trouble for you, why not use one of the alternatives
|
||||
instead? See a list in: B<man parallel_alternatives>.
|
||||
seconds, and will silence the citation notice for future runs. This is
|
||||
comparable to graphical tools where you have to click a checkbox
|
||||
saying "Do not show this again". But if that is too much trouble for
|
||||
you, why not use one of the alternatives instead? See a list in:
|
||||
B<man parallel_alternatives>.
|
||||
|
||||
|
||||
=head1 Ideas for new design
|
||||
|
|
2
src/sql
2
src/sql
|
@ -576,7 +576,7 @@ $Global::Initfile && unlink $Global::Initfile;
|
|||
exit ($err);
|
||||
|
||||
sub parse_options {
|
||||
$Global::version = 20180922;
|
||||
$Global::version = 20180923;
|
||||
$Global::progname = 'sql';
|
||||
|
||||
# This must be done first as this may exec myself
|
||||
|
|
|
@ -100,8 +100,9 @@ parallel -j3 --timeout 3 --retries 10 --tag ssh_a_to_b ::: $shellsplus :::
|
|||
# Remove env_parallel from .profile
|
||||
ssh nopathbash@lo 'perl -i.bak -pe s/.*env_parallel.*// .profile .bashrc'
|
||||
ssh nopathcsh@lo 'echo >> .cshrc setenv PATH /bin:/usr/bin'
|
||||
ssh nopathbash@lo 'echo $PATH'
|
||||
ssh nopathcsh@lo 'echo $PATH'
|
||||
ssh nopathbash@lo 'echo $PATH; echo 1 | parallel echo' || echo Should FAIL
|
||||
ssh nopathcsh@lo 'echo $PATH; echo 1 | parallel echo' || echo Should FAIL
|
||||
|
||||
)
|
||||
|
||||
ssh-copy-id localhost
|
||||
|
@ -132,3 +133,9 @@ echo
|
|||
echo Add to /etc/ssh/sshd_config
|
||||
echo Ciphers aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,aes256-cbc,aes192-cbc,aes128-cbc,3des-cbc
|
||||
echo KexAlgorithms diffie-hellman-group-exchange-sha256,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,curve25519-sha256@libssh.org,diffie-hellman-group1-sha1,diffie-hellman-group14-sha1,diffie-hellman-group-exchange-sha1
|
||||
echo
|
||||
echo If you get:
|
||||
echo Unable to negotiate with server port 22: no matching cipher found. Their offer: aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,arcfour,aes192-cbc,aes256-cbc,rijndael-cbc@lysator.liu.se
|
||||
echo add this to .ssh/config
|
||||
echo Ciphers +aes256-cbc
|
||||
|
||||
|
|
|
@ -20,7 +20,7 @@ export SMALLDISK
|
|||
find /tmp{/*,}/*.{par,tms,tmx} 2>/dev/null -mmin -10 | parallel rm
|
||||
|
||||
stdsort() {
|
||||
"$@" 2>&1 | sort;
|
||||
"$@" 2>&1 | LC_ALL=C sort;
|
||||
}
|
||||
export -f stdsort
|
||||
|
||||
|
@ -602,13 +602,13 @@ par_retries_replacement_string() {
|
|||
|
||||
par_tee() {
|
||||
export PARALLEL='-k --tee --pipe --tag'
|
||||
seq 1000000 | parallel 'echo {%};LANG=C wc' ::: {1..5} ::: {a..b}
|
||||
seq 300000 | parallel 'grep {1} | LANG=C wc {2}' ::: {1..5} ::: -l -c
|
||||
seq 1000000 | parallel 'echo {%};LC_ALL=C wc' ::: {1..5} ::: {a..b}
|
||||
seq 300000 | parallel 'grep {1} | LC_ALL=C wc {2}' ::: {1..5} ::: -l -c
|
||||
}
|
||||
|
||||
par_tagstring_pipe() {
|
||||
echo 'bug #50228: --pipe --tagstring broken'
|
||||
seq 3000 | parallel -j4 --pipe -N1000 -k --tagstring {%} LANG=C wc
|
||||
seq 3000 | parallel -j4 --pipe -N1000 -k --tagstring {%} LC_ALL=C wc
|
||||
}
|
||||
|
||||
par_link_files_as_only_arg() {
|
||||
|
@ -706,12 +706,12 @@ par_halt_one_job() {
|
|||
|
||||
par_blocking_redir() {
|
||||
(
|
||||
echo 'bug #52740: Bash redirection with process substitution blocks'
|
||||
echo Test stdout
|
||||
echo 3 | parallel seq > >(echo stdout;wc) 2> >(echo stderr >&2; wc >&2)
|
||||
echo Test stderr
|
||||
echo nOfilE | parallel ls > >(echo stdout;wc) 2> >(echo stderr >&2; wc >&2)
|
||||
) 2>&1 | sort
|
||||
echo 'bug #52740: Bash redirection with process substitution blocks'
|
||||
echo Test stdout
|
||||
echo 3 | parallel seq > >(echo stdout;wc) 2> >(echo stderr >&2; wc >&2)
|
||||
echo Test stderr
|
||||
echo nOfilE | parallel ls > >(echo stdout;wc) 2> >(echo stderr >&2; wc >&2)
|
||||
) 2>&1 | LC_ALL=C sort
|
||||
}
|
||||
|
||||
par_pipepart_recend_recstart() {
|
||||
|
@ -848,6 +848,12 @@ par_empty_command() {
|
|||
echo B: $b
|
||||
}
|
||||
|
||||
par_empty_input_on_stdin() {
|
||||
echo 'https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=910470'
|
||||
echo 'This should give no output'
|
||||
true | stdout parallel --shuf echo
|
||||
}
|
||||
|
||||
export -f $(compgen -A function | grep par_)
|
||||
compgen -A function | grep par_ | sort |
|
||||
compgen -A function | grep par_ | LC_ALL=C sort |
|
||||
parallel -j6 --tag -k --joblog +/tmp/jl-`basename $0` '{} 2>&1'
|
||||
|
|
|
@ -35,12 +35,12 @@ par_exit_code() {
|
|||
'/tmp/mysleep '$s \
|
||||
'parallel --halt-on-error now,fail=1 /tmp/mysleep ::: '$s \
|
||||
'parallel --halt-on-error now,done=1 /tmp/mysleep ::: '$s \
|
||||
'parallel --halt-on-error now,done=1 true ::: '$s \
|
||||
'parallel --halt-on-error now,done=1 /bin/true ::: '$s \
|
||||
'parallel --halt-on-error now,done=1 exit ::: '$s \
|
||||
'true;/tmp/mysleep '$s \
|
||||
'parallel --halt-on-error now,fail=1 "true;/tmp/mysleep" ::: '$s \
|
||||
'parallel --halt-on-error now,done=1 "true;/tmp/mysleep" ::: '$s \
|
||||
'parallel --halt-on-error now,done=1 "true;true" ::: '$s \
|
||||
'parallel --halt-on-error now,done=1 "true;/bin/true" ::: '$s \
|
||||
'parallel --halt-on-error now,done=1 "true;exit" ::: '$s
|
||||
}
|
||||
export -f runit
|
||||
|
|
|
@ -4,6 +4,28 @@
|
|||
# Each should be taking 10-30s and be possible to run in parallel
|
||||
# I.e.: No race conditions, no logins
|
||||
|
||||
par_sem_2jobs() {
|
||||
echo '### Test semaphore 2 jobs running simultaneously'
|
||||
parallel --semaphore --id 2jobs -u -j2 'echo job1a 1; sleep 4; echo job1b 3'
|
||||
sleep 0.5
|
||||
parallel --semaphore --id 2jobs -u -j2 'echo job2a 2; sleep 4; echo job2b 5'
|
||||
sleep 0.5
|
||||
parallel --semaphore --id 2jobs -u -j2 'echo job3a 4; sleep 4; echo job3b 6'
|
||||
parallel --semaphore --id 2jobs --wait
|
||||
echo done
|
||||
}
|
||||
|
||||
par_semaphore() {
|
||||
echo '### Test if parallel invoked as sem will run parallel --semaphore'
|
||||
sem --id as_sem -u -j2 'echo job1a 1; sleep 3; echo job1b 3'
|
||||
sleep 0.5
|
||||
sem --id as_sem -u -j2 'echo job2a 2; sleep 3; echo job2b 5'
|
||||
sleep 0.5
|
||||
sem --id as_sem -u -j2 'echo job3a 4; sleep 3; echo job3b 6'
|
||||
sem --id as_sem --wait
|
||||
echo done
|
||||
}
|
||||
|
||||
par_line_buffer() {
|
||||
echo "### --line-buffer"
|
||||
tmp1=$(tempfile)
|
||||
|
@ -58,7 +80,7 @@ par__pipe_tee() {
|
|||
< /dev/zero openssl enc -aes-128-ctr -K 1234 -iv 1234 2>/dev/null |
|
||||
head -c 1G;
|
||||
}
|
||||
random1G | parallel --pipe --tee cat ::: {1..3} | LANG=C wc -c
|
||||
random1G | parallel --pipe --tee cat ::: {1..3} | LC_ALL=C wc -c
|
||||
}
|
||||
|
||||
par__pipepart_tee() {
|
||||
|
@ -71,7 +93,7 @@ par__pipepart_tee() {
|
|||
}
|
||||
tmp=$(mktemp)
|
||||
random1G >$tmp
|
||||
parallel --pipepart --tee -a $tmp cat ::: {1..3} | LANG=C wc -c
|
||||
parallel --pipepart --tee -a $tmp cat ::: {1..3} | LC_ALL=C wc -c
|
||||
rm $tmp
|
||||
}
|
||||
|
||||
|
@ -126,7 +148,7 @@ _EOF
|
|||
echo
|
||||
) | perl -ne 's/\r//g;/\S/ and print' |
|
||||
# Race will cause the order to change
|
||||
sort
|
||||
LC_ALL=C sort
|
||||
}
|
||||
|
||||
par_k() {
|
||||
|
@ -148,7 +170,7 @@ par_k_linebuffer() {
|
|||
par_maxlinelen_m_I() {
|
||||
echo "### Test max line length -m -I"
|
||||
|
||||
seq 1 60000 | parallel -I :: -km -j1 echo a::b::c | sort >/tmp/114-a$$;
|
||||
seq 1 60000 | parallel -I :: -km -j1 echo a::b::c | LC_ALL=C sort >/tmp/114-a$$;
|
||||
md5sum </tmp/114-a$$;
|
||||
export CHAR=$(cat /tmp/114-a$$ | wc -c);
|
||||
export LINES=$(cat /tmp/114-a$$ | wc -l);
|
||||
|
@ -159,7 +181,7 @@ par_maxlinelen_m_I() {
|
|||
par_maxlinelen_X_I() {
|
||||
echo "### Test max line length -X -I"
|
||||
|
||||
seq 1 60000 | parallel -I :: -kX -j1 echo a::b::c | sort >/tmp/114-b$$;
|
||||
seq 1 60000 | parallel -I :: -kX -j1 echo a::b::c | LC_ALL=C sort >/tmp/114-b$$;
|
||||
md5sum </tmp/114-b$$;
|
||||
export CHAR=$(cat /tmp/114-b$$ | wc -c);
|
||||
export LINES=$(cat /tmp/114-b$$ | wc -l);
|
||||
|
@ -191,8 +213,11 @@ par_results_csv() {
|
|||
}
|
||||
|
||||
par_results_compress() {
|
||||
parallel --results /tmp/ged --compress echo ::: 1 | wc -l
|
||||
parallel --results /tmp/ged echo ::: 1 | wc -l
|
||||
tmp=$(mktemp)
|
||||
rm "$tmp"
|
||||
parallel --results $tmp --compress echo ::: 1 | wc -l
|
||||
parallel --results $tmp echo ::: 1 | wc -l
|
||||
rm -r "$tmp"
|
||||
}
|
||||
|
||||
par_kill_children_timeout() {
|
||||
|
@ -298,15 +323,6 @@ par_plus_dyn_repl() {
|
|||
parallel --plus echo '{-2,,A}' ::: "wrong" ::: "$myvar" ::: "wrong"
|
||||
}
|
||||
|
||||
par_linebuffer_tag_slow_output() {
|
||||
echo "Test output tag with mixing halflines"
|
||||
halfline() {
|
||||
perl -e '$| = 1; map { print $ARGV[0]; sleep(2); print "$_\n" } split //, "Half\n"' $1
|
||||
}
|
||||
export -f halfline
|
||||
parallel --delay 1 -j0 --tag --line-buffer halfline ::: a b
|
||||
}
|
||||
|
||||
par_retries_all_fail() {
|
||||
echo "bug #53748: -k --retries 10 + out of filehandles = blocking"
|
||||
ulimit -n 30
|
||||
|
@ -340,5 +356,5 @@ par_long_line_remote() {
|
|||
|
||||
|
||||
export -f $(compgen -A function | grep par_)
|
||||
compgen -A function | grep par_ | sort |
|
||||
compgen -A function | grep par_ | LC_ALL=C sort |
|
||||
parallel --joblog /tmp/jl-`basename $0` -j10 --tag -k '{} 2>&1'
|
||||
|
|
|
@ -62,66 +62,66 @@ par_result() {
|
|||
echo "### Test --results"
|
||||
mkdir -p /tmp/parallel_results_test
|
||||
parallel -k --results /tmp/parallel_results_test/testA echo {1} {2} ::: I II ::: III IIII
|
||||
ls /tmp/parallel_results_test/testA/*/*/*/*/*
|
||||
ls /tmp/parallel_results_test/testA/*/*/*/*/* | LC_ALL=C sort
|
||||
rm -rf /tmp/parallel_results_test/testA*
|
||||
|
||||
echo "### Test --res"
|
||||
mkdir -p /tmp/parallel_results_test
|
||||
parallel -k --res /tmp/parallel_results_test/testD echo {1} {2} ::: I II ::: III IIII
|
||||
ls /tmp/parallel_results_test/testD/*/*/*/*/*
|
||||
ls /tmp/parallel_results_test/testD/*/*/*/*/* | LC_ALL=C sort
|
||||
rm -rf /tmp/parallel_results_test/testD*
|
||||
|
||||
echo "### Test --result"
|
||||
mkdir -p /tmp/parallel_results_test
|
||||
parallel -k --result /tmp/parallel_results_test/testE echo {1} {2} ::: I II ::: III IIII
|
||||
ls /tmp/parallel_results_test/testE/*/*/*/*/*
|
||||
ls /tmp/parallel_results_test/testE/*/*/*/*/* | LC_ALL=C sort
|
||||
rm -rf /tmp/parallel_results_test/testE*
|
||||
|
||||
echo "### Test --results --header :"
|
||||
mkdir -p /tmp/parallel_results_test
|
||||
parallel -k --header : --results /tmp/parallel_results_test/testB echo {1} {2} ::: a I II ::: b III IIII
|
||||
ls /tmp/parallel_results_test/testB/*/*/*/*/*
|
||||
ls /tmp/parallel_results_test/testB/*/*/*/*/* | LC_ALL=C sort
|
||||
rm -rf /tmp/parallel_results_test/testB*
|
||||
|
||||
echo "### Test --results --header : named - a/b swapped"
|
||||
mkdir -p /tmp/parallel_results_test
|
||||
parallel -k --header : --results /tmp/parallel_results_test/testC echo {a} {b} ::: b III IIII ::: a I II
|
||||
ls /tmp/parallel_results_test/testC/*/*/*/*/*
|
||||
ls /tmp/parallel_results_test/testC/*/*/*/*/* | LC_ALL=C sort
|
||||
rm -rf /tmp/parallel_results_test/testC*
|
||||
|
||||
echo "### Test --results --header : piped"
|
||||
mkdir -p /tmp/parallel_results_test
|
||||
(echo Col; perl -e 'print "backslash\\tab\tslash/null\0eof\n"') | parallel --header : --result /tmp/parallel_results_test/testF true
|
||||
find /tmp/parallel_results_test/testF/*/*/* | sort
|
||||
find /tmp/parallel_results_test/testF/*/*/* | LC_ALL=C sort
|
||||
rm -rf /tmp/parallel_results_test/testF*
|
||||
|
||||
echo "### Test --results --header : piped - non-existing column header"
|
||||
mkdir -p /tmp/parallel_results_test
|
||||
(printf "Col1\t\n"; printf "v1\tv2\tv3\n"; perl -e 'print "backslash\\tab\tslash/null\0eof\n"') |
|
||||
parallel --header : --result /tmp/parallel_results_test/testG true
|
||||
find /tmp/parallel_results_test/testG/ | sort
|
||||
find /tmp/parallel_results_test/testG/ | LC_ALL=C sort
|
||||
rm -rf /tmp/parallel_results_test/testG*
|
||||
}
|
||||
|
||||
par_result_replace() {
|
||||
echo '### bug #49983: --results with {1}'
|
||||
parallel --results /tmp/par_{}_49983 -k echo ::: foo bar baz
|
||||
find /tmp/par_*_49983 | sort
|
||||
find /tmp/par_*_49983 | LC_ALL=C sort
|
||||
rm -rf /tmp/par_*_49983
|
||||
parallel --results /tmp/par_{}_49983 -k echo ::: foo bar baz ::: A B C
|
||||
find /tmp/par_*_49983 | sort
|
||||
find /tmp/par_*_49983 | LC_ALL=C sort
|
||||
rm -rf /tmp/par_*_49983
|
||||
parallel --results /tmp/par_{1}-{2}_49983 -k echo ::: foo bar baz ::: A B C
|
||||
find /tmp/par_*_49983 | sort
|
||||
find /tmp/par_*_49983 | LC_ALL=C sort
|
||||
rm -rf /tmp/par_*_49983
|
||||
parallel --results /tmp/par__49983 -k echo ::: foo bar baz ::: A B C
|
||||
find /tmp/par_*_49983 | sort
|
||||
find /tmp/par_*_49983 | LC_ALL=C sort
|
||||
rm -rf /tmp/par_*_49983
|
||||
parallel --results /tmp/par__49983 --header : -k echo ::: foo bar baz ::: A B C
|
||||
find /tmp/par_*_49983 | sort
|
||||
find /tmp/par_*_49983 | LC_ALL=C sort
|
||||
rm -rf /tmp/par_*_49983
|
||||
parallel --results /tmp/par__49983-{}/ --header : -k echo ::: foo bar baz ::: A B C
|
||||
find /tmp/par_*_49983-* | sort
|
||||
find /tmp/par_*_49983-* | LC_ALL=C sort
|
||||
rm -rf /tmp/par_*_49983-*
|
||||
}
|
||||
|
||||
|
@ -258,7 +258,11 @@ par_pipe_compress_blocks() {
|
|||
seq 3 | parallel -k -j2 --compress -N1 -L1 --pipe cat
|
||||
}
|
||||
|
||||
par_too_long_line_X() {
|
||||
echo 'bug #54869: Long lines break'
|
||||
seq 3000 | parallel -Xj1 'echo {} {} {} {} {} {} {} {} {} {} {} {} {} {} | wc'
|
||||
}
|
||||
|
||||
export -f $(compgen -A function | grep par_)
|
||||
compgen -A function | grep par_ | sort |
|
||||
compgen -A function | grep par_ | LC_ALL=C sort |
|
||||
parallel -j6 --tag -k --joblog +/tmp/jl-`basename $0` '{} 2>&1'
|
||||
|
|
|
@ -10,7 +10,7 @@ par_sigterm() {
|
|||
A=$!
|
||||
sleep 29; kill -TERM $A
|
||||
wait
|
||||
sort /tmp/parallel$$
|
||||
LC_ALL=C sort /tmp/parallel$$
|
||||
rm /tmp/parallel$$
|
||||
}
|
||||
|
||||
|
|
|
@ -186,28 +186,6 @@ newlines"' ::: a b c d e | sort
|
|||
) | perl -pe 's/\0/<null>/g;s/\d+/./g'
|
||||
}
|
||||
|
||||
par_parcat_mixing() {
|
||||
echo 'parcat output should mix: a b a b'
|
||||
mktmpfifo() {
|
||||
tmp=$(tempfile)
|
||||
rm $tmp
|
||||
mkfifo $tmp
|
||||
echo $tmp
|
||||
}
|
||||
slow_output() {
|
||||
string=$1
|
||||
perl -e 'print "'$string'"x9000,"start\n"'
|
||||
sleep 6
|
||||
perl -e 'print "'$string'"x9000,"end\n"'
|
||||
}
|
||||
tmp1=$(mktmpfifo)
|
||||
tmp2=$(mktmpfifo)
|
||||
slow_output a > $tmp1 &
|
||||
sleep 3
|
||||
slow_output b > $tmp2 &
|
||||
parcat $tmp1 $tmp2 | tr -s ab
|
||||
}
|
||||
|
||||
par_delay_human_readable() {
|
||||
# Test that you can use d h m s in --delay
|
||||
parallel --delay 0.1s echo ::: a b c
|
||||
|
@ -269,4 +247,4 @@ par_nice() {
|
|||
|
||||
|
||||
export -f $(compgen -A function | grep par_)
|
||||
compgen -A function | grep par_ | sort | parallel -j6 --tag -k '{} 2>&1'
|
||||
compgen -A function | grep par_ | LC_ALL=C sort | parallel -j6 --tag -k '{} 2>&1'
|
||||
|
|
|
@ -29,6 +29,28 @@
|
|||
echo 1=OK $?' | grep -v '\[1\]' | grep -v 'SHA256'
|
||||
#}
|
||||
|
||||
par_parcat_mixing() {
|
||||
echo 'parcat output should mix: a b a b'
|
||||
mktmpfifo() {
|
||||
tmp=$(tempfile)
|
||||
rm $tmp
|
||||
mkfifo $tmp
|
||||
echo $tmp
|
||||
}
|
||||
slow_output() {
|
||||
string=$1
|
||||
perl -e 'print "'$string'"x9000,"start\n"'
|
||||
sleep 2
|
||||
perl -e 'print "'$string'"x9000,"end\n"'
|
||||
}
|
||||
tmp1=$(mktmpfifo)
|
||||
tmp2=$(mktmpfifo)
|
||||
slow_output a > $tmp1 &
|
||||
sleep 1
|
||||
slow_output b > $tmp2 &
|
||||
parcat $tmp1 $tmp2 | tr -s ab
|
||||
}
|
||||
|
||||
par_testhalt() {
|
||||
testhalt_false() {
|
||||
echo '### testhalt --halt '$1;
|
||||
|
@ -94,6 +116,14 @@ par_tmux_termination() {
|
|||
stdout parallel --timeout 120 doit ::: 1
|
||||
}
|
||||
|
||||
par_linebuffer_tag_slow_output() {
|
||||
echo "Test output tag with mixing halflines"
|
||||
halfline() {
|
||||
perl -e '$| = 1; map { print $ARGV[0]; sleep(1); print "$_\n" } split //, "Half\n"' $1
|
||||
}
|
||||
export -f halfline
|
||||
parallel --delay 0.5 -j0 --tag --line-buffer halfline ::: a b
|
||||
}
|
||||
|
||||
export -f $(compgen -A function | grep par_)
|
||||
compgen -A function | grep par_ | sort |
|
||||
|
|
|
@ -147,6 +147,6 @@ par_no_table() {
|
|||
export -f $(compgen -A function | egrep 'p_|par_')
|
||||
# Tested that -j0 in parallel is fastest (up to 15 jobs)
|
||||
# more than 3 jobs: sqlite locks
|
||||
compgen -A function | grep par_ | sort |
|
||||
compgen -A function | grep par_ | LC_ALL=C sort |
|
||||
stdout parallel --timeout 200 -vj3 -k --tag --joblog /tmp/jl-`basename $0` p_wrapper \
|
||||
:::: - ::: \$MYSQL \$PG \$SQLITE
|
||||
|
|
|
@ -114,8 +114,8 @@ echo '### Test --trc "/tmp/./--- /A" "/tmp/./ ---/B"'
|
|||
touch -- '/tmp/./--- /A' '/tmp/ ---/B';
|
||||
rm -f ./---?/A.a ./?---/B.a;
|
||||
parallel --trc {=s:.*/./::=}.a -S csh@lo,sh@lo touch ./{=s:.*/./::=}.a ::: '/tmp/./--- /A' '/tmp/./ ---/B';
|
||||
ls ./---?/A.a ./?---/B.a;
|
||||
parallel --nonall -k -S csh@lo,sh@lo 'ls ./?--- ./---? || echo OK';
|
||||
ls ./---?/A.a ./?---/B.a | LC_ALL=C sort;
|
||||
parallel --nonall -k -S csh@lo,sh@lo 'ls ./?--- ./---? || echo OK' | LC_ALL=C sort;
|
||||
|
||||
echo '### bug #46519: --onall ignores --transfer'
|
||||
touch bug46519.{a,b,c}; rm -f bug46519.?? bug46519.???;
|
||||
|
|
|
@ -178,7 +178,7 @@ par_csh_man() {
|
|||
_EOF
|
||||
)
|
||||
# Sometimes the order f*cks up
|
||||
stdout ssh csh@lo "$myscript" | sort
|
||||
stdout ssh csh@lo "$myscript" | LC_ALL=C sort
|
||||
}
|
||||
|
||||
par_dash_man() {
|
||||
|
@ -243,6 +243,7 @@ par_fish_man() {
|
|||
myscript=$(cat <<'_EOF'
|
||||
echo "### From man env_parallel"
|
||||
|
||||
env_parallel --session
|
||||
alias myecho='echo aliases with \= \& \" \!'" \'"
|
||||
myecho work
|
||||
env_parallel myecho ::: work
|
||||
|
@ -545,8 +546,12 @@ par_zsh_man() {
|
|||
|
||||
alias multiline='echo multiline
|
||||
echo aliases with \= \& \" \!'" \'"
|
||||
# eval is needed make aliases work
|
||||
eval multiline work
|
||||
# Zsh-5.4.2 requires additional quoting when multiline
|
||||
# Looks like a bug
|
||||
alias multiline='echo multiline
|
||||
echo aliases with \\= \\& \\" \\!'" \\\'"
|
||||
# eval is needed make aliases work
|
||||
env_parallel multiline ::: work
|
||||
env_parallel -S server multiline ::: work
|
||||
env_parallel --env multiline multiline ::: work
|
||||
|
@ -792,7 +797,8 @@ par_fish_underscore() {
|
|||
end
|
||||
set not_copied_var "BAD";
|
||||
set not_copied_array BAD BAD BAD;
|
||||
env_parallel --record-env;
|
||||
# env_parallel --record-env;
|
||||
env_parallel --session;
|
||||
alias myecho="echo \$myvar aliases";
|
||||
function myfunc
|
||||
myecho $myarray functions $argv
|
||||
|
@ -1103,7 +1109,7 @@ par_ash_funky() {
|
|||
_EOF
|
||||
)
|
||||
# Order is often different. Dunno why. So sort
|
||||
ssh ash@lo "$myscript" 2>&1 | sort
|
||||
ssh ash@lo "$myscript" 2>&1 | LC_ALL=C sort
|
||||
}
|
||||
|
||||
par_bash_funky() {
|
||||
|
@ -1136,7 +1142,7 @@ par_bash_funky() {
|
|||
_EOF
|
||||
)
|
||||
# Order is often different. Dunno why. So sort
|
||||
ssh bash@lo "$myscript" 2>&1 | sort
|
||||
ssh bash@lo "$myscript" 2>&1 | LC_ALL=C sort
|
||||
}
|
||||
|
||||
par_csh_funky() {
|
||||
|
@ -1201,11 +1207,12 @@ par_dash_funky() {
|
|||
_EOF
|
||||
)
|
||||
# Order is often different. Dunno why. So sort
|
||||
ssh dash@lo "$myscript" 2>&1 | sort
|
||||
ssh dash@lo "$myscript" 2>&1 | LC_ALL=C sort
|
||||
}
|
||||
|
||||
par_fish_funky() {
|
||||
myscript=$(cat <<'_EOF'
|
||||
env_parallel --session
|
||||
set myvar "myvar works"
|
||||
setenv myenvvar "myenvvar works"
|
||||
|
||||
|
@ -1277,7 +1284,7 @@ par_ksh_funky() {
|
|||
_EOF
|
||||
)
|
||||
# Order is often different. Dunno why. So sort
|
||||
ssh ksh@lo "$myscript" 2>&1 | sort
|
||||
ssh ksh@lo "$myscript" 2>&1 | LC_ALL=C sort
|
||||
}
|
||||
|
||||
par_mksh_funky() {
|
||||
|
@ -1310,7 +1317,7 @@ par_mksh_funky() {
|
|||
_EOF
|
||||
)
|
||||
# Order is often different. Dunno why. So sort
|
||||
ssh mksh@lo "$myscript" 2>&1 | sort
|
||||
ssh mksh@lo "$myscript" 2>&1 | LC_ALL=C sort
|
||||
}
|
||||
|
||||
par_sh_funky() {
|
||||
|
@ -1343,13 +1350,13 @@ par_sh_funky() {
|
|||
_EOF
|
||||
)
|
||||
# Order is often different. Dunno why. So sort
|
||||
ssh sh@lo "$myscript" 2>&1 | sort
|
||||
ssh sh@lo "$myscript" 2>&1 | LC_ALL=C sort
|
||||
}
|
||||
|
||||
par_tcsh_funky() {
|
||||
myscript=$(cat <<'_EOF'
|
||||
# funky breaks with different LANG
|
||||
setenv LANG C
|
||||
# funky breaks with different LC_ALL
|
||||
setenv LC_ALL C
|
||||
set myvar = "myvar works"
|
||||
set funky = "`perl -e 'print pack q(c*), 2..255'`"
|
||||
set myarray = ('' 'array_val2' '3' '' '5' ' space 6 ')
|
||||
|
@ -1378,7 +1385,7 @@ par_tcsh_funky() {
|
|||
_EOF
|
||||
)
|
||||
# Order is often different. Dunno why. So sort
|
||||
ssh tcsh@lo "$myscript" 2>&1 | sort
|
||||
ssh tcsh@lo "$myscript" 2>&1 | LC_ALL=C sort
|
||||
}
|
||||
|
||||
par_zsh_funky() {
|
||||
|
@ -1387,7 +1394,8 @@ par_zsh_funky() {
|
|||
. `which env_parallel.zsh`;
|
||||
|
||||
myvar="myvar works"
|
||||
funky=$(perl -e "print pack \"c*\", 1..255")
|
||||
# Zsh-5.4.2 fails for ascii 167
|
||||
funky=$(perl -e "print pack \"c*\", 1..166,168..255")
|
||||
myarray=("" array_val2 3 "" 5 " space 6 ")
|
||||
declare -A assocarr
|
||||
assocarr[a]=assoc_val_a
|
||||
|
@ -1409,7 +1417,7 @@ par_zsh_funky() {
|
|||
_EOF
|
||||
)
|
||||
# Order is often different. Dunno why. So sort
|
||||
ssh zsh@lo "$myscript" 2>&1 | sort
|
||||
ssh zsh@lo "$myscript" 2>&1 | LC_ALL=C sort
|
||||
}
|
||||
|
||||
par_ash_env_parallel() {
|
||||
|
@ -1434,7 +1442,7 @@ par_ash_env_parallel() {
|
|||
_EOF
|
||||
)
|
||||
# Order is often different. Dunno why. So sort
|
||||
ssh ash@lo "$myscript" 2>&1 | sort
|
||||
ssh ash@lo "$myscript" 2>&1 | LC_ALL=C sort
|
||||
}
|
||||
|
||||
par_bash_env_parallel() {
|
||||
|
@ -1459,7 +1467,7 @@ par_bash_env_parallel() {
|
|||
_EOF
|
||||
)
|
||||
# Order is often different. Dunno why. So sort
|
||||
ssh bash@lo "$myscript" 2>&1 | sort
|
||||
ssh bash@lo "$myscript" 2>&1 | LC_ALL=C sort
|
||||
}
|
||||
|
||||
par_csh_env_parallel() {
|
||||
|
@ -1496,7 +1504,7 @@ par_dash_env_parallel() {
|
|||
_EOF
|
||||
)
|
||||
# Order is often different. Dunno why. So sort
|
||||
ssh dash@lo "$myscript" 2>&1 | sort
|
||||
ssh dash@lo "$myscript" 2>&1 | LC_ALL=C sort
|
||||
}
|
||||
|
||||
par_fish_env_parallel() {
|
||||
|
@ -1534,7 +1542,7 @@ par_ksh_env_parallel() {
|
|||
_EOF
|
||||
)
|
||||
# Order is often different. Dunno why. So sort
|
||||
ssh ksh@lo "$myscript" 2>&1 | sort
|
||||
ssh ksh@lo "$myscript" 2>&1 | LC_ALL=C sort
|
||||
}
|
||||
|
||||
par_mksh_env_parallel() {
|
||||
|
@ -1559,7 +1567,7 @@ par_mksh_env_parallel() {
|
|||
_EOF
|
||||
)
|
||||
# Order is often different. Dunno why. So sort
|
||||
ssh mksh@lo "$myscript" 2>&1 | sort
|
||||
ssh mksh@lo "$myscript" 2>&1 | LC_ALL=C sort
|
||||
}
|
||||
|
||||
par_sh_env_parallel() {
|
||||
|
@ -1584,7 +1592,7 @@ par_sh_env_parallel() {
|
|||
_EOF
|
||||
)
|
||||
# Order is often different. Dunno why. So sort
|
||||
ssh sh@lo "$myscript" 2>&1 | sort
|
||||
ssh sh@lo "$myscript" 2>&1 | LC_ALL=C sort
|
||||
}
|
||||
|
||||
par_tcsh_env_parallel() {
|
||||
|
@ -1597,7 +1605,7 @@ par_tcsh_env_parallel() {
|
|||
_EOF
|
||||
)
|
||||
# Order is often different. Dunno why. So sort
|
||||
ssh tcsh@lo "$myscript" 2>&1 | sort
|
||||
ssh tcsh@lo "$myscript" 2>&1 | LC_ALL=C sort
|
||||
}
|
||||
|
||||
par_zsh_env_parallel() {
|
||||
|
@ -1621,7 +1629,7 @@ par_zsh_env_parallel() {
|
|||
_EOF
|
||||
)
|
||||
# Order is often different. Dunno why. So sort
|
||||
ssh zsh@lo "$myscript" 2>&1 | sort
|
||||
ssh zsh@lo "$myscript" 2>&1 | LC_ALL=C sort
|
||||
}
|
||||
|
||||
par_ash_environment_too_big() {
|
||||
|
@ -2595,7 +2603,7 @@ par_bash_parset() {
|
|||
echo "${arr1[0]} ${arr1[1]} ${arr1[2]}"
|
||||
env_parset comma3,comma2,comma1 myfun ::: baz bar foo
|
||||
echo "$comma1 $comma2 $comma3"
|
||||
env_parset 'space3 space2 space1' myfum ::: baz bar foo
|
||||
env_parset 'space3 space2 space1' myfun ::: baz bar foo
|
||||
echo "$space1 $space2 $space3"
|
||||
env_parset 'newline3 newline2 newline1' 'echo "$mynewline";seq' ::: 3 2 1
|
||||
echo "$newline1"
|
||||
|
@ -2724,7 +2732,7 @@ par_ksh_parset() {
|
|||
echo "${arr1[0]} ${arr1[1]} ${arr1[2]}"
|
||||
env_parset comma3,comma2,comma1 myfun ::: baz bar foo
|
||||
echo "$comma1 $comma2 $comma3"
|
||||
env_parset 'space3 space2 space1' myfum ::: baz bar foo
|
||||
env_parset 'space3 space2 space1' myfun ::: baz bar foo
|
||||
echo "$space1 $space2 $space3"
|
||||
env_parset 'newline3 newline2 newline1' 'echo "$mynewline";seq' ::: 3 2 1
|
||||
echo "$newline1"
|
||||
|
@ -2771,6 +2779,8 @@ par_mksh_parset() {
|
|||
echo ${myarray[4]} ${myarray[5]} ${myarray[6]}
|
||||
|
||||
echo '### env_parset'
|
||||
# bug in mksh: Alias must be set before
|
||||
alias myecho='echo myecho "$myvar" "${myarr[1]}"'
|
||||
myfun() {
|
||||
myecho myfun "$@";
|
||||
}
|
||||
|
@ -2782,7 +2792,7 @@ par_mksh_parset() {
|
|||
echo "${arr1[0]} ${arr1[1]} ${arr1[2]}"
|
||||
env_parset comma3,comma2,comma1 myfun ::: baz bar foo
|
||||
echo "$comma1 $comma2 $comma3"
|
||||
env_parset 'space3 space2 space1' myfum ::: baz bar foo
|
||||
env_parset 'space3 space2 space1' myfun ::: baz bar foo
|
||||
echo "$space1 $space2 $space3"
|
||||
env_parset 'newline3 newline2 newline1' 'echo "$mynewline";seq' ::: 3 2 1
|
||||
echo "$newline1"
|
||||
|
@ -3256,11 +3266,14 @@ _EOF
|
|||
}
|
||||
|
||||
export -f $(compgen -A function | grep par_)
|
||||
|
||||
# --retries 2 due to ssh_exchange_identification: read: Connection reset by peer
|
||||
|
||||
#compgen -A function | grep par_ | sort | parallel --delay $D -j$P --tag -k '{} 2>&1'
|
||||
#compgen -A function | grep par_ | sort |
|
||||
compgen -A function | grep par_ | sort -r |
|
||||
compgen -A function | grep par_ | LC_ALL=C sort -r |
|
||||
# parallel --joblog /tmp/jl-`basename $0` --delay $D -j$P --tag -k '{} 2>&1'
|
||||
parallel --joblog /tmp/jl-`basename $0` -j200% --tag -k '{} 2>&1' |
|
||||
parallel --joblog /tmp/jl-`basename $0` -j200% --retries 2 --tag -k '{} 2>&1' |
|
||||
perl -pe 's/line \d\d\d:/line XXX:/;
|
||||
s/\d+ >= \d+/XXX >= XXX/;
|
||||
s/sh:? \d?\d\d:/sh: XXX:/;
|
||||
|
|
|
@ -7,7 +7,8 @@ par_path_remote_bash() {
|
|||
rm -rf /tmp/parallel
|
||||
cp /usr/local/bin/parallel /tmp
|
||||
|
||||
cat <<'_EOS' | stdout ssh nopathbash@lo -T | grep -Ev 'For upgrade information, please visit:|updates are security updates|packages can be updated|System restart required|Welcome to|https://|Ubuntu|http://|from 13 to 17 years|mentor:|New release|do-release-upgrade|public clouds|\s*^$' | uniq
|
||||
cat <<'_EOS' | stdout ssh nopathbash@lo -T | perl -ne '/logged in/..0 and print' | uniq
|
||||
echo logged in
|
||||
echo BASH Path before: $PATH with no parallel
|
||||
parallel echo ::: 1
|
||||
# Race condition stderr/stdout
|
||||
|
@ -28,7 +29,8 @@ par_path_remote_csh() {
|
|||
rm -rf /tmp/parallel
|
||||
cp /usr/local/bin/parallel /tmp
|
||||
|
||||
cat <<'_EOS' | stdout ssh nopathcsh@lo -T | grep -Ev 'For upgrade information, please visit:|updates are security updates|packages can be updated|System restart required|Welcome to|https://|Ubuntu|http://|from 13 to 17 years|mentor:|New release|do-release-upgrade|public clouds|\s*^$' | uniq
|
||||
cat <<'_EOS' | stdout ssh nopathcsh@lo -T | perl -ne '/logged in/..0 and print' | uniq
|
||||
echo logged in
|
||||
echo CSH Path before: $PATH with no parallel
|
||||
which parallel >& /dev/stdout
|
||||
echo '^^^^^^^^ Not found is OK'
|
||||
|
@ -155,6 +157,6 @@ par_retries_bug_from_2010() {
|
|||
|
||||
export -f $(compgen -A function | grep par_)
|
||||
#compgen -A function | grep par_ | sort | parallel --delay $D -j$P --tag -k '{} 2>&1'
|
||||
compgen -A function | grep par_ | sort |
|
||||
compgen -A function | grep par_ | LC_ALL=C sort |
|
||||
parallel --joblog /tmp/jl-`basename $0` --delay 0.1 -j10 --tag -k '{} 2>&1' |
|
||||
grep -Ev 'microk8s|smart connected IoT'
|
||||
|
|
|
@ -147,9 +147,9 @@ par_propagate_env() {
|
|||
par_env_parallel_big_env() {
|
||||
echo '### bug #54128: command too long when exporting big env'
|
||||
. `which env_parallel.bash`
|
||||
a=`rand | head -c 75000`
|
||||
a=`rand | perl -pe 's/\0//g'| head -c 75000`
|
||||
env_parallel -Slo echo should not ::: fail 2>&1
|
||||
a=`rand | head -c 76000`
|
||||
a=`rand | perl -pe 's/\0//g'| head -c 80000`
|
||||
env_parallel -Slo echo should ::: fail 2>/dev/null || echo OK
|
||||
}
|
||||
|
||||
|
|
|
@ -9,7 +9,7 @@ PARALLEL=-j8
|
|||
export PARALLEL
|
||||
|
||||
stdsort() {
|
||||
"$@" 2>&1 | sort;
|
||||
"$@" 2>&1 | LC_ALL=C sort;
|
||||
}
|
||||
export -f stdsort
|
||||
|
||||
|
|
|
@ -8,22 +8,22 @@ cd $TMP/
|
|||
echo echo test of cat pipe sh | parallel -j 50 2>&1
|
||||
find . -name '*.jpg' | parallel -j +0 convert -geometry 120 {} {//}/thumb_{/}
|
||||
|
||||
ls | parallel ls | sort
|
||||
ls | parallel echo ls | sort
|
||||
ls | parallel -j 1 echo ls | sort
|
||||
find -type f | parallel diff {} a/foo ">"{}.diff | sort
|
||||
ls | parallel -v --group "ls {}|wc;echo {}" | sort
|
||||
ls | parallel ls | LC_ALL=C sort
|
||||
ls | parallel echo ls | LC_ALL=C sort
|
||||
ls | parallel -j 1 echo ls | LC_ALL=C sort
|
||||
find -type f | parallel diff {} a/foo ">"{}.diff | LC_ALL=C sort
|
||||
ls | parallel -v --group "ls {}|wc;echo {}" | LC_ALL=C sort
|
||||
echo '### Check that we can have more input than max procs (-j 0) - touch'
|
||||
perl -e 'print map {"more_than_5000-$_\n" } (4000..9999)' | parallel -vj 0 touch | sort | tail
|
||||
perl -e 'print map {"more_than_5000-$_\n" } (4000..9999)' | parallel -vj 0 touch | LC_ALL=C sort | tail
|
||||
echo '### rm'
|
||||
perl -e 'print map {"more_than_5000-$_\n" } (4000..9900)' | parallel -j 0 rm | sort
|
||||
perl -e 'print map {"more_than_5000-$_\n" } (4000..9900)' | parallel -j 0 rm | LC_ALL=C sort
|
||||
cat <<'EOF' | sed -e 's/;$/; /;s/$SERVER1/'$SERVER1'/;s/$SERVER2/'$SERVER2'/' | stdout parallel -vj0 -k --joblog /tmp/jl-`basename $0` -L1 | egrep -v 'parallel: Warning: Starting|parallel: Warning: Consider'
|
||||
ls | parallel -j500 'sleep 1; find {} -type f | perl -ne "END{print $..\" "{=$_=pQ($_)=}"\n\"}"' | sort
|
||||
ls | parallel --group -j500 'sleep 1; find {} -type f | perl -ne "END{print $..\" "{=$_=pQ($_)=}"\n\"}"' | sort
|
||||
find . -type f | parallel --group "perl -ne '/^\\S+\\s+\\S+$/ and print \$ARGV,\"\\n\"'" | sort
|
||||
find . -type f | parallel -v --group "perl -ne '/^\\S+\\s+\\S+$/ and print \$ARGV,\"\\n\"'" | sort
|
||||
find . -type f | parallel -q --group perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\n"' | sort
|
||||
find . -type f | parallel -qv --group perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\n"' | sort
|
||||
ls | parallel -j500 'sleep 1; find {} -type f | perl -ne "END{print $..\" "{=$_=pQ($_)=}"\n\"}"' | LC_ALL=C sort
|
||||
ls | parallel --group -j500 'sleep 1; find {} -type f | perl -ne "END{print $..\" "{=$_=pQ($_)=}"\n\"}"' | LC_ALL=C sort
|
||||
find . -type f | parallel --group "perl -ne '/^\\S+\\s+\\S+$/ and print \$ARGV,\"\\n\"'" | LC_ALL=C sort
|
||||
find . -type f | parallel -v --group "perl -ne '/^\\S+\\s+\\S+$/ and print \$ARGV,\"\\n\"'" | LC_ALL=C sort
|
||||
find . -type f | parallel -q --group perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\n"' | LC_ALL=C sort
|
||||
find . -type f | parallel -qv --group perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\n"' | LC_ALL=C sort
|
||||
EOF
|
||||
|
||||
cd - >/dev/null
|
||||
|
|
|
@ -50,7 +50,7 @@ echo "bug #37956: --colsep does not default to '\t' as specified in the man page
|
|||
printf "A\tB\n1\tone" | parallel --header : echo {B} {A}
|
||||
|
||||
echo '### Test --tollef'
|
||||
stdout parallel -k --tollef echo -- 1 2 3 ::: a b c | sort
|
||||
stdout parallel -k --tollef echo -- 1 2 3 ::: a b c | LC_ALL=C sort
|
||||
|
||||
echo '### Test --tollef --gnu'
|
||||
stdout parallel -k --tollef --gnu echo ::: 1 2 3 -- a b c
|
||||
|
|
|
@ -52,9 +52,9 @@ test_chr_on_sshlogin() {
|
|||
stdout parallel -j4 -k -I // --arg-sep _ -0 V=// V2=V2=// LANG=C parallel -k -j1 $onall -S $sshlogin --env V,V2,LANG echo \''"{}$V$V2"'\' ::: {#} {#} {#} {#} |
|
||||
sort |
|
||||
uniq -c |
|
||||
grep -v ' 4 '|
|
||||
grep -v xauth |
|
||||
grep -v X11
|
||||
grep -av ' 4 '|
|
||||
grep -av xauth |
|
||||
grep -av X11
|
||||
}
|
||||
export -f test_chr_on_sshlogin
|
||||
|
||||
|
@ -87,7 +87,7 @@ par_env_160() {
|
|||
par_env_160_onall() {
|
||||
echo '### Test --env for \160 - which kills csh - single and double --onall - no output is good'
|
||||
test_chr_on_sshlogin 160 :,1/lo,1/tcsh@lo --onall |
|
||||
grep -v ' 3 '
|
||||
grep -a -v ' 3 '
|
||||
}
|
||||
|
||||
export -f $(compgen -A function | grep par_)
|
||||
|
|
|
@ -290,4 +290,4 @@ export -f $(compgen -A function | grep par_)
|
|||
# Tested with -j1..8
|
||||
# -j6 was fastest
|
||||
#compgen -A function | grep par_ | sort | parallel -j$P --tag -k '{} 2>&1'
|
||||
compgen -A function | grep par_ | sort | parallel -j6 --tag -k '{} 2>&1'
|
||||
compgen -A function | grep par_ | LC_ALL=C sort | parallel -j6 --tag -k '{} 2>&1'
|
||||
|
|
|
@ -28,7 +28,7 @@ echo '### This causes problems if we kill child processes';
|
|||
|
||||
echo '### This causes problems if we kill child processes (II)';
|
||||
# 2>/dev/null to avoid parallel: Warning: Starting 45 processes took > 2 sec.
|
||||
seq 1 40 | parallel -j 0 seq 1 10 '| parallel -j 3 echo' 2>/dev/null | sort | md5sum
|
||||
seq 1 40 | parallel -j 0 seq 1 10 '| parallel -j 3 echo' 2>/dev/null | LC_ALL=C sort | md5sum
|
||||
|
||||
echo '### Test -m';
|
||||
(echo foo;echo bar) | parallel -j1 -m echo 1{}2{}3 A{}B{}C
|
||||
|
|
|
@ -1,5 +1,23 @@
|
|||
#!/bin/bash
|
||||
|
||||
get_tmux() {
|
||||
# To install tmux in different version run this
|
||||
cd /tmp
|
||||
doit() {
|
||||
wget https://github.com/tmux/tmux/archive/$1.tar.gz
|
||||
tar xvf $1.tar.gz
|
||||
cd tmux-$1
|
||||
./autogen.sh
|
||||
./configure --prefix /tmp/tmux/$1
|
||||
make
|
||||
make install
|
||||
sudo cp /tmp/tmux/$1/bin/tmux /usr/local/bin/tmux-$1
|
||||
}
|
||||
|
||||
. `which env_parallel.bash`
|
||||
seq 1.8 0.1 2.9 | env_parallel --tag --lb doit
|
||||
}
|
||||
|
||||
par_tmux_filter() {
|
||||
# /tmp/parallel-local7/tmsOU2Ig
|
||||
perl -pe 's:(/tmp\S+/tms).....:$1XXXXX:;s/ p\d+/pID/;'
|
||||
|
|
|
@ -21,7 +21,7 @@ MASTER=$(parallel -j0 --delay 0.1 --halt now,success=1 $PARALLEL_SSH {} echo {}
|
|||
::: {ubuntu,suse,debian}.polarhome.com)
|
||||
|
||||
parallel -j0 --delay 0.1 --retries $RETRIES \
|
||||
rsync -a /usr/local/bin/{parallel,env_parallel,env_parallel.*[^~],parcat} \
|
||||
rsync -L /usr/local/bin/{parallel,env_parallel,env_parallel.*[^~],parcat,stdout} \
|
||||
::: $MASTER:bin/
|
||||
|
||||
doit() {
|
||||
|
@ -32,7 +32,8 @@ doit() {
|
|||
export RETRIES
|
||||
export MAXPROC
|
||||
export RET_TIME_K="-k --retries $RETRIES --timeout $MAXTIME"
|
||||
|
||||
LC_ALL=C
|
||||
|
||||
echo MAXTIME=$MAXTIME RETRIES=$RETRIES MAXPROC=$MAXPROC MAXINNERPROC=$MAXINNERPROC
|
||||
|
||||
echo '### Filter out working servers'
|
||||
|
@ -42,7 +43,6 @@ doit() {
|
|||
POLAR="`bin/parallel -j0 -k --timeout 10 $PARALLEL_SSH {} echo {} ::: $P`"
|
||||
diff <(echo "$POLAR_ALL") <(echo "$POLAR")
|
||||
S_POLAR=`bin/parallel -j0 $RET_TIME_K echo -S 1/{} ::: $POLAR`
|
||||
#" -S '1/sshminix minix'"
|
||||
|
||||
sshwithpass() {
|
||||
# Minix requires sshpass. The other servers will use ssh-keys
|
||||
|
@ -61,8 +61,13 @@ doit() {
|
|||
export -f copy
|
||||
|
||||
par_nonall() {
|
||||
sshwithpass() {
|
||||
# Minix requires sshpass. The other servers will use ssh-keys
|
||||
sshpass -f ~/.ssh/minix.password ssh -oLogLevel=quiet "$@"
|
||||
}
|
||||
export -f sshwithpass
|
||||
parallel -j$MAXPROC $RET_TIME_K --delay 0.1 --tag \
|
||||
--nonall $S_POLAR -S "1/sshminix minix" --argsep ,:- \
|
||||
--nonall $S_POLAR -S "1/sshwithpass minix" --argsep ,:- \
|
||||
'source setupenv >&/dev/null || . `pwd`/setupenv;' "$@"
|
||||
}
|
||||
export -f par_nonall
|
||||
|
|
|
@ -80,6 +80,7 @@ perl -ne '$/="\n\n"; /^Output/../^[^O]\S/ and next; /^ / and print;' ../../src/
|
|||
s/cat: input_file: No such file or directory\n//;
|
||||
s{rsync: link_stat ".*/home/parallel/input_file.out" .*\n}{};
|
||||
s{rsync error: some files/attrs were not transferred .*\n}{};
|
||||
s{.* GtkDialog .*\n}{};
|
||||
' |
|
||||
uniq
|
||||
# 3+3 .par files (from --files), 1 .tms-file from tmux attach
|
||||
|
|
|
@ -8,24 +8,6 @@ echo '### Test mutex. This should not mix output';
|
|||
parallel --semaphore --id mutex --wait;
|
||||
echo done
|
||||
|
||||
echo '### Test semaphore 2 jobs running simultaneously'
|
||||
parallel --semaphore --id 2jobs -u -j2 'echo job1a 1; sleep 1; echo job1b 3';
|
||||
sleep 0.2;
|
||||
parallel --semaphore --id 2jobs -u -j2 'echo job2a 2; sleep 1; echo job2b 5';
|
||||
sleep 0.2;
|
||||
parallel --semaphore --id 2jobs -u -j2 'echo job3a 4; sleep 1; echo job3b 6';
|
||||
parallel --semaphore --id 2jobs --wait;
|
||||
echo done
|
||||
|
||||
echo '### Test if parallel invoked as sem will run parallel --semaphore'
|
||||
sem --id as_sem -u -j2 'echo job1a 1; sleep 1; echo job1b 3';
|
||||
sleep 0.2;
|
||||
sem --id as_sem -u -j2 'echo job2a 2; sleep 1; echo job2b 5';
|
||||
sleep 0.2;
|
||||
sem --id as_sem -u -j2 'echo job3a 4; sleep 1; echo job3b 6';
|
||||
sem --id as_sem --wait;
|
||||
echo done
|
||||
|
||||
echo '### Test similar example as from man page - run 2 jobs simultaneously'
|
||||
echo 'Expect done: 1 2 5 3 4'
|
||||
for i in 5 1 2 3 4 ; do
|
||||
|
|
|
@ -92,7 +92,7 @@ par_newline_on_commandline() {
|
|||
|
||||
par_showtables() {
|
||||
echo "### Test --show-tables"
|
||||
sql --show-tables :oraunittest | sort
|
||||
sql --show-tables :oraunittest | LC_ALL=C sort
|
||||
}
|
||||
|
||||
par_showdatabases() {
|
||||
|
|
|
@ -8,7 +8,7 @@ SSHLOGIN2=parallel@$SERVER2
|
|||
export PARALLEL=-j0
|
||||
#export PARALLEL="--sshdelay 0.3"
|
||||
# Make sure sort order is the same
|
||||
export LANG=C
|
||||
export LC_ALL=C
|
||||
|
||||
echo '### Test --transfer --return --cleanup'
|
||||
|
||||
|
|
|
@ -27,7 +27,7 @@ seq 1 13 | parallel echo {} '>' parallel_{}.test
|
|||
|
||||
ls parallel_*.test | parallel -j+0 --trc {.}.out --bf my_script \
|
||||
-S $SSHLOGIN1,$SSHLOGIN2,: "./my_script {} > {.}.out"
|
||||
cat parallel_*.test parallel_*.out
|
||||
ls parallel_*.test parallel_*.out | LC_ALL=C sort | xargs cat
|
||||
|
||||
## Broken since 2013-03-23
|
||||
## rm -rf tmp
|
||||
|
|
|
@ -10,34 +10,34 @@ echo $SERVER2 >~/.parallel/sshloginfile
|
|||
echo '### Test --wd newtempdir/newdir/tmp/ with space dirs';
|
||||
ssh $SERVER2 rm -rf newtempdir;
|
||||
stdout parallel -j9 -k --wd newtempdir/newdir/tmp/ --basefile 1-col.txt --trc {}.6 -S .. -v echo ">"{}.6 ::: './ ab/c"d/ef g' ' ab/c"d/efg' ./b/bar ./b/foo "./ ab /c' d/ ef\"g" ./2-col.txt './a b/cd / ef/efg';
|
||||
find . -name '*.6' | sort
|
||||
find . -name '*.6' | LC_ALL=C sort
|
||||
|
||||
echo '### Test --wd /tmp/newtempdir/newdir/tmp/ with space dirs';
|
||||
ssh $SERVER2 rm -rf /tmp/newtempdir;
|
||||
stdout parallel -j9 -k --wd /tmp/newtempdir/newdir/tmp/ --basefile 1-col.txt --trc {}.7 -S .. -v echo ">"{}.7 ::: './ ab/c"d/ef g' ' ab/c"d/efg' ./b/bar ./b/foo "./ ab /c' d/ ef\"g" ./2-col.txt './a b/cd / ef/efg';
|
||||
find . -name '*.7' | sort
|
||||
find . -name '*.7' | LC_ALL=C sort
|
||||
|
||||
echo '### Test --workdir ...'
|
||||
parallel -j9 -k --workdir ... --trc {}.1 -S .. echo ">"{}.1 ::: 2-col.txt
|
||||
find . -name '*.1' | sort
|
||||
find . -name '*.1' | LC_ALL=C sort
|
||||
|
||||
echo '### Test --wd ...'
|
||||
parallel -k --wd ... --trc {}.2 -S .. -v echo ">"{}.2 ::: 2-col.txt
|
||||
find . -name '*.2' | sort
|
||||
find . -name '*.2' | LC_ALL=C sort
|
||||
|
||||
echo '### Test --wd ... with space dirs'
|
||||
stdout parallel -j9 -k --wd ... --trc {}.3 -S .. -v echo ">"{}.3 ::: './ ab/c"d/ef g' ' ab/c"d/efg' ./b/bar ./b/foo "./ ab /c' d/ ef\"g" ./2-col.txt './a b/cd / ef/efg'
|
||||
# A few rmdir errors are OK as we have multiple files in the same dirs
|
||||
find . -name '*.3' | sort
|
||||
find . -name '*.3' | LC_ALL=C sort
|
||||
|
||||
echo '### Test --wd tmpdir'
|
||||
parallel -j9 -k --wd tmpdir --basefile 1-col.txt --trc {}.4 -S .. -v echo ">"{}.4 ::: 2-col.txt
|
||||
find . -name '*.4' | sort
|
||||
find . -name '*.4' | LC_ALL=C sort
|
||||
|
||||
echo '### Test --wd /tmp/ with space dirs'
|
||||
stdout parallel -k -j9 --wd /tmp/ --basefile 1-col.txt --trc {}.5 -S .. -v echo ">"{}.5 ::: './ ab/c"d/ef g' ' ab/c"d/efg' ./b/bar ./b/foo "./ ab /c' d/ ef\"g" ./2-col.txt './a b/cd / ef/efg'
|
||||
# A few rmdir errors are OK as we have multiple files in the same dirs
|
||||
find . -name '*.5' | sort
|
||||
find . -name '*.5' | LC_ALL=C sort
|
||||
|
||||
cd ..
|
||||
rm -rf tmp
|
||||
|
|
|
@ -1317,6 +1317,8 @@ par_empty_command bug #54647: parset ignores empty lines
|
|||
par_empty_command
|
||||
par_empty_command Empty:
|
||||
par_empty_command B: B
|
||||
par_empty_input_on_stdin https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=910470
|
||||
par_empty_input_on_stdin This should give no output
|
||||
par_empty_line ### Test bug: empty line for | sh with -k
|
||||
par_empty_line a
|
||||
par_empty_line b
|
||||
|
|
|
@ -6,182 +6,182 @@ par_exit_code # but fish 2.4.0 returns 1 while X.X.X returns 0
|
|||
par_exit_code ash /tmp/mysleep 100 137
|
||||
par_exit_code ash parallel --halt-on-error now,fail=1 /tmp/mysleep ::: 100 137
|
||||
par_exit_code ash parallel --halt-on-error now,done=1 /tmp/mysleep ::: 100 137
|
||||
par_exit_code ash parallel --halt-on-error now,done=1 true ::: 100 0
|
||||
par_exit_code ash parallel --halt-on-error now,done=1 /bin/true ::: 100 0
|
||||
par_exit_code ash parallel --halt-on-error now,done=1 exit ::: 100 100
|
||||
par_exit_code ash true;/tmp/mysleep 100 137
|
||||
par_exit_code ash parallel --halt-on-error now,fail=1 "true;/tmp/mysleep" ::: 100 137
|
||||
par_exit_code ash parallel --halt-on-error now,done=1 "true;/tmp/mysleep" ::: 100 137
|
||||
par_exit_code ash parallel --halt-on-error now,done=1 "true;true" ::: 100 0
|
||||
par_exit_code ash parallel --halt-on-error now,done=1 "true;/bin/true" ::: 100 0
|
||||
par_exit_code ash parallel --halt-on-error now,done=1 "true;exit" ::: 100 100
|
||||
par_exit_code bash /tmp/mysleep 100 0
|
||||
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 true ::: 100 0
|
||||
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 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;true" ::: 100 0
|
||||
par_exit_code bash parallel --halt-on-error now,done=1 "true;/bin/true" ::: 100 0
|
||||
par_exit_code bash parallel --halt-on-error now,done=1 "true;exit" ::: 100 100
|
||||
par_exit_code csh /tmp/mysleep 100 137
|
||||
par_exit_code csh parallel --halt-on-error now,fail=1 /tmp/mysleep ::: 100 137
|
||||
par_exit_code csh parallel --halt-on-error now,done=1 /tmp/mysleep ::: 100 137
|
||||
par_exit_code csh parallel --halt-on-error now,done=1 true ::: 100 0
|
||||
par_exit_code csh parallel --halt-on-error now,done=1 /bin/true ::: 100 0
|
||||
par_exit_code csh parallel --halt-on-error now,done=1 exit ::: 100 100
|
||||
par_exit_code csh true;/tmp/mysleep 100 137
|
||||
par_exit_code csh parallel --halt-on-error now,fail=1 "true;/tmp/mysleep" ::: 100 137
|
||||
par_exit_code csh parallel --halt-on-error now,done=1 "true;/tmp/mysleep" ::: 100 137
|
||||
par_exit_code csh parallel --halt-on-error now,done=1 "true;true" ::: 100 0
|
||||
par_exit_code csh parallel --halt-on-error now,done=1 "true;/bin/true" ::: 100 0
|
||||
par_exit_code csh parallel --halt-on-error now,done=1 "true;exit" ::: 100 100
|
||||
par_exit_code dash /tmp/mysleep 100 137
|
||||
par_exit_code dash parallel --halt-on-error now,fail=1 /tmp/mysleep ::: 100 137
|
||||
par_exit_code dash parallel --halt-on-error now,done=1 /tmp/mysleep ::: 100 137
|
||||
par_exit_code dash parallel --halt-on-error now,done=1 true ::: 100 0
|
||||
par_exit_code dash parallel --halt-on-error now,done=1 /bin/true ::: 100 0
|
||||
par_exit_code dash parallel --halt-on-error now,done=1 exit ::: 100 100
|
||||
par_exit_code dash true;/tmp/mysleep 100 137
|
||||
par_exit_code dash parallel --halt-on-error now,fail=1 "true;/tmp/mysleep" ::: 100 137
|
||||
par_exit_code dash parallel --halt-on-error now,done=1 "true;/tmp/mysleep" ::: 100 137
|
||||
par_exit_code dash parallel --halt-on-error now,done=1 "true;true" ::: 100 0
|
||||
par_exit_code dash parallel --halt-on-error now,done=1 "true;/bin/true" ::: 100 0
|
||||
par_exit_code dash parallel --halt-on-error now,done=1 "true;exit" ::: 100 100
|
||||
par_exit_code fish /tmp/mysleep 100 137
|
||||
par_exit_code fish parallel --halt-on-error now,fail=1 /tmp/mysleep ::: 100 137
|
||||
par_exit_code fish parallel --halt-on-error now,done=1 /tmp/mysleep ::: 100 137
|
||||
par_exit_code fish parallel --halt-on-error now,done=1 true ::: 100 0
|
||||
par_exit_code fish parallel --halt-on-error now,done=1 /bin/true ::: 100 0
|
||||
par_exit_code fish parallel --halt-on-error now,done=1 exit ::: 100 100
|
||||
par_exit_code fish true;/tmp/mysleep 100 137
|
||||
par_exit_code fish parallel --halt-on-error now,fail=1 "true;/tmp/mysleep" ::: 100 137
|
||||
par_exit_code fish parallel --halt-on-error now,done=1 "true;/tmp/mysleep" ::: 100 137
|
||||
par_exit_code fish parallel --halt-on-error now,done=1 "true;true" ::: 100 0
|
||||
par_exit_code fish parallel --halt-on-error now,done=1 "true;/bin/true" ::: 100 0
|
||||
par_exit_code fish parallel --halt-on-error now,done=1 "true;exit" ::: 100 100
|
||||
par_exit_code mksh /tmp/mysleep 100 0
|
||||
par_exit_code mksh parallel --halt-on-error now,fail=1 /tmp/mysleep ::: 100 137
|
||||
par_exit_code mksh parallel --halt-on-error now,done=1 /tmp/mysleep ::: 100 137
|
||||
par_exit_code mksh parallel --halt-on-error now,done=1 true ::: 100 0
|
||||
par_exit_code mksh parallel --halt-on-error now,done=1 /bin/true ::: 100 0
|
||||
par_exit_code mksh parallel --halt-on-error now,done=1 exit ::: 100 100
|
||||
par_exit_code mksh true;/tmp/mysleep 100 137
|
||||
par_exit_code mksh parallel --halt-on-error now,fail=1 "true;/tmp/mysleep" ::: 100 137
|
||||
par_exit_code mksh parallel --halt-on-error now,done=1 "true;/tmp/mysleep" ::: 100 137
|
||||
par_exit_code mksh parallel --halt-on-error now,done=1 "true;true" ::: 100 0
|
||||
par_exit_code mksh parallel --halt-on-error now,done=1 "true;/bin/true" ::: 100 0
|
||||
par_exit_code mksh parallel --halt-on-error now,done=1 "true;exit" ::: 100 100
|
||||
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
|
||||
par_exit_code posh parallel --halt-on-error now,done=1 true ::: 100 0
|
||||
par_exit_code posh parallel --halt-on-error now,done=1 /bin/true ::: 100 0
|
||||
par_exit_code posh parallel --halt-on-error now,done=1 exit ::: 100 100
|
||||
par_exit_code posh true;/tmp/mysleep 100 137
|
||||
par_exit_code posh parallel --halt-on-error now,fail=1 "true;/tmp/mysleep" ::: 100 137
|
||||
par_exit_code posh parallel --halt-on-error now,done=1 "true;/tmp/mysleep" ::: 100 137
|
||||
par_exit_code posh parallel --halt-on-error now,done=1 "true;true" ::: 100 0
|
||||
par_exit_code posh parallel --halt-on-error now,done=1 "true;/bin/true" ::: 100 0
|
||||
par_exit_code posh parallel --halt-on-error now,done=1 "true;exit" ::: 100 100
|
||||
par_exit_code rc /tmp/mysleep 100 1
|
||||
par_exit_code rc parallel --halt-on-error now,fail=1 /tmp/mysleep ::: 100 1
|
||||
par_exit_code rc parallel --halt-on-error now,done=1 /tmp/mysleep ::: 100 1
|
||||
par_exit_code rc parallel --halt-on-error now,done=1 true ::: 100 1
|
||||
par_exit_code rc parallel --halt-on-error now,done=1 /bin/true ::: 100 1
|
||||
par_exit_code rc parallel --halt-on-error now,done=1 exit ::: 100 1
|
||||
par_exit_code rc true;/tmp/mysleep 100 1
|
||||
par_exit_code rc parallel --halt-on-error now,fail=1 "true;/tmp/mysleep" ::: 100 1
|
||||
par_exit_code rc parallel --halt-on-error now,done=1 "true;/tmp/mysleep" ::: 100 1
|
||||
par_exit_code rc parallel --halt-on-error now,done=1 "true;true" ::: 100 1
|
||||
par_exit_code rc parallel --halt-on-error now,done=1 "true;/bin/true" ::: 100 1
|
||||
par_exit_code rc parallel --halt-on-error now,done=1 "true;exit" ::: 100 1
|
||||
par_exit_code sash /tmp/mysleep 100 255
|
||||
par_exit_code sash parallel --halt-on-error now,fail=1 /tmp/mysleep ::: 100 255
|
||||
par_exit_code sash parallel --halt-on-error now,done=1 /tmp/mysleep ::: 100 255
|
||||
par_exit_code sash parallel --halt-on-error now,done=1 true ::: 100 0
|
||||
par_exit_code sash parallel --halt-on-error now,done=1 /bin/true ::: 100 0
|
||||
par_exit_code sash parallel --halt-on-error now,done=1 exit ::: 100 100
|
||||
par_exit_code sash true;/tmp/mysleep 100 0
|
||||
par_exit_code sash parallel --halt-on-error now,fail=1 "true;/tmp/mysleep" ::: 100 0
|
||||
par_exit_code sash parallel --halt-on-error now,done=1 "true;/tmp/mysleep" ::: 100 0
|
||||
par_exit_code sash parallel --halt-on-error now,done=1 "true;true" ::: 100 0
|
||||
par_exit_code sash parallel --halt-on-error now,done=1 "true;/bin/true" ::: 100 0
|
||||
par_exit_code sash parallel --halt-on-error now,done=1 "true;exit" ::: 100 0
|
||||
par_exit_code sh /tmp/mysleep 100 137
|
||||
par_exit_code sh parallel --halt-on-error now,fail=1 /tmp/mysleep ::: 100 137
|
||||
par_exit_code sh parallel --halt-on-error now,done=1 /tmp/mysleep ::: 100 137
|
||||
par_exit_code sh parallel --halt-on-error now,done=1 true ::: 100 0
|
||||
par_exit_code sh parallel --halt-on-error now,done=1 /bin/true ::: 100 0
|
||||
par_exit_code sh parallel --halt-on-error now,done=1 exit ::: 100 100
|
||||
par_exit_code sh true;/tmp/mysleep 100 137
|
||||
par_exit_code sh parallel --halt-on-error now,fail=1 "true;/tmp/mysleep" ::: 100 137
|
||||
par_exit_code sh parallel --halt-on-error now,done=1 "true;/tmp/mysleep" ::: 100 137
|
||||
par_exit_code sh parallel --halt-on-error now,done=1 "true;true" ::: 100 0
|
||||
par_exit_code sh parallel --halt-on-error now,done=1 "true;/bin/true" ::: 100 0
|
||||
par_exit_code sh parallel --halt-on-error now,done=1 "true;exit" ::: 100 100
|
||||
par_exit_code static-sh /tmp/mysleep 100 137
|
||||
par_exit_code static-sh parallel --halt-on-error now,fail=1 /tmp/mysleep ::: 100 137
|
||||
par_exit_code static-sh parallel --halt-on-error now,done=1 /tmp/mysleep ::: 100 137
|
||||
par_exit_code static-sh parallel --halt-on-error now,done=1 true ::: 100 0
|
||||
par_exit_code static-sh parallel --halt-on-error now,done=1 /bin/true ::: 100 0
|
||||
par_exit_code static-sh parallel --halt-on-error now,done=1 exit ::: 100 100
|
||||
par_exit_code static-sh true;/tmp/mysleep 100 137
|
||||
par_exit_code static-sh parallel --halt-on-error now,fail=1 "true;/tmp/mysleep" ::: 100 137
|
||||
par_exit_code static-sh parallel --halt-on-error now,done=1 "true;/tmp/mysleep" ::: 100 137
|
||||
par_exit_code static-sh parallel --halt-on-error now,done=1 "true;true" ::: 100 0
|
||||
par_exit_code static-sh parallel --halt-on-error now,done=1 "true;/bin/true" ::: 100 0
|
||||
par_exit_code static-sh parallel --halt-on-error now,done=1 "true;exit" ::: 100 100
|
||||
par_exit_code tcsh /tmp/mysleep 100 137
|
||||
par_exit_code tcsh parallel --halt-on-error now,fail=1 /tmp/mysleep ::: 100 137
|
||||
par_exit_code tcsh parallel --halt-on-error now,done=1 /tmp/mysleep ::: 100 137
|
||||
par_exit_code tcsh parallel --halt-on-error now,done=1 true ::: 100 0
|
||||
par_exit_code tcsh parallel --halt-on-error now,done=1 /bin/true ::: 100 0
|
||||
par_exit_code tcsh parallel --halt-on-error now,done=1 exit ::: 100 100
|
||||
par_exit_code tcsh true;/tmp/mysleep 100 137
|
||||
par_exit_code tcsh parallel --halt-on-error now,fail=1 "true;/tmp/mysleep" ::: 100 137
|
||||
par_exit_code tcsh parallel --halt-on-error now,done=1 "true;/tmp/mysleep" ::: 100 137
|
||||
par_exit_code tcsh parallel --halt-on-error now,done=1 "true;true" ::: 100 0
|
||||
par_exit_code tcsh parallel --halt-on-error now,done=1 "true;/bin/true" ::: 100 0
|
||||
par_exit_code tcsh parallel --halt-on-error now,done=1 "true;exit" ::: 100 100
|
||||
par_exit_code fdsh /tmp/mysleep 100 137
|
||||
par_exit_code fdsh parallel --halt-on-error now,fail=1 /tmp/mysleep ::: 100 2
|
||||
par_exit_code fdsh parallel --halt-on-error now,done=1 /tmp/mysleep ::: 100 2
|
||||
par_exit_code fdsh parallel --halt-on-error now,done=1 true ::: 100 0
|
||||
par_exit_code fdsh parallel --halt-on-error now,done=1 /bin/true ::: 100 2
|
||||
par_exit_code fdsh parallel --halt-on-error now,done=1 exit ::: 100 100
|
||||
par_exit_code fdsh true;/tmp/mysleep 100 137
|
||||
par_exit_code fdsh parallel --halt-on-error now,fail=1 "true;/tmp/mysleep" ::: 100 2
|
||||
par_exit_code fdsh parallel --halt-on-error now,done=1 "true;/tmp/mysleep" ::: 100 2
|
||||
par_exit_code fdsh parallel --halt-on-error now,done=1 "true;true" ::: 100 0
|
||||
par_exit_code fdsh parallel --halt-on-error now,done=1 "true;/bin/true" ::: 100 2
|
||||
par_exit_code fdsh parallel --halt-on-error now,done=1 "true;exit" ::: 100 100
|
||||
par_exit_code fizsh /tmp/mysleep 100 137
|
||||
par_exit_code fizsh parallel --halt-on-error now,fail=1 /tmp/mysleep ::: 100 137
|
||||
par_exit_code fizsh parallel --halt-on-error now,done=1 /tmp/mysleep ::: 100 137
|
||||
par_exit_code fizsh parallel --halt-on-error now,done=1 true ::: 100 0
|
||||
par_exit_code fizsh parallel --halt-on-error now,done=1 /bin/true ::: 100 0
|
||||
par_exit_code fizsh parallel --halt-on-error now,done=1 exit ::: 100 100
|
||||
par_exit_code fizsh true;/tmp/mysleep 100 137
|
||||
par_exit_code fizsh parallel --halt-on-error now,fail=1 "true;/tmp/mysleep" ::: 100 137
|
||||
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;true" ::: 100 0
|
||||
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 ksh /tmp/mysleep 100 0
|
||||
par_exit_code ksh parallel --halt-on-error now,fail=1 /tmp/mysleep ::: 100 137
|
||||
par_exit_code ksh parallel --halt-on-error now,done=1 /tmp/mysleep ::: 100 137
|
||||
par_exit_code ksh parallel --halt-on-error now,done=1 true ::: 100 0
|
||||
par_exit_code ksh parallel --halt-on-error now,done=1 /bin/true ::: 100 0
|
||||
par_exit_code ksh parallel --halt-on-error now,done=1 exit ::: 100 100
|
||||
par_exit_code ksh true;/tmp/mysleep 100 0
|
||||
par_exit_code ksh parallel --halt-on-error now,fail=1 "true;/tmp/mysleep" ::: 100 137
|
||||
par_exit_code ksh parallel --halt-on-error now,done=1 "true;/tmp/mysleep" ::: 100 137
|
||||
par_exit_code ksh parallel --halt-on-error now,done=1 "true;true" ::: 100 0
|
||||
par_exit_code ksh parallel --halt-on-error now,done=1 "true;/bin/true" ::: 100 0
|
||||
par_exit_code ksh parallel --halt-on-error now,done=1 "true;exit" ::: 100 100
|
||||
par_exit_code ksh93 /tmp/mysleep 100 0
|
||||
par_exit_code ksh93 parallel --halt-on-error now,fail=1 /tmp/mysleep ::: 100 137
|
||||
par_exit_code ksh93 parallel --halt-on-error now,done=1 /tmp/mysleep ::: 100 137
|
||||
par_exit_code ksh93 parallel --halt-on-error now,done=1 true ::: 100 0
|
||||
par_exit_code ksh93 parallel --halt-on-error now,done=1 /bin/true ::: 100 0
|
||||
par_exit_code ksh93 parallel --halt-on-error now,done=1 exit ::: 100 100
|
||||
par_exit_code ksh93 true;/tmp/mysleep 100 0
|
||||
par_exit_code ksh93 parallel --halt-on-error now,fail=1 "true;/tmp/mysleep" ::: 100 137
|
||||
par_exit_code ksh93 parallel --halt-on-error now,done=1 "true;/tmp/mysleep" ::: 100 137
|
||||
par_exit_code ksh93 parallel --halt-on-error now,done=1 "true;true" ::: 100 0
|
||||
par_exit_code ksh93 parallel --halt-on-error now,done=1 "true;/bin/true" ::: 100 0
|
||||
par_exit_code ksh93 parallel --halt-on-error now,done=1 "true;exit" ::: 100 100
|
||||
par_exit_code yash /tmp/mysleep 100 0
|
||||
par_exit_code yash parallel --halt-on-error now,fail=1 /tmp/mysleep ::: 100 137
|
||||
par_exit_code yash parallel --halt-on-error now,done=1 /tmp/mysleep ::: 100 137
|
||||
par_exit_code yash parallel --halt-on-error now,done=1 true ::: 100 0
|
||||
par_exit_code yash parallel --halt-on-error now,done=1 /bin/true ::: 100 0
|
||||
par_exit_code yash parallel --halt-on-error now,done=1 exit ::: 100 100
|
||||
par_exit_code yash true;/tmp/mysleep 100 0
|
||||
par_exit_code yash parallel --halt-on-error now,fail=1 "true;/tmp/mysleep" ::: 100 137
|
||||
par_exit_code yash parallel --halt-on-error now,done=1 "true;/tmp/mysleep" ::: 100 137
|
||||
par_exit_code yash parallel --halt-on-error now,done=1 "true;true" ::: 100 0
|
||||
par_exit_code yash parallel --halt-on-error now,done=1 "true;/bin/true" ::: 100 0
|
||||
par_exit_code yash parallel --halt-on-error now,done=1 "true;exit" ::: 100 100
|
||||
par_exit_code zsh /tmp/mysleep 100 0
|
||||
par_exit_code zsh parallel --halt-on-error now,fail=1 /tmp/mysleep ::: 100 137
|
||||
par_exit_code zsh parallel --halt-on-error now,done=1 /tmp/mysleep ::: 100 137
|
||||
par_exit_code zsh parallel --halt-on-error now,done=1 true ::: 100 0
|
||||
par_exit_code zsh parallel --halt-on-error now,done=1 /bin/true ::: 100 0
|
||||
par_exit_code zsh parallel --halt-on-error now,done=1 exit ::: 100 100
|
||||
par_exit_code zsh true;/tmp/mysleep 100 0
|
||||
par_exit_code zsh parallel --halt-on-error now,fail=1 "true;/tmp/mysleep" ::: 100 137
|
||||
par_exit_code zsh parallel --halt-on-error now,done=1 "true;/tmp/mysleep" ::: 100 137
|
||||
par_exit_code zsh parallel --halt-on-error now,done=1 "true;true" ::: 100 0
|
||||
par_exit_code zsh parallel --halt-on-error now,done=1 "true;/bin/true" ::: 100 0
|
||||
par_exit_code zsh parallel --halt-on-error now,done=1 "true;exit" ::: 100 100
|
||||
par_exit_code parallel: This job finished:
|
||||
par_exit_code runit
|
||||
|
|
|
@ -243,19 +243,6 @@ par_kill_children_timeout 0 0 0
|
|||
par_line_buffer ### --line-buffer
|
||||
par_line_buffer 55 55 120
|
||||
par_line_buffer These must diff: 1
|
||||
par_linebuffer_tag_slow_output Test output tag with mixing halflines
|
||||
par_linebuffer_tag_slow_output a aH
|
||||
par_linebuffer_tag_slow_output b bH
|
||||
par_linebuffer_tag_slow_output a aa
|
||||
par_linebuffer_tag_slow_output b ba
|
||||
par_linebuffer_tag_slow_output a al
|
||||
par_linebuffer_tag_slow_output b bl
|
||||
par_linebuffer_tag_slow_output a af
|
||||
par_linebuffer_tag_slow_output b bf
|
||||
par_linebuffer_tag_slow_output a a
|
||||
par_linebuffer_tag_slow_output a
|
||||
par_linebuffer_tag_slow_output b b
|
||||
par_linebuffer_tag_slow_output b
|
||||
par_long_line_remote ### Deal with long command lines on remote servers
|
||||
par_long_line_remote 2 6 30006
|
||||
par_long_line_remote 3 50 250050
|
||||
|
@ -520,6 +507,22 @@ par_retries_all_fail 7
|
|||
par_retries_all_fail 8
|
||||
par_round_robin_blocks bug #49664: --round-robin does not complete
|
||||
par_round_robin_blocks 8
|
||||
par_sem_2jobs ### Test semaphore 2 jobs running simultaneously
|
||||
par_sem_2jobs job1a 1
|
||||
par_sem_2jobs job2a 2
|
||||
par_sem_2jobs job1b 3
|
||||
par_sem_2jobs job3a 4
|
||||
par_sem_2jobs job2b 5
|
||||
par_sem_2jobs job3b 6
|
||||
par_sem_2jobs done
|
||||
par_semaphore ### Test if parallel invoked as sem will run parallel --semaphore
|
||||
par_semaphore job1a 1
|
||||
par_semaphore job2a 2
|
||||
par_semaphore job1b 3
|
||||
par_semaphore job3a 4
|
||||
par_semaphore job2b 5
|
||||
par_semaphore job3b 6
|
||||
par_semaphore done
|
||||
par_slow_total_jobs bug #51006: Slow total_jobs() eats job
|
||||
par_slow_total_jobs a
|
||||
par_slow_total_jobs b
|
||||
|
|
|
@ -619,3 +619,6 @@ par_test_XI_mI a7 b1 2 3 4 5 6 7
|
|||
par_test_XI_mI a8 b1 2 3 4 5 6 7 8
|
||||
par_test_XI_mI a9 b1 2 3 4 5 6 7 8 9
|
||||
par_test_XI_mI a10 b1 2 3 4 5 6 7 8 9 10
|
||||
par_too_long_line_X bug #54869: Long lines break
|
||||
par_too_long_line_X 1 29302 131012
|
||||
par_too_long_line_X 1 12698 63490
|
||||
|
|
|
@ -251,7 +251,7 @@ par_test_detected_shell test_known_shell_c fizsh Global::shell /usr/bin/zsh
|
|||
par_test_detected_shell test_known_shell_c ksh Global::shell /usr/bin/ksh
|
||||
par_test_detected_shell test_known_shell_c ksh93 Global::shell /bin/ksh93
|
||||
par_test_detected_shell test_known_shell_c mksh Global::shell /bin/mksh
|
||||
par_test_detected_shell test_known_shell_c posh Global::shell /bin/posh
|
||||
par_test_detected_shell test_known_shell_c posh Global::shell /usr/bin/posh
|
||||
par_test_detected_shell test_known_shell_c rbash Global::shell /bin/rbash
|
||||
par_test_detected_shell test_known_shell_c rush Local configuration error occurred.
|
||||
par_test_detected_shell test_known_shell_c rush Contact the systems administrator for further assistance.
|
||||
|
@ -267,11 +267,11 @@ par_test_detected_shell test_known_shell_pipe bash Global::shell /bin/bash
|
|||
par_test_detected_shell test_known_shell_pipe csh Global::shell /bin/csh
|
||||
par_test_detected_shell test_known_shell_pipe dash Global::shell /bin/dash
|
||||
par_test_detected_shell test_known_shell_pipe fish Global::shell /usr/bin/fish
|
||||
par_test_detected_shell test_known_shell_pipe fizsh Global::shell /usr/bin/zsh
|
||||
par_test_detected_shell test_known_shell_pipe fizsh Global::shell /usr/bin/fizsh
|
||||
par_test_detected_shell test_known_shell_pipe ksh Global::shell /usr/bin/ksh
|
||||
par_test_detected_shell test_known_shell_pipe ksh93 Global::shell /bin/ksh93
|
||||
par_test_detected_shell test_known_shell_pipe mksh Global::shell /bin/mksh
|
||||
par_test_detected_shell test_known_shell_pipe posh Global::shell /bin/posh
|
||||
par_test_detected_shell test_known_shell_pipe posh Global::shell /usr/bin/posh
|
||||
par_test_detected_shell test_known_shell_pipe rbash Global::shell /bin/rbash
|
||||
par_test_detected_shell test_known_shell_pipe rush Local configuration error occurred.
|
||||
par_test_detected_shell test_known_shell_pipe rush Contact the systems administrator for further assistance.
|
||||
|
|
|
@ -81,11 +81,6 @@ par_nice parallel: SIGTERM received. No new jobs will be started.
|
|||
par_nice parallel: Waiting for these 2 jobs to finish. Send SIGTERM again to stop now.
|
||||
par_nice parallel: bzip2 < /dev/zero
|
||||
par_nice parallel: bzip2 < /dev/zero
|
||||
par_parcat_mixing parcat output should mix: a b a b
|
||||
par_parcat_mixing astart
|
||||
par_parcat_mixing bstart
|
||||
par_parcat_mixing aend
|
||||
par_parcat_mixing bend
|
||||
par_pipe_unneeded_procs ### Test bug #34241: --pipe should not spawn unneeded processes
|
||||
par_pipe_unneeded_procs 1
|
||||
par_pipe_unneeded_procs 2
|
||||
|
|
|
@ -80,6 +80,24 @@ par_hostgroup tange
|
|||
par_hostgroup tange
|
||||
par_hostgroup tcsh
|
||||
par_hostgroup tcsh
|
||||
par_linebuffer_tag_slow_output Test output tag with mixing halflines
|
||||
par_linebuffer_tag_slow_output a aH
|
||||
par_linebuffer_tag_slow_output b bH
|
||||
par_linebuffer_tag_slow_output a aa
|
||||
par_linebuffer_tag_slow_output b ba
|
||||
par_linebuffer_tag_slow_output a al
|
||||
par_linebuffer_tag_slow_output b bl
|
||||
par_linebuffer_tag_slow_output a af
|
||||
par_linebuffer_tag_slow_output b bf
|
||||
par_linebuffer_tag_slow_output a a
|
||||
par_linebuffer_tag_slow_output a
|
||||
par_linebuffer_tag_slow_output b b
|
||||
par_linebuffer_tag_slow_output b
|
||||
par_parcat_mixing parcat output should mix: a b a b
|
||||
par_parcat_mixing astart
|
||||
par_parcat_mixing bstart
|
||||
par_parcat_mixing aend
|
||||
par_parcat_mixing bend
|
||||
par_testhalt now fail 0 true ### testhalt --halt now,fail=0
|
||||
par_testhalt now fail 0 true job 1
|
||||
par_testhalt now fail 0 true parallel: This job failed:
|
||||
|
|
|
@ -147,7 +147,7 @@ ls: No match.
|
|||
ls: cannot access './--?.a': No such file or directory
|
||||
echo '### Test --trc "/tmp/./--- /A" "/tmp/./ ---/B"'
|
||||
### Test --trc "/tmp/./--- /A" "/tmp/./ ---/B"
|
||||
mkdir -p '/tmp/./--- ' '/tmp/ ---'; touch -- '/tmp/./--- /A' '/tmp/ ---/B'; rm -f ./---?/A.a ./?---/B.a; parallel --trc {=s:.*/./::=}.a -S csh@lo,sh@lo touch ./{=s:.*/./::=}.a ::: '/tmp/./--- /A' '/tmp/./ ---/B'; ls ./---?/A.a ./?---/B.a; parallel --nonall -k -S csh@lo,sh@lo 'ls ./?--- ./---? || echo OK'; echo '### bug #46519: --onall ignores --transfer'
|
||||
mkdir -p '/tmp/./--- ' '/tmp/ ---'; touch -- '/tmp/./--- /A' '/tmp/ ---/B'; rm -f ./---?/A.a ./?---/B.a; parallel --trc {=s:.*/./::=}.a -S csh@lo,sh@lo touch ./{=s:.*/./::=}.a ::: '/tmp/./--- /A' '/tmp/./ ---/B'; ls ./---?/A.a ./?---/B.a | LC_ALL=C sort; parallel --nonall -k -S csh@lo,sh@lo 'ls ./?--- ./---? || echo OK' | LC_ALL=C sort; echo '### bug #46519: --onall ignores --transfer'
|
||||
./ ---/B.a
|
||||
./--- /A.a
|
||||
OK
|
||||
|
|
|
@ -81,15 +81,7 @@ echo '### Test tmux works on different shells'
|
|||
0
|
||||
4
|
||||
# command is currently too long for csh. Maybe it can be fixed?
|
||||
Word too long.
|
||||
Word too long.
|
||||
Word too long.
|
||||
Word too long.
|
||||
4
|
||||
Word too long.
|
||||
Word too long.
|
||||
Word too long.
|
||||
Word too long.
|
||||
0
|
||||
4
|
||||
echo '### works'
|
||||
### works
|
||||
|
|
|
@ -57,7 +57,7 @@ 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) [sender]
|
||||
par_autossh rsync error: error in rsync protocol data stream (code 12) at io.c(226) [sender=3.1.1]
|
||||
par_autossh rsync error: error in rsync protocol data stream (code 12) at io.c(235) [sender=3.1.2]
|
||||
par_autossh /usr/lib/autossh/autossh: invalid option -- '-'
|
||||
par_autossh usage: autossh [-V] [-M monitor_port[:echo_port]] [-f] [SSH_OPTIONS]
|
||||
par_autossh
|
||||
|
@ -89,4 +89,4 @@ 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(226) [Receiver=3.1.1]
|
||||
par_autossh rsync error: error in rsync protocol data stream (code 12) at io.c(235) [Receiver=3.1.2]
|
||||
|
|
|
@ -129,18 +129,16 @@ par_zsh_man exit value 2 should be 2
|
|||
par_zsh_man Unknown option: no-such-option
|
||||
par_zsh_man exit value 255 should be 255
|
||||
par_zsh_funky
|
||||
par_zsh_funky
|
||||
par_zsh_funky
|
||||
par_zsh_funky
!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€亗儎厗噲墛媽崕彁憭摂晼棙櫄洔潪煚、¥ウЖ┆<D096><E29486><EFBFBD>辈炒刀犯购患骄坷谅媚牌侨墒颂臀闲岩釉罩棕仝圮蒉哙徕沅彐玷殛腱眍镳耱篝貊鼬<E8B28A><E9BCAC><EFBFBD><EFBFBD>-funky
|
||||
par_zsh_funky
!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€亗儎厗噲墛媽崕彁憭摂晼棙櫄洔潪煚、¥ウЖ┆<D096><E29486><EFBFBD>辈炒刀犯购患骄坷谅媚牌侨墒颂臀闲岩釉罩棕仝圮蒉哙徕沅彐玷殛腱眍镳耱篝貊鼬<E8B28A><E9BCAC><EFBFBD><EFBFBD>-funky
|
||||
par_zsh_funky
C-] !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~<>걗깂뀊뇠뎷땶뜋룓몤뱮븭뿕솞썫M-옝젩∀ㄵ┬øガ<C3B8><E382AC>굉낫독렇뭔뻤슭오좌쳐탬픽<ED83AC>盖誥國喫戇倆厘描白M-]泗褻栒鴨鉛僥幽日全猝膣逮擢票亨涍<E4BAA8>-funky
|
||||
par_zsh_funky
C-] !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~<>걗깂뀊뇠뎷땶뜋룓몤뱮븭뿕솞썫M-옝젩∀ㄵ┬øガ<C3B8><E382AC>굉낫독렇뭔뻤슭오좌쳐탬픽<ED83AC>盖誥國喫戇倆厘描白M-]泗褻栒鴨鉛僥幽日全猝膣逮擢票亨涍<E4BAA8>-funky
|
||||
par_zsh_funky space 6
|
||||
par_zsh_funky space 6
|
||||
par_zsh_funky ' '
|
||||
par_zsh_funky '
!"#$%&'"'"'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€亗儎厗噲墛媽崕彁憭摂晼棙櫄洔潪煚、¥ウЖ┆<EFBFBD><EFBFBD><EFBFBD>辈炒刀犯购患骄坷谅媚牌侨墒颂臀闲岩釉罩棕仝圮蒉哙徕沅彐玷殛腱眍镳耱篝貊鼬<EFBFBD><EFBFBD><EFBFBD><EFBFBD>'
|
||||
par_zsh_funky '
!"#$%&'"'"'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~<EFBFBD>걗깂뀊뇠뎷땶뜋룓몤뱮븭뿕솞썫씆윝、$ⅵŁかЛ<EFBFBD>갚껙뉘떱많본섹씩읒쩠컵판훔墾勁卦今錄桐虜妹膊覆泗褻栒鴨鉛僥幽日全猝膣逮擢票亨涍<EFBFBD>'
|
||||
par_zsh_funky 3 arg alias_works
|
||||
par_zsh_funky 3 arg alias_works_over_ssh
|
||||
par_zsh_funky Funky-
|
||||
par_zsh_funky Funky-
|
||||
par_zsh_funky Funky-
|
||||
par_zsh_funky Funky-
|
||||
par_zsh_funky assoc_val_a
|
||||
par_zsh_funky assoc_val_a
|
||||
par_zsh_funky function_works
|
||||
|
@ -587,7 +585,7 @@ par_mksh_parset foo bar baz
|
|||
par_mksh_parset ### env_parset
|
||||
par_mksh_parset myecho myvar myarr 1 myfun foo myecho myvar myarr 1 myfun bar myecho myvar myarr 1 myfun baz
|
||||
par_mksh_parset myecho myvar myarr 1 myfun foo myecho myvar myarr 1 myfun bar myecho myvar myarr 1 myfun baz
|
||||
par_mksh_parset
|
||||
par_mksh_parset myecho myvar myarr 1 myfun foo myecho myvar myarr 1 myfun bar myecho myvar myarr 1 myfun baz
|
||||
par_mksh_parset newline1
|
||||
par_mksh_parset newline2
|
||||
par_mksh_parset 1
|
||||
|
@ -798,7 +796,7 @@ par_ksh_parset foo bar baz
|
|||
par_ksh_parset ### env_parset
|
||||
par_ksh_parset myecho myvar myarr 1 myfun foo myecho myvar myarr 1 myfun bar myecho myvar myarr 1 myfun baz
|
||||
par_ksh_parset myecho myvar myarr 1 myfun foo myecho myvar myarr 1 myfun bar myecho myvar myarr 1 myfun baz
|
||||
par_ksh_parset
|
||||
par_ksh_parset myecho myvar myarr 1 myfun foo myecho myvar myarr 1 myfun bar myecho myvar myarr 1 myfun baz
|
||||
par_ksh_parset newline1
|
||||
par_ksh_parset newline2
|
||||
par_ksh_parset 1
|
||||
|
@ -1342,8 +1340,8 @@ par_csh_man arrays
|
|||
par_csh_man arrays
|
||||
par_csh_man cat ... | parallel --pipe [options] [command [arguments]]
|
||||
par_csh_man env_parallel
|
||||
par_csh_man exit value -1 should be 255
|
||||
par_csh_man exit value 2 should be 2
|
||||
par_csh_man exit value 255 should be 255
|
||||
par_csh_man level
|
||||
par_csh_man multi
|
||||
par_csh_man parallel [options] [command [arguments]] (::: arguments|:::: argfile(s))...
|
||||
|
@ -1368,15 +1366,18 @@ par_csh_man work,
|
|||
par_csh_man {3} {3.} {3/} {3/.} {=3 perl code =} Positional replacement strings
|
||||
par_csh_man {} {.} {/} {/.} {#} {%} {= perl code =} Replacement strings
|
||||
par_csh_funky 3 arg alias_works
|
||||
par_csh_funky
|
||||
par_csh_funky myvar works
|
||||
par_csh_funky space special chars problem
|
||||
par_csh_funky Funky-
!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€<7F>‚ƒ„…†‡ˆ‰Š‹Œ<E280B9>Ž<EFBFBD><C5BD>‘’“”•–—˜™š›œ<E280BA>žŸ ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ-funky alias_var_works
|
||||
par_csh_funky func_echo: Command not found.
|
||||
par_csh_funky 3 arg alias_works_over_ssh
|
||||
par_csh_funky
|
||||
par_csh_funky myvar works
|
||||
par_csh_funky space special chars problem
|
||||
par_csh_funky Funky-
!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€<7F>‚ƒ„…†‡ˆ‰Š‹Œ<E280B9>Ž<EFBFBD><C5BD>‘’“”•–—˜™š›œ<E280BA>žŸ ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ-funky alias_var_works_over_ssh
|
||||
par_csh_funky func_echo: Command not found.
|
||||
par_csh_funky
|
||||
par_csh_funky \\\\\\\\ \ \\\
\\\\\\\\\\\\\\ \!\"\#\$%\&\'\(\)\*+,-./0123456789:\;\<\=\>\?@ABCDEFGHIJKLMNOPQRSTUVWXYZ\[\\\]\^_\`abcdefghijklmnopqrstuvwxyz\{\|\}\~€<7F>\‚\ƒ\„\…\†\‡\ˆ\‰\Š\‹\Œ\<5C>\Ž\<5C>\<5C>\‘\’\“\”\•\–\—\˜\™\š\›\œ\<5C>\ž\Ÿ\ \¡\¢\£\¤\¥\¦\§\¨\©\ª\«\¬\\®\¯\°\±\²\³\´\µ\¶\·\¸\¹\º\»\¼\½\¾\¿\À\Á\Â\Ã\Ä\Å\Æ\Ç\È\É\Ê\Ë\Ì\Í\Î\Ï\Ð\Ñ\Ò\Ó\Ô\Õ\Ö\×\Ø\Ù\Ú\Û\Ü\Ý\Þ\ß\à\á\â\ã\ä\å\æ\ç\è\é\ê\ë\ì\í\î\ï\ð\ñ\ò\ó\ô\õ\ö\÷\ø\ù\ú\û\ü\ý\þ\ÿ
|
||||
par_csh_environment_too_big Not implemented
|
||||
par_csh_env_parallel_session Not implemented
|
||||
|
@ -1429,7 +1430,7 @@ par_bash_parset foo bar baz
|
|||
par_bash_parset ### env_parset
|
||||
par_bash_parset myecho myvar myarr 1 myfun foo myecho myvar myarr 1 myfun bar myecho myvar myarr 1 myfun baz
|
||||
par_bash_parset myecho myvar myarr 1 myfun foo myecho myvar myarr 1 myfun bar myecho myvar myarr 1 myfun baz
|
||||
par_bash_parset
|
||||
par_bash_parset myecho myvar myarr 1 myfun foo myecho myvar myarr 1 myfun bar myecho myvar myarr 1 myfun baz
|
||||
par_bash_parset newline1
|
||||
par_bash_parset newline2
|
||||
par_bash_parset 1
|
||||
|
@ -1523,12 +1524,10 @@ par_bash_man exit value 2 should be 2
|
|||
par_bash_man Unknown option: no-such-option
|
||||
par_bash_man exit value 255 should be 255
|
||||
par_bash_funky
|
||||
par_bash_funky
|
||||
par_bash_funky
|
||||
par_bash_funky
|
||||
par_bash_funky
|
||||
par_bash_funky
|
||||
par_bash_funky
|
||||
par_bash_funky -funkymultiline
|
||||
par_bash_funky -funkymultiline
|
||||
par_bash_funky space 6
|
||||
par_bash_funky space 6
|
||||
par_bash_funky ' '
|
||||
|
@ -1546,8 +1545,6 @@ par_bash_funky function_works
|
|||
par_bash_funky function_works_over_ssh
|
||||
par_bash_funky myvar works
|
||||
par_bash_funky myvar works
|
||||
par_bash_funky -funkymultiline
|
||||
par_bash_funky -funkymultiline
|
||||
par_bash_environment_too_big bug #50815: env_parallel should warn if the environment is too big
|
||||
par_bash_environment_too_big OK_bigvar
|
||||
par_bash_environment_too_big OK_bigvar_remote
|
||||
|
|
|
@ -15,14 +15,14 @@ par_keeporder job2
|
|||
par_load_csh ### Gave Word too long.
|
||||
par_load_csh a
|
||||
par_path_remote_bash bug #47695: How to set $PATH on remote? Bash
|
||||
par_path_remote_bash logged in
|
||||
par_path_remote_bash BASH Path before: /bin:/usr/bin with no parallel
|
||||
par_path_remote_bash -bash: line 2: parallel: command not found
|
||||
par_path_remote_bash -bash: line 3: parallel: command not found
|
||||
par_path_remote_bash ^^^^^^^^ Not found is OK
|
||||
par_path_remote_bash /bin:/usr/bin:/tmp OK
|
||||
par_path_remote_bash
|
||||
par_path_remote_csh bug #47695: How to set $PATH on remote? csh
|
||||
par_path_remote_csh Warning: no access to tty (Bad file descriptor).
|
||||
par_path_remote_csh Thus no job control in this shell.
|
||||
par_path_remote_csh logged in
|
||||
par_path_remote_csh CSH Path before: /bin:/usr/bin with no parallel
|
||||
par_path_remote_csh parallel: Command not found.
|
||||
par_path_remote_csh ^^^^^^^^ Not found is OK
|
||||
|
|
|
@ -39,7 +39,7 @@ https://www.gnu.org/software/parallel/parallel_design.html#Citation-notice
|
|||
To silence this citation notice: run 'parallel --citation' once.
|
||||
|
||||
10 files to edit
|
||||
[?1049h[?1h=[1;24r[?12;25h[?12l[?25h[27m[23m[m[H[2J[?25l[24;1H"file1" [New File][2;1H[1m[34m~ [3;1H~ [4;1H~ [5;1H~ [6;1H~ [7;1H~ [8;1H~ [9;1H~ [10;1H~ [11;1H~ [12;1H~ [13;1H~ [14;1H~ [15;1H~ [16;1H~ [17;1H~ [18;1H~ [19;1H~ [20;1H~ [21;1H~ [22;1H~ [23;1H~ [1;1H[?12l[?25h[?25l[m[24;1H[1m[37m[41mE173: 9 more files to edit[1;1H[?12l[?25h[24;1H[m[24;1H[K[24;1H[?1l>[?1049lAcademic tradition requires you to cite works you base your article on.
|
||||
[?2004h[?1049h[22;0;0t[?1h=[?2004h[1;24r[?12h[?12l[27m[23m[29m[m[H[2J[?25l[24;1H"file1" [New File][2;1H▽[6n[2;1H [1;1H[>c]10;?]11;?[2;1H[94m~ [3;1H~ [4;1H~ [5;1H~ [6;1H~ [7;1H~ [8;1H~ [9;1H~ [10;1H~ [11;1H~ [12;1H~ [13;1H~ [14;1H~ [15;1H~ [16;1H~ [17;1H~ [18;1H~ [19;1H~ [20;1H~ [21;1H~ [22;1H~ [23;1H~ [m[24;63H0,0-1[9CAll[1;1H[?25h[?25l[24;1H[97m[41mE173: 9 more files to edit[m[24;63H[K[?2004h[24;63H0,0-1[9CAll[1;1H[?25h[24;1H[?2004l[24;1H[K[24;1H[?2004l[?1l>[?1049l[23;0;0tAcademic tradition requires you to cite works you base your article on.
|
||||
If you use programs that use GNU Parallel to process data for an article in a
|
||||
scientific publication, please cite:
|
||||
|
||||
|
|
|
@ -62,7 +62,7 @@ touch more_than_5000-9997
|
|||
touch more_than_5000-9998
|
||||
touch more_than_5000-9999
|
||||
### rm
|
||||
ls | parallel -j500 'sleep 1; find {} -type f | perl -ne "END{print $..\" "{=$_=pQ($_)=}"\n\"}"' | sort
|
||||
ls | parallel -j500 'sleep 1; find {} -type f | perl -ne "END{print $..\" "{=$_=pQ($_)=}"\n\"}"' | LC_ALL=C sort
|
||||
1 1-col.txt
|
||||
1 1-col.txt.diff
|
||||
1 2-col.txt
|
||||
|
@ -171,7 +171,7 @@ ls | parallel -j500 'sleep 1; find {} -type f | perl -ne "END{print $..\" "{=$_=
|
|||
4 ab
|
||||
4 b
|
||||
6 a
|
||||
ls | parallel --group -j500 'sleep 1; find {} -type f | perl -ne "END{print $..\" "{=$_=pQ($_)=}"\n\"}"' | sort
|
||||
ls | parallel --group -j500 'sleep 1; find {} -type f | perl -ne "END{print $..\" "{=$_=pQ($_)=}"\n\"}"' | LC_ALL=C sort
|
||||
1 1-col.txt
|
||||
1 1-col.txt.diff
|
||||
1 2-col.txt
|
||||
|
@ -280,7 +280,7 @@ ls | parallel --group -j500 'sleep 1; find {} -type f | perl -ne "END{print $..\
|
|||
4 ab
|
||||
4 b
|
||||
6 a
|
||||
find . -type f | parallel --group "perl -ne '/^\\S+\\s+\\S+$/ and print \$ARGV,\"\\n\"'" | sort
|
||||
find . -type f | parallel --group "perl -ne '/^\\S+\\s+\\S+$/ and print \$ARGV,\"\\n\"'" | LC_ALL=C sort
|
||||
./ ab /c' d/ ef"g.diff
|
||||
./ ab /c' d/ ef"g.diff
|
||||
./ ab/c"d/ef g.diff
|
||||
|
@ -299,7 +299,7 @@ find . -type f | parallel --group "perl -ne '/^\\S+\\s+\\S+$/ and print \$ARGV,
|
|||
./a/bar.diff
|
||||
./b/bar.diff
|
||||
./b/bar.diff
|
||||
find . -type f | parallel -v --group "perl -ne '/^\\S+\\s+\\S+$/ and print \$ARGV,\"\\n\"'" | sort
|
||||
find . -type f | parallel -v --group "perl -ne '/^\\S+\\s+\\S+$/ and print \$ARGV,\"\\n\"'" | LC_ALL=C sort
|
||||
./ ab /c' d/ ef"g.diff
|
||||
./ ab /c' d/ ef"g.diff
|
||||
./ ab/c"d/ef g.diff
|
||||
|
@ -439,7 +439,7 @@ perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\n"' ./more_than_5000-9996
|
|||
perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\n"' ./more_than_5000-9997
|
||||
perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\n"' ./more_than_5000-9998
|
||||
perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\n"' ./more_than_5000-9999
|
||||
find . -type f | parallel -q --group perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\n"' | sort
|
||||
find . -type f | parallel -q --group perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\n"' | LC_ALL=C sort
|
||||
./ ab /c' d/ ef"g.diff
|
||||
./ ab /c' d/ ef"g.diff
|
||||
./ ab/c"d/ef g.diff
|
||||
|
@ -458,7 +458,7 @@ find . -type f | parallel -q --group perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\
|
|||
./a/bar.diff
|
||||
./b/bar.diff
|
||||
./b/bar.diff
|
||||
find . -type f | parallel -qv --group perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\n"' | sort
|
||||
find . -type f | parallel -qv --group perl -ne '/^\S+\s+\S+$/ and print $ARGV,"\n"' | LC_ALL=C sort
|
||||
./ ab /c' d/ ef"g.diff
|
||||
./ ab /c' d/ ef"g.diff
|
||||
./ ab/c"d/ef g.diff
|
||||
|
|
|
@ -81,7 +81,7 @@ bug #37956: --colsep does not default to '\t' as specified in the man page.
|
|||
one 1
|
||||
echo '### Test --tollef'
|
||||
### Test --tollef
|
||||
stdout parallel -k --tollef echo -- 1 2 3 ::: a b c | sort
|
||||
stdout parallel -k --tollef echo -- 1 2 3 ::: a b c | LC_ALL=C sort
|
||||
parallel: Error: --tollef has been retired.
|
||||
parallel: Error: Remove --tollef or use --gnu to override --tollef.
|
||||
echo '### Test --tollef --gnu'
|
||||
|
|
|
@ -15,7 +15,7 @@ par_env_newline_backslash_onall_bash 8 10
|
|||
par_env_newline_backslash_onall_bash 8 10V2=
|
||||
par_env_newline_backslash_onall_bash 8 2\\ \92V2=\\ \92
|
||||
par_env_newline_backslash_onall_csh ### Test --env for \n and \\ - single and double --onall (*csh only) - no output is good but csh fails
|
||||
par_env_newline_backslash_onall_csh 8 Unmatched ".
|
||||
par_env_newline_backslash_onall_csh 8 Unmatched '"'.
|
||||
par_space ### Test --env - https://savannah.gnu.org/bugs/?37351
|
||||
par_space a 2 spaces b 1
|
||||
par_space a 2 spaces b 1
|
||||
|
|
|
@ -17,7 +17,7 @@ echo '### This causes problems if we kill child processes'; # 2>/dev/null to avo
|
|||
437c0d47a99b9a7c5bcb1d132f94c2e6 -
|
||||
echo '### This causes problems if we kill child processes (II)'; # 2>/dev/null to avoid parallel: Warning: Starting 45 processes took > 2 sec.
|
||||
### This causes problems if we kill child processes (II)
|
||||
seq 1 40 | parallel -j 0 seq 1 10 '| parallel -j 3 echo' 2>/dev/null | sort | md5sum
|
||||
seq 1 40 | parallel -j 0 seq 1 10 '| parallel -j 3 echo' 2>/dev/null | LC_ALL=C sort | md5sum
|
||||
d7fb96d6a56d4347bc24930a395c431a -
|
||||
echo '### Test -m'; (echo foo;echo bar) | parallel -j1 -m echo 1{}2{}3 A{}B{}C
|
||||
### Test -m
|
||||
|
|
|
@ -61,7 +61,7 @@ echo '### Check that 4 processes are really used'
|
|||
echo '### --version must have higher priority than retired options'
|
||||
### --version must have higher priority than retired options
|
||||
$NICEPAR --version -g -Y -U -W -T | tail
|
||||
GNU parallel 20180916
|
||||
GNU parallel 20180923
|
||||
Copyright (C) 2007-2018 Ole Tange and Free Software Foundation, Inc.
|
||||
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
|
||||
This is free software: you are free to change and redistribute it.
|
||||
|
|
|
@ -6,19 +6,15 @@ MAXTIME=50 RETRIES=2 MAXPROC=11 MAXINNERPROC=3
|
|||
< alpha
|
||||
7d4
|
||||
< syllable
|
||||
10d6
|
||||
< openindiana
|
||||
13d8
|
||||
13d9
|
||||
< debian-ppc
|
||||
17d11
|
||||
< ubuntu
|
||||
28,32d21
|
||||
< dragonfly
|
||||
< vax
|
||||
< ultrix
|
||||
< minix
|
||||
< irix
|
||||
34,35d22
|
||||
34,35d23
|
||||
< beaglebone
|
||||
< cubieboard2
|
||||
### Copy commands to servers
|
||||
|
@ -28,11 +24,13 @@ bin/parallel tru64 copy tru64 bin/parallel parallel
|
|||
bin/parallel hpux-ia64 copy hpux-ia64 bin/parallel parallel
|
||||
bin/parallel raspbian copy raspbian bin/parallel parallel
|
||||
bin/parallel solaris copy solaris bin/parallel parallel
|
||||
bin/parallel openindiana copy openindiana bin/parallel parallel
|
||||
bin/parallel aix copy aix bin/parallel parallel
|
||||
bin/parallel hpux copy hpux bin/parallel parallel
|
||||
bin/parallel suse copy suse bin/parallel parallel
|
||||
bin/parallel solaris-x86 copy solaris-x86 bin/parallel parallel
|
||||
bin/parallel mandriva copy mandriva bin/parallel parallel
|
||||
bin/parallel ubuntu copy ubuntu bin/parallel parallel
|
||||
bin/parallel scosysv copy scosysv bin/parallel parallel
|
||||
bin/parallel unixware copy unixware bin/parallel parallel
|
||||
bin/parallel centos copy centos bin/parallel parallel
|
||||
|
@ -52,11 +50,13 @@ bin/env_parallel tru64 copy tru64 bin/env_parallel env_parallel
|
|||
bin/env_parallel hpux-ia64 copy hpux-ia64 bin/env_parallel env_parallel
|
||||
bin/env_parallel raspbian copy raspbian bin/env_parallel env_parallel
|
||||
bin/env_parallel solaris copy solaris bin/env_parallel env_parallel
|
||||
bin/env_parallel openindiana copy openindiana bin/env_parallel env_parallel
|
||||
bin/env_parallel aix copy aix bin/env_parallel env_parallel
|
||||
bin/env_parallel hpux copy hpux bin/env_parallel env_parallel
|
||||
bin/env_parallel suse copy suse bin/env_parallel env_parallel
|
||||
bin/env_parallel solaris-x86 copy solaris-x86 bin/env_parallel env_parallel
|
||||
bin/env_parallel mandriva copy mandriva bin/env_parallel env_parallel
|
||||
bin/env_parallel ubuntu copy ubuntu bin/env_parallel env_parallel
|
||||
bin/env_parallel scosysv copy scosysv bin/env_parallel env_parallel
|
||||
bin/env_parallel unixware copy unixware bin/env_parallel env_parallel
|
||||
bin/env_parallel centos copy centos bin/env_parallel env_parallel
|
||||
|
@ -76,11 +76,13 @@ bin/env_parallel.ash tru64 copy tru64 bin/env_parallel.ash env_parallel.ash
|
|||
bin/env_parallel.ash hpux-ia64 copy hpux-ia64 bin/env_parallel.ash env_parallel.ash
|
||||
bin/env_parallel.ash raspbian copy raspbian bin/env_parallel.ash env_parallel.ash
|
||||
bin/env_parallel.ash solaris copy solaris bin/env_parallel.ash env_parallel.ash
|
||||
bin/env_parallel.ash openindiana copy openindiana bin/env_parallel.ash env_parallel.ash
|
||||
bin/env_parallel.ash aix copy aix bin/env_parallel.ash env_parallel.ash
|
||||
bin/env_parallel.ash hpux copy hpux bin/env_parallel.ash env_parallel.ash
|
||||
bin/env_parallel.ash suse copy suse bin/env_parallel.ash env_parallel.ash
|
||||
bin/env_parallel.ash solaris-x86 copy solaris-x86 bin/env_parallel.ash env_parallel.ash
|
||||
bin/env_parallel.ash mandriva copy mandriva bin/env_parallel.ash env_parallel.ash
|
||||
bin/env_parallel.ash ubuntu copy ubuntu bin/env_parallel.ash env_parallel.ash
|
||||
bin/env_parallel.ash scosysv copy scosysv bin/env_parallel.ash env_parallel.ash
|
||||
bin/env_parallel.ash unixware copy unixware bin/env_parallel.ash env_parallel.ash
|
||||
bin/env_parallel.ash centos copy centos bin/env_parallel.ash env_parallel.ash
|
||||
|
@ -100,11 +102,13 @@ bin/env_parallel.bash tru64 copy tru64 bin/env_parallel.bash env_parallel.bash
|
|||
bin/env_parallel.bash hpux-ia64 copy hpux-ia64 bin/env_parallel.bash env_parallel.bash
|
||||
bin/env_parallel.bash raspbian copy raspbian bin/env_parallel.bash env_parallel.bash
|
||||
bin/env_parallel.bash solaris copy solaris bin/env_parallel.bash env_parallel.bash
|
||||
bin/env_parallel.bash openindiana copy openindiana bin/env_parallel.bash env_parallel.bash
|
||||
bin/env_parallel.bash aix copy aix bin/env_parallel.bash env_parallel.bash
|
||||
bin/env_parallel.bash hpux copy hpux bin/env_parallel.bash env_parallel.bash
|
||||
bin/env_parallel.bash suse copy suse bin/env_parallel.bash env_parallel.bash
|
||||
bin/env_parallel.bash solaris-x86 copy solaris-x86 bin/env_parallel.bash env_parallel.bash
|
||||
bin/env_parallel.bash mandriva copy mandriva bin/env_parallel.bash env_parallel.bash
|
||||
bin/env_parallel.bash ubuntu copy ubuntu bin/env_parallel.bash env_parallel.bash
|
||||
bin/env_parallel.bash scosysv copy scosysv bin/env_parallel.bash env_parallel.bash
|
||||
bin/env_parallel.bash unixware copy unixware bin/env_parallel.bash env_parallel.bash
|
||||
bin/env_parallel.bash centos copy centos bin/env_parallel.bash env_parallel.bash
|
||||
|
@ -124,11 +128,13 @@ bin/env_parallel.csh tru64 copy tru64 bin/env_parallel.csh env_parallel.csh
|
|||
bin/env_parallel.csh hpux-ia64 copy hpux-ia64 bin/env_parallel.csh env_parallel.csh
|
||||
bin/env_parallel.csh raspbian copy raspbian bin/env_parallel.csh env_parallel.csh
|
||||
bin/env_parallel.csh solaris copy solaris bin/env_parallel.csh env_parallel.csh
|
||||
bin/env_parallel.csh openindiana copy openindiana bin/env_parallel.csh env_parallel.csh
|
||||
bin/env_parallel.csh aix copy aix bin/env_parallel.csh env_parallel.csh
|
||||
bin/env_parallel.csh hpux copy hpux bin/env_parallel.csh env_parallel.csh
|
||||
bin/env_parallel.csh suse copy suse bin/env_parallel.csh env_parallel.csh
|
||||
bin/env_parallel.csh solaris-x86 copy solaris-x86 bin/env_parallel.csh env_parallel.csh
|
||||
bin/env_parallel.csh mandriva copy mandriva bin/env_parallel.csh env_parallel.csh
|
||||
bin/env_parallel.csh ubuntu copy ubuntu bin/env_parallel.csh env_parallel.csh
|
||||
bin/env_parallel.csh scosysv copy scosysv bin/env_parallel.csh env_parallel.csh
|
||||
bin/env_parallel.csh unixware copy unixware bin/env_parallel.csh env_parallel.csh
|
||||
bin/env_parallel.csh centos copy centos bin/env_parallel.csh env_parallel.csh
|
||||
|
@ -148,11 +154,13 @@ bin/env_parallel.dash tru64 copy tru64 bin/env_parallel.dash env_parallel.dash
|
|||
bin/env_parallel.dash hpux-ia64 copy hpux-ia64 bin/env_parallel.dash env_parallel.dash
|
||||
bin/env_parallel.dash raspbian copy raspbian bin/env_parallel.dash env_parallel.dash
|
||||
bin/env_parallel.dash solaris copy solaris bin/env_parallel.dash env_parallel.dash
|
||||
bin/env_parallel.dash openindiana copy openindiana bin/env_parallel.dash env_parallel.dash
|
||||
bin/env_parallel.dash aix copy aix bin/env_parallel.dash env_parallel.dash
|
||||
bin/env_parallel.dash hpux copy hpux bin/env_parallel.dash env_parallel.dash
|
||||
bin/env_parallel.dash suse copy suse bin/env_parallel.dash env_parallel.dash
|
||||
bin/env_parallel.dash solaris-x86 copy solaris-x86 bin/env_parallel.dash env_parallel.dash
|
||||
bin/env_parallel.dash mandriva copy mandriva bin/env_parallel.dash env_parallel.dash
|
||||
bin/env_parallel.dash ubuntu copy ubuntu bin/env_parallel.dash env_parallel.dash
|
||||
bin/env_parallel.dash scosysv copy scosysv bin/env_parallel.dash env_parallel.dash
|
||||
bin/env_parallel.dash unixware copy unixware bin/env_parallel.dash env_parallel.dash
|
||||
bin/env_parallel.dash centos copy centos bin/env_parallel.dash env_parallel.dash
|
||||
|
@ -172,11 +180,13 @@ bin/env_parallel.fish tru64 copy tru64 bin/env_parallel.fish env_parallel.fish
|
|||
bin/env_parallel.fish hpux-ia64 copy hpux-ia64 bin/env_parallel.fish env_parallel.fish
|
||||
bin/env_parallel.fish raspbian copy raspbian bin/env_parallel.fish env_parallel.fish
|
||||
bin/env_parallel.fish solaris copy solaris bin/env_parallel.fish env_parallel.fish
|
||||
bin/env_parallel.fish openindiana copy openindiana bin/env_parallel.fish env_parallel.fish
|
||||
bin/env_parallel.fish aix copy aix bin/env_parallel.fish env_parallel.fish
|
||||
bin/env_parallel.fish hpux copy hpux bin/env_parallel.fish env_parallel.fish
|
||||
bin/env_parallel.fish suse copy suse bin/env_parallel.fish env_parallel.fish
|
||||
bin/env_parallel.fish solaris-x86 copy solaris-x86 bin/env_parallel.fish env_parallel.fish
|
||||
bin/env_parallel.fish mandriva copy mandriva bin/env_parallel.fish env_parallel.fish
|
||||
bin/env_parallel.fish ubuntu copy ubuntu bin/env_parallel.fish env_parallel.fish
|
||||
bin/env_parallel.fish scosysv copy scosysv bin/env_parallel.fish env_parallel.fish
|
||||
bin/env_parallel.fish unixware copy unixware bin/env_parallel.fish env_parallel.fish
|
||||
bin/env_parallel.fish centos copy centos bin/env_parallel.fish env_parallel.fish
|
||||
|
@ -196,11 +206,13 @@ bin/env_parallel.ksh tru64 copy tru64 bin/env_parallel.ksh env_parallel.ksh
|
|||
bin/env_parallel.ksh hpux-ia64 copy hpux-ia64 bin/env_parallel.ksh env_parallel.ksh
|
||||
bin/env_parallel.ksh raspbian copy raspbian bin/env_parallel.ksh env_parallel.ksh
|
||||
bin/env_parallel.ksh solaris copy solaris bin/env_parallel.ksh env_parallel.ksh
|
||||
bin/env_parallel.ksh openindiana copy openindiana bin/env_parallel.ksh env_parallel.ksh
|
||||
bin/env_parallel.ksh aix copy aix bin/env_parallel.ksh env_parallel.ksh
|
||||
bin/env_parallel.ksh hpux copy hpux bin/env_parallel.ksh env_parallel.ksh
|
||||
bin/env_parallel.ksh suse copy suse bin/env_parallel.ksh env_parallel.ksh
|
||||
bin/env_parallel.ksh solaris-x86 copy solaris-x86 bin/env_parallel.ksh env_parallel.ksh
|
||||
bin/env_parallel.ksh mandriva copy mandriva bin/env_parallel.ksh env_parallel.ksh
|
||||
bin/env_parallel.ksh ubuntu copy ubuntu bin/env_parallel.ksh env_parallel.ksh
|
||||
bin/env_parallel.ksh scosysv copy scosysv bin/env_parallel.ksh env_parallel.ksh
|
||||
bin/env_parallel.ksh unixware copy unixware bin/env_parallel.ksh env_parallel.ksh
|
||||
bin/env_parallel.ksh centos copy centos bin/env_parallel.ksh env_parallel.ksh
|
||||
|
@ -220,11 +232,13 @@ bin/env_parallel.mksh tru64 copy tru64 bin/env_parallel.mksh env_parallel.mksh
|
|||
bin/env_parallel.mksh hpux-ia64 copy hpux-ia64 bin/env_parallel.mksh env_parallel.mksh
|
||||
bin/env_parallel.mksh raspbian copy raspbian bin/env_parallel.mksh env_parallel.mksh
|
||||
bin/env_parallel.mksh solaris copy solaris bin/env_parallel.mksh env_parallel.mksh
|
||||
bin/env_parallel.mksh openindiana copy openindiana bin/env_parallel.mksh env_parallel.mksh
|
||||
bin/env_parallel.mksh aix copy aix bin/env_parallel.mksh env_parallel.mksh
|
||||
bin/env_parallel.mksh hpux copy hpux bin/env_parallel.mksh env_parallel.mksh
|
||||
bin/env_parallel.mksh suse copy suse bin/env_parallel.mksh env_parallel.mksh
|
||||
bin/env_parallel.mksh solaris-x86 copy solaris-x86 bin/env_parallel.mksh env_parallel.mksh
|
||||
bin/env_parallel.mksh mandriva copy mandriva bin/env_parallel.mksh env_parallel.mksh
|
||||
bin/env_parallel.mksh ubuntu copy ubuntu bin/env_parallel.mksh env_parallel.mksh
|
||||
bin/env_parallel.mksh scosysv copy scosysv bin/env_parallel.mksh env_parallel.mksh
|
||||
bin/env_parallel.mksh unixware copy unixware bin/env_parallel.mksh env_parallel.mksh
|
||||
bin/env_parallel.mksh centos copy centos bin/env_parallel.mksh env_parallel.mksh
|
||||
|
@ -244,11 +258,13 @@ bin/env_parallel.pdksh tru64 copy tru64 bin/env_parallel.pdksh env_parallel.pdks
|
|||
bin/env_parallel.pdksh hpux-ia64 copy hpux-ia64 bin/env_parallel.pdksh env_parallel.pdksh
|
||||
bin/env_parallel.pdksh raspbian copy raspbian bin/env_parallel.pdksh env_parallel.pdksh
|
||||
bin/env_parallel.pdksh solaris copy solaris bin/env_parallel.pdksh env_parallel.pdksh
|
||||
bin/env_parallel.pdksh openindiana copy openindiana bin/env_parallel.pdksh env_parallel.pdksh
|
||||
bin/env_parallel.pdksh aix copy aix bin/env_parallel.pdksh env_parallel.pdksh
|
||||
bin/env_parallel.pdksh hpux copy hpux bin/env_parallel.pdksh env_parallel.pdksh
|
||||
bin/env_parallel.pdksh suse copy suse bin/env_parallel.pdksh env_parallel.pdksh
|
||||
bin/env_parallel.pdksh solaris-x86 copy solaris-x86 bin/env_parallel.pdksh env_parallel.pdksh
|
||||
bin/env_parallel.pdksh mandriva copy mandriva bin/env_parallel.pdksh env_parallel.pdksh
|
||||
bin/env_parallel.pdksh ubuntu copy ubuntu bin/env_parallel.pdksh env_parallel.pdksh
|
||||
bin/env_parallel.pdksh scosysv copy scosysv bin/env_parallel.pdksh env_parallel.pdksh
|
||||
bin/env_parallel.pdksh unixware copy unixware bin/env_parallel.pdksh env_parallel.pdksh
|
||||
bin/env_parallel.pdksh centos copy centos bin/env_parallel.pdksh env_parallel.pdksh
|
||||
|
@ -268,11 +284,13 @@ bin/env_parallel.sh tru64 copy tru64 bin/env_parallel.sh env_parallel.sh
|
|||
bin/env_parallel.sh hpux-ia64 copy hpux-ia64 bin/env_parallel.sh env_parallel.sh
|
||||
bin/env_parallel.sh raspbian copy raspbian bin/env_parallel.sh env_parallel.sh
|
||||
bin/env_parallel.sh solaris copy solaris bin/env_parallel.sh env_parallel.sh
|
||||
bin/env_parallel.sh openindiana copy openindiana bin/env_parallel.sh env_parallel.sh
|
||||
bin/env_parallel.sh aix copy aix bin/env_parallel.sh env_parallel.sh
|
||||
bin/env_parallel.sh hpux copy hpux bin/env_parallel.sh env_parallel.sh
|
||||
bin/env_parallel.sh suse copy suse bin/env_parallel.sh env_parallel.sh
|
||||
bin/env_parallel.sh solaris-x86 copy solaris-x86 bin/env_parallel.sh env_parallel.sh
|
||||
bin/env_parallel.sh mandriva copy mandriva bin/env_parallel.sh env_parallel.sh
|
||||
bin/env_parallel.sh ubuntu copy ubuntu bin/env_parallel.sh env_parallel.sh
|
||||
bin/env_parallel.sh scosysv copy scosysv bin/env_parallel.sh env_parallel.sh
|
||||
bin/env_parallel.sh unixware copy unixware bin/env_parallel.sh env_parallel.sh
|
||||
bin/env_parallel.sh centos copy centos bin/env_parallel.sh env_parallel.sh
|
||||
|
@ -292,11 +310,13 @@ bin/env_parallel.tcsh tru64 copy tru64 bin/env_parallel.tcsh env_parallel.tcsh
|
|||
bin/env_parallel.tcsh hpux-ia64 copy hpux-ia64 bin/env_parallel.tcsh env_parallel.tcsh
|
||||
bin/env_parallel.tcsh raspbian copy raspbian bin/env_parallel.tcsh env_parallel.tcsh
|
||||
bin/env_parallel.tcsh solaris copy solaris bin/env_parallel.tcsh env_parallel.tcsh
|
||||
bin/env_parallel.tcsh openindiana copy openindiana bin/env_parallel.tcsh env_parallel.tcsh
|
||||
bin/env_parallel.tcsh aix copy aix bin/env_parallel.tcsh env_parallel.tcsh
|
||||
bin/env_parallel.tcsh hpux copy hpux bin/env_parallel.tcsh env_parallel.tcsh
|
||||
bin/env_parallel.tcsh suse copy suse bin/env_parallel.tcsh env_parallel.tcsh
|
||||
bin/env_parallel.tcsh solaris-x86 copy solaris-x86 bin/env_parallel.tcsh env_parallel.tcsh
|
||||
bin/env_parallel.tcsh mandriva copy mandriva bin/env_parallel.tcsh env_parallel.tcsh
|
||||
bin/env_parallel.tcsh ubuntu copy ubuntu bin/env_parallel.tcsh env_parallel.tcsh
|
||||
bin/env_parallel.tcsh scosysv copy scosysv bin/env_parallel.tcsh env_parallel.tcsh
|
||||
bin/env_parallel.tcsh unixware copy unixware bin/env_parallel.tcsh env_parallel.tcsh
|
||||
bin/env_parallel.tcsh centos copy centos bin/env_parallel.tcsh env_parallel.tcsh
|
||||
|
@ -316,11 +336,13 @@ bin/env_parallel.zsh tru64 copy tru64 bin/env_parallel.zsh env_parallel.zsh
|
|||
bin/env_parallel.zsh hpux-ia64 copy hpux-ia64 bin/env_parallel.zsh env_parallel.zsh
|
||||
bin/env_parallel.zsh raspbian copy raspbian bin/env_parallel.zsh env_parallel.zsh
|
||||
bin/env_parallel.zsh solaris copy solaris bin/env_parallel.zsh env_parallel.zsh
|
||||
bin/env_parallel.zsh openindiana copy openindiana bin/env_parallel.zsh env_parallel.zsh
|
||||
bin/env_parallel.zsh aix copy aix bin/env_parallel.zsh env_parallel.zsh
|
||||
bin/env_parallel.zsh hpux copy hpux bin/env_parallel.zsh env_parallel.zsh
|
||||
bin/env_parallel.zsh suse copy suse bin/env_parallel.zsh env_parallel.zsh
|
||||
bin/env_parallel.zsh solaris-x86 copy solaris-x86 bin/env_parallel.zsh env_parallel.zsh
|
||||
bin/env_parallel.zsh mandriva copy mandriva bin/env_parallel.zsh env_parallel.zsh
|
||||
bin/env_parallel.zsh ubuntu copy ubuntu bin/env_parallel.zsh env_parallel.zsh
|
||||
bin/env_parallel.zsh scosysv copy scosysv bin/env_parallel.zsh env_parallel.zsh
|
||||
bin/env_parallel.zsh unixware copy unixware bin/env_parallel.zsh env_parallel.zsh
|
||||
bin/env_parallel.zsh centos copy centos bin/env_parallel.zsh env_parallel.zsh
|
||||
|
@ -340,11 +362,13 @@ bin/parcat tru64 copy tru64 bin/parcat parcat
|
|||
bin/parcat hpux-ia64 copy hpux-ia64 bin/parcat parcat
|
||||
bin/parcat raspbian copy raspbian bin/parcat parcat
|
||||
bin/parcat solaris copy solaris bin/parcat parcat
|
||||
bin/parcat openindiana copy openindiana bin/parcat parcat
|
||||
bin/parcat aix copy aix bin/parcat parcat
|
||||
bin/parcat hpux copy hpux bin/parcat parcat
|
||||
bin/parcat suse copy suse bin/parcat parcat
|
||||
bin/parcat solaris-x86 copy solaris-x86 bin/parcat parcat
|
||||
bin/parcat mandriva copy mandriva bin/parcat parcat
|
||||
bin/parcat ubuntu copy ubuntu bin/parcat parcat
|
||||
bin/parcat scosysv copy scosysv bin/parcat parcat
|
||||
bin/parcat unixware copy unixware bin/parcat parcat
|
||||
bin/parcat centos copy centos bin/parcat parcat
|
||||
|
@ -364,11 +388,13 @@ bin/stdout tru64 copy tru64 bin/stdout stdout
|
|||
bin/stdout hpux-ia64 copy hpux-ia64 bin/stdout stdout
|
||||
bin/stdout raspbian copy raspbian bin/stdout stdout
|
||||
bin/stdout solaris copy solaris bin/stdout stdout
|
||||
bin/stdout openindiana copy openindiana bin/stdout stdout
|
||||
bin/stdout aix copy aix bin/stdout stdout
|
||||
bin/stdout hpux copy hpux bin/stdout stdout
|
||||
bin/stdout suse copy suse bin/stdout stdout
|
||||
bin/stdout solaris-x86 copy solaris-x86 bin/stdout stdout
|
||||
bin/stdout mandriva copy mandriva bin/stdout stdout
|
||||
bin/stdout ubuntu copy ubuntu bin/stdout stdout
|
||||
bin/stdout scosysv copy scosysv bin/stdout stdout
|
||||
bin/stdout unixware copy unixware bin/stdout stdout
|
||||
bin/stdout centos copy centos bin/stdout stdout
|
||||
|
@ -381,7 +407,6 @@ bin/stdout freebsd copy freebsd bin/stdout stdout
|
|||
bin/stdout debian copy debian bin/stdout stdout
|
||||
bin/stdout hurd copy hurd bin/stdout stdout
|
||||
bin/stdout minix copy minix bin/stdout stdout
|
||||
bin/stdout minix cat: stdout: no space left on device
|
||||
Done copying
|
||||
|
||||
echo
|
||||
|
@ -413,7 +438,7 @@ redhat Works on redhat.polarhome.com
|
|||
scosysv Works on scosysv.polarhome.com
|
||||
solaris Works on solaris
|
||||
solaris-x86 Works on solaris-x86
|
||||
sshminix minix Works on minix
|
||||
sshwithpass minix Works on minix
|
||||
suse Works on suse
|
||||
tru64 Works on tru64.polarhome.com
|
||||
ubuntu Works on ubuntu
|
||||
|
@ -450,6 +475,8 @@ netbsd 1
|
|||
netbsd 1
|
||||
openbsd 1
|
||||
openbsd 1
|
||||
openindiana 1
|
||||
openindiana 1
|
||||
pidora 1
|
||||
pidora 1
|
||||
qnx 1
|
||||
|
@ -467,8 +494,8 @@ solaris
|
|||
solaris 2
|
||||
solaris-x86
|
||||
solaris-x86 1
|
||||
sshminix minix 1
|
||||
sshminix minix 1
|
||||
sshwithpass minix 1
|
||||
sshwithpass minix 1
|
||||
suse 1
|
||||
suse 1
|
||||
tru64 1
|
||||
|
@ -520,8 +547,8 @@ solaris 2
|
|||
solaris 2
|
||||
solaris-x86 1
|
||||
solaris-x86 1
|
||||
sshminix minix 1
|
||||
sshminix minix 1
|
||||
sshwithpass minix 1
|
||||
sshwithpass minix 1
|
||||
suse 1
|
||||
suse 1
|
||||
tru64 1
|
||||
|
@ -637,6 +664,8 @@ netbsd export: Command not found.
|
|||
netbsd funcA: Command not found.
|
||||
openbsd test funcA
|
||||
openbsd bash only A
|
||||
openindiana test funcA
|
||||
openindiana bash only A
|
||||
pidora test funcA
|
||||
pidora bash only A
|
||||
qnx /bin/sh: syntax error: `(' unexpected
|
||||
|
@ -650,11 +679,13 @@ solaris test funcA
|
|||
solaris bash only A
|
||||
solaris-x86 test funcA
|
||||
solaris-x86 bash only A
|
||||
sshminix minix test funcA
|
||||
sshwithpass minix test funcA
|
||||
suse test funcA
|
||||
suse bash only A
|
||||
tru64 test funcA
|
||||
tru64 bash only A
|
||||
ubuntu test funcA
|
||||
ubuntu bash only A
|
||||
unixware test funcA
|
||||
unixware UX:sh (/bin/sh): ERROR: source: Not found
|
||||
unixware UX:sh (/bin/sh): ERROR: /bin/sh: Syntax error at line 3: `(' unexpected
|
||||
|
@ -702,6 +733,8 @@ netbsd bash only B
|
|||
netbsd /home/t/tange/setupenv: line 9: syntax error: unexpected end of file
|
||||
openbsd test funcB
|
||||
openbsd bash only B
|
||||
openindiana test funcB
|
||||
openindiana bash only B
|
||||
pidora test funcB
|
||||
pidora bash only B
|
||||
qnx test funcB
|
||||
|
@ -717,11 +750,13 @@ solaris test funcB
|
|||
solaris bash only B
|
||||
solaris-x86 test funcB
|
||||
solaris-x86 bash only B
|
||||
sshminix minix test funcB
|
||||
sshwithpass minix test funcB
|
||||
suse test funcB
|
||||
suse bash only B
|
||||
tru64 test funcB
|
||||
tru64 bash only B
|
||||
ubuntu test funcB
|
||||
ubuntu bash only B
|
||||
unixware test funcB
|
||||
unixware bash only B
|
||||
echo
|
||||
|
@ -949,17 +984,17 @@ solaris-x86 /home/tange/.profile
|
|||
solaris-x86 /home/tange/.cshrc
|
||||
solaris-x86 /home/tange/.tcshrc
|
||||
solaris-x86 install-OK
|
||||
sshminix minix Installed env_parallel in:
|
||||
sshminix minix /home/t/tange/.bashrc
|
||||
sshminix minix /home/t/tange/.shrc
|
||||
sshminix minix /home/t/tange/.zshenv
|
||||
sshminix minix /home/t/tange/.config/fish/config.fish
|
||||
sshminix minix /home/t/tange/.kshrc
|
||||
sshminix minix /home/t/tange/.mkshrc
|
||||
sshminix minix /home/t/tange/.profile
|
||||
sshminix minix /home/t/tange/.cshrc
|
||||
sshminix minix /home/t/tange/.tcshrc
|
||||
sshminix minix install-OK
|
||||
sshwithpass minix Installed env_parallel in:
|
||||
sshwithpass minix /home/t/tange/.bashrc
|
||||
sshwithpass minix /home/t/tange/.shrc
|
||||
sshwithpass minix /home/t/tange/.zshenv
|
||||
sshwithpass minix /home/t/tange/.config/fish/config.fish
|
||||
sshwithpass minix /home/t/tange/.kshrc
|
||||
sshwithpass minix /home/t/tange/.mkshrc
|
||||
sshwithpass minix /home/t/tange/.profile
|
||||
sshwithpass minix /home/t/tange/.cshrc
|
||||
sshwithpass minix /home/t/tange/.tcshrc
|
||||
sshwithpass minix install-OK
|
||||
suse Installed env_parallel in:
|
||||
suse /home/t/tange/.bashrc
|
||||
suse /home/t/tange/.shrc
|
||||
|
@ -1021,7 +1056,7 @@ redhat env_parallel run-OK
|
|||
scosysv env_parallel run-OK
|
||||
solaris env_parallel run-OK
|
||||
solaris-x86 env_parallel run-OK
|
||||
sshminix minix env_parallel run-OK
|
||||
sshwithpass minix env_parallel run-OK
|
||||
suse env_parallel run-OK
|
||||
tru64 env_parallel run-OK
|
||||
ubuntu env_parallel run-OK
|
||||
|
@ -1049,7 +1084,7 @@ redhat reading from process substitution OK
|
|||
scosysv reading from process substitution OK
|
||||
solaris reading from process substitution OK
|
||||
solaris-x86 reading from process substitution OK
|
||||
sshminix minix reading from process substitution OK
|
||||
sshwithpass minix reading from process substitution OK
|
||||
suse reading from process substitution OK
|
||||
tru64 reading from process substitution OK
|
||||
ubuntu reading from process substitution OK
|
||||
|
@ -1107,7 +1142,7 @@ solaris ### Test if empty command name in process list causes problems
|
|||
solaris OK_with_empty_cmd
|
||||
solaris-x86 ### Test if empty command name in process list causes problems
|
||||
solaris-x86 OK_with_empty_cmd
|
||||
sshminix minix ### Test if empty command name in process list causes problems
|
||||
sshwithpass minix ### Test if empty command name in process list causes problems
|
||||
suse ### Test if empty command name in process list causes problems
|
||||
suse OK_with_empty_cmd
|
||||
tru64 ### Test if empty command name in process list causes problems
|
||||
|
@ -1151,7 +1186,7 @@ redhat 1 2 1 2 3 1 2 3 4
|
|||
scosysv 1 2 1 2 3 1 2 3 4
|
||||
solaris 1 2 1 2 3 1 2 3 4
|
||||
solaris-x86 1 2 1 2 3 1 2 3 4
|
||||
sshminix minix 1 2 1 2 3 1 2 3 4
|
||||
sshwithpass minix 1 2 1 2 3 1 2 3 4
|
||||
suse 1 2 1 2 3 1 2 3 4
|
||||
tru64 1 2 1 2 3 1 2 3 4
|
||||
ubuntu 1 2 1 2 3 1 2 3 4
|
||||
|
@ -1186,7 +1221,7 @@ redhat 2 2 3 2 3 4
|
|||
scosysv 2 2 3 2 3 4
|
||||
solaris 1 2 1 2 1 2
|
||||
solaris-x86 2 2 3 2 3 4
|
||||
sshminix minix 2 2 3 2 3 4
|
||||
sshwithpass minix 2 2 3 2 3 4
|
||||
suse 2 2 3 2 3 4
|
||||
tru64 2 2 3 2 3 4
|
||||
ubuntu 2 2 3 2 3 4
|
||||
|
@ -1228,7 +1263,7 @@ redhat 1 2,1 2 3,1 2 3 4
|
|||
scosysv 1 2,1 2 3,1 2 3 4
|
||||
solaris 1 2,1 2 3,1 2 3 4
|
||||
solaris-x86 1 2,1 2 3,1 2 3 4
|
||||
sshminix minix 1 2,1 2 3,1 2 3 4
|
||||
sshwithpass minix 1 2,1 2 3,1 2 3 4
|
||||
suse 1 2,1 2 3,1 2 3 4
|
||||
tru64 1 2,1 2 3,1 2 3 4
|
||||
ubuntu 1 2,1 2 3,1 2 3 4
|
||||
|
@ -1263,7 +1298,7 @@ redhat 2,2 3,2 3 4
|
|||
scosysv 2,2 3,2 3 4
|
||||
solaris 1 2,1 2,1 2
|
||||
solaris-x86 2,2 3,2 3 4
|
||||
sshminix minix 2,2 3,2 3 4
|
||||
sshwithpass minix 2,2 3,2 3 4
|
||||
suse 2,2 3,2 3 4
|
||||
tru64 2,2 3,2 3 4
|
||||
ubuntu 2,2 3,2 3 4
|
||||
|
|
|
@ -150,9 +150,9 @@ B
|
|||
(echo 1; echo; echo 2) | parallel --no-run-if-empty echo
|
||||
9
|
||||
parallel ::: ls 'echo foo' pwd
|
||||
abc-file
|
||||
abc0-file
|
||||
abc_-file
|
||||
abc-file
|
||||
def-file
|
||||
fixedlen
|
||||
num1000000
|
||||
|
@ -389,12 +389,12 @@ pre-A-post
|
|||
=ls
|
||||
parallel 'set a="{}"; if( { test -d "$a" } ) echo "$a is a dir"' ::: *
|
||||
/bin/bash: -c: line 0: syntax error near unexpected token `)'
|
||||
/bin/bash: -c: line 0: `set a="abc-file"; if( { test -d "$a" } ) echo "$a is a dir"'
|
||||
/bin/bash: -c: line 0: syntax error near unexpected token `)'
|
||||
/bin/bash: -c: line 0: `set a="abc0-file"; if( { test -d "$a" } ) echo "$a is a dir"'
|
||||
/bin/bash: -c: line 0: syntax error near unexpected token `)'
|
||||
/bin/bash: -c: line 0: `set a="abc_-file"; if( { test -d "$a" } ) echo "$a is a dir"'
|
||||
/bin/bash: -c: line 0: syntax error near unexpected token `)'
|
||||
/bin/bash: -c: line 0: `set a="abc-file"; if( { test -d "$a" } ) echo "$a is a dir"'
|
||||
/bin/bash: -c: line 0: syntax error near unexpected token `)'
|
||||
/bin/bash: -c: line 0: `set a="def-file"; if( { test -d "$a" } ) echo "$a is a dir"'
|
||||
/bin/bash: -c: line 0: syntax error near unexpected token `)'
|
||||
/bin/bash: -c: line 0: `set a="fixedlen"; if( { test -d "$a" } ) echo "$a is a dir"'
|
||||
|
@ -574,7 +574,6 @@ Computer:jobs running/jobs completed/%of started jobs/Average seconds to complet
|
|||
|
||||
seq 1000 | parallel -j10 --bar '(echo -n {};sleep 0.1)' \
|
||||
2> >(zenity --timeout=15 --progress --auto-kill --auto-close)
|
||||
BASE64-Message: GtkDialog mapped without a transient parent. This is discouraged.
|
||||
parallel --joblog /tmp/log exit ::: 1 2 3 0
|
||||
cat /tmp/log;
|
||||
parallel --joblog /tmp/log exit ::: 1 2 3 0
|
||||
|
@ -826,9 +825,11 @@ foo bar baz
|
|||
in my_func baz
|
||||
parallel --record-env
|
||||
cat ~/.parallel/ignored_vars|sort
|
||||
_
|
||||
BASH_FUNC_run_once%%
|
||||
BASH_FUNC_run_test%%
|
||||
COLORFGBG
|
||||
COLORTERM
|
||||
DBUS_SESSION_BUS_ADDRESS
|
||||
DEBEMAIL
|
||||
DEBFULLNAME
|
||||
|
@ -845,7 +846,6 @@ HOME
|
|||
JAVA_HOME
|
||||
JDK_HOME
|
||||
KDE_FULL_SESSION
|
||||
KDE_MULTIHEAD
|
||||
KDE_SESSION_UID
|
||||
KDE_SESSION_VERSION
|
||||
KONSOLE_DBUS_SERVICE
|
||||
|
@ -867,6 +867,7 @@ MAKE_TERMERR
|
|||
MAKE_TERMOUT
|
||||
MANDATORY_PATH
|
||||
MFLAGS
|
||||
OLDPWD
|
||||
ORACLE_HOME
|
||||
ORACLE_SID
|
||||
PARALLEL
|
||||
|
@ -881,8 +882,8 @@ PERL_MM_OPT
|
|||
PROFILEHOME
|
||||
PWD
|
||||
QT_ACCESSIBILITY
|
||||
QT_IM_MODULE
|
||||
QT_LINUX_ACCESSIBILITY_ALWAYS_ON
|
||||
QT_AUTO_SCREEN_SCALE_FACTOR
|
||||
S_COLORS
|
||||
SERVER1
|
||||
SERVER2
|
||||
SESSION_MANAGER
|
||||
|
@ -913,7 +914,6 @@ XDG_SESSION_ID
|
|||
XDG_SESSION_PATH
|
||||
XDG_SESSION_TYPE
|
||||
XDG_VTNR
|
||||
_
|
||||
# The function is only copied if using Bash
|
||||
my_func2() {
|
||||
echo in my_func2 $VAR $1
|
||||
|
@ -1304,20 +1304,17 @@ cat: num_%header: No such file or directory
|
|||
/bin/bash: line 1: foo: command not found
|
||||
#!/usr/bin/perl
|
||||
print "@ARGV\n"
|
||||
Unescaped left brace in regex is deprecated, passed through in regex; marked by <-- HERE in m/%{ <-- HERE (.*?)}/ at /usr/bin/print line 528.
|
||||
Error: no such file "@ARGV\n"
|
||||
parallel perl_echo ::: foo bar
|
||||
/bin/bash: perl_echo: command not found
|
||||
#!/usr/bin/parallel --shebang-wrap /usr/bin/perl
|
||||
print "@ARGV\n"
|
||||
Unescaped left brace in regex is deprecated, passed through in regex; marked by <-- HERE in m/%{ <-- HERE (.*?)}/ at /usr/bin/print line 528.
|
||||
Error: no such file "@ARGV\n"
|
||||
perl_echo foo bar
|
||||
/bin/bash: perl_echo: command not found
|
||||
#!/usr/bin/parallel --shebang-wrap /usr/bin/perl
|
||||
|
||||
print "Arguments @ARGV\n";
|
||||
Unescaped left brace in regex is deprecated, passed through in regex; marked by <-- HERE in m/%{ <-- HERE (.*?)}/ at /usr/bin/print line 528.
|
||||
Error: no such file "Arguments @ARGV\n"
|
||||
#!/usr/bin/parallel --shebang-wrap /usr/bin/python
|
||||
|
||||
|
@ -1351,7 +1348,6 @@ Arguments
|
|||
|
||||
print "Arguments "
|
||||
puts ARGV
|
||||
Unescaped left brace in regex is deprecated, passed through in regex; marked by <-- HERE in m/%{ <-- HERE (.*?)}/ at /usr/bin/print line 528.
|
||||
Error: no such file "Arguments "
|
||||
/bin/bash: line 3: puts: command not found
|
||||
#!/usr/bin/parallel --shebang-wrap /usr/bin/octave
|
||||
|
@ -1425,6 +1421,7 @@ The second finished running in the foreground
|
|||
First started
|
||||
First done
|
||||
sem --id my_id -u 'echo Second started; sleep 10; echo Second done'
|
||||
Second done
|
||||
sem --jobs 3 --id my_id -u 'echo Start 1; sleep 5; echo 1 done' &&
|
||||
sem --jobs 3 --id my_id -u 'echo Start 2; sleep 6; echo 2 done' &&
|
||||
sem --jobs 3 --id my_id -u 'echo Start 3; sleep 7; echo 3 done' &&
|
||||
|
@ -1445,8 +1442,8 @@ Start 4
|
|||
Slow started
|
||||
Forced running after 1 sec
|
||||
Slow ended
|
||||
Give up after 2 secs
|
||||
parallel: Warning: Semaphore timed out. Stealing the semaphore.
|
||||
parallel: Warning: Semaphore timed out. Exiting.
|
||||
parallel --help
|
||||
Usage:
|
||||
|
||||
|
@ -1541,4 +1538,4 @@ C
|
|||
echo A
|
||||
echo B
|
||||
echo C
|
||||
8
|
||||
7
|
||||
|
|
|
@ -21,26 +21,6 @@ echo '### Test mutex. This should not mix output'; parallel --semaphore --id m
|
|||
19
|
||||
20
|
||||
done
|
||||
echo '### Test semaphore 2 jobs running simultaneously'
|
||||
### Test semaphore 2 jobs running simultaneously
|
||||
parallel --semaphore --id 2jobs -u -j2 'echo job1a 1; sleep 1; echo job1b 3'; sleep 0.2; parallel --semaphore --id 2jobs -u -j2 'echo job2a 2; sleep 1; echo job2b 5'; sleep 0.2; parallel --semaphore --id 2jobs -u -j2 'echo job3a 4; sleep 1; echo job3b 6'; parallel --semaphore --id 2jobs --wait; echo done
|
||||
job1a 1
|
||||
job2a 2
|
||||
job1b 3
|
||||
job3a 4
|
||||
job2b 5
|
||||
job3b 6
|
||||
done
|
||||
echo '### Test if parallel invoked as sem will run parallel --semaphore'
|
||||
### Test if parallel invoked as sem will run parallel --semaphore
|
||||
sem --id as_sem -u -j2 'echo job1a 1; sleep 1; echo job1b 3'; sleep 0.2; sem --id as_sem -u -j2 'echo job2a 2; sleep 1; echo job2b 5'; sleep 0.2; sem --id as_sem -u -j2 'echo job3a 4; sleep 1; echo job3b 6'; sem --id as_sem --wait; echo done
|
||||
job1a 1
|
||||
job2a 2
|
||||
job1b 3
|
||||
job3a 4
|
||||
job2b 5
|
||||
job3b 6
|
||||
done
|
||||
echo '### Test similar example as from man page - run 2 jobs simultaneously'
|
||||
### Test similar example as from man page - run 2 jobs simultaneously
|
||||
echo 'Expect done: 1 2 5 3 4'
|
||||
|
|
|
@ -37,7 +37,7 @@ bytes
|
|||
3072
|
||||
Current command: sqlite3
|
||||
foo
|
||||
sqltest.sqlite3: SQLite 3.x database
|
||||
sqltest.sqlite3: SQLite 3.x database, last written using SQLite version 3022000
|
||||
n|t
|
||||
1|Line 1
|
||||
2|Line 2
|
||||
|
@ -70,6 +70,6 @@ n t
|
|||
<TD>Line 2</TD>
|
||||
</TR>
|
||||
bytes
|
||||
2048
|
||||
8192
|
||||
bytes
|
||||
2048
|
||||
8192
|
||||
|
|
|
@ -76,11 +76,11 @@ ls: tmp/parallel.file*: No such file or directory
|
|||
OK
|
||||
Input for ssh
|
||||
-l parallel one-server -- mkdir -p ./.
|
||||
-l parallel one-server rsync --server -lDrRze.iLsfx . ./.
|
||||
-l parallel one-server rsync --server -lDrRze.iLsfxC . ./.
|
||||
-l parallel one-server -- exec perl -e '@GNU_Parallel=split/_/,"use_IPC::Open3;_use_MIME::Base64";eval"@GNU_Parallel";$chld=$SIG{CHLD};$SIG{CHLD}="IGNORE";my$zip=(grep{-x$_}"/usr/local/bin/bzip2")[0]||"bzip2";open3($in,$out,">&STDERR",$zip,"-dc");if(my$perlpid=fork){close$in;$eval=join"",<$out>;close$out;}else{close$out;print$in(decode_base64(join"",@ARGV));close$in;exit;}wait;$SIG{CHLD}=$chld;eval$eval;' base64
|
||||
-l parallel one-server cd ././tmp; rsync --server --sender -lDrRze.iLsfx . './parallel.file.
|
||||
-l parallel one-server cd ././tmp; rsync --server --sender -lDrRze.iLsfxC . './parallel.file.
|
||||
newlineX.out'
|
||||
-l parallel one-server cd ././tmp; rsync --server --sender -lDrRze.iLsfx . './parallel.file.
|
||||
-l parallel one-server cd ././tmp; rsync --server --sender -lDrRze.iLsfxC . './parallel.file.
|
||||
newlineX.out2'
|
||||
-l parallel one-server -- rm -f './tmp/parallel.file.
|
||||
newlineX'; sh -c 'rmdir ./tmp/ ./ 2>/dev/null;'
|
||||
|
@ -89,11 +89,11 @@ newlineX.out'; sh -c 'rmdir ./tmp/ ./ 2>/dev/null;'
|
|||
-l parallel one-server -- rm -f './tmp/parallel.file.
|
||||
newlineX.out2'; sh -c 'rmdir ./tmp/ ./ 2>/dev/null;'
|
||||
-l parallel one-server -- mkdir -p ./.
|
||||
-l parallel one-server rsync --server -lDrRze.iLsfx . ./.
|
||||
-l parallel one-server rsync --server -lDrRze.iLsfxC . ./.
|
||||
-l parallel one-server -- exec perl -e '@GNU_Parallel=split/_/,"use_IPC::Open3;_use_MIME::Base64";eval"@GNU_Parallel";$chld=$SIG{CHLD};$SIG{CHLD}="IGNORE";my$zip=(grep{-x$_}"/usr/local/bin/bzip2")[0]||"bzip2";open3($in,$out,">&STDERR",$zip,"-dc");if(my$perlpid=fork){close$in;$eval=join"",<$out>;close$out;}else{close$out;print$in(decode_base64(join"",@ARGV));close$in;exit;}wait;$SIG{CHLD}=$chld;eval$eval;' base64
|
||||
-l parallel one-server cd ././tmp; rsync --server --sender -lDrRze.iLsfx . './parallel.file.
|
||||
-l parallel one-server cd ././tmp; rsync --server --sender -lDrRze.iLsfxC . './parallel.file.
|
||||
newlineX.out'
|
||||
-l parallel one-server cd ././tmp; rsync --server --sender -lDrRze.iLsfx . './parallel.file.
|
||||
-l parallel one-server cd ././tmp; rsync --server --sender -lDrRze.iLsfxC . './parallel.file.
|
||||
newlineX.out2'
|
||||
-l parallel one-server -- rm -f './tmp/parallel.file.
|
||||
newlineX'; sh -c 'rmdir ./tmp/ ./ 2>/dev/null;'
|
||||
|
|
|
@ -19,30 +19,30 @@ ls: script2: No such file or directory
|
|||
OK
|
||||
### Test --basefile + --sshlogin :
|
||||
1
|
||||
10
|
||||
11
|
||||
12
|
||||
13
|
||||
2
|
||||
3
|
||||
4
|
||||
5
|
||||
6
|
||||
7
|
||||
8
|
||||
9
|
||||
1
|
||||
10
|
||||
10
|
||||
11
|
||||
11
|
||||
12
|
||||
12
|
||||
13
|
||||
13
|
||||
2
|
||||
2
|
||||
3
|
||||
3
|
||||
4
|
||||
4
|
||||
5
|
||||
5
|
||||
6
|
||||
6
|
||||
7
|
||||
7
|
||||
8
|
||||
8
|
||||
9
|
||||
9
|
||||
### Here we ought to test -m --return {/}_{/.}_{#/.}_{#/}_{#.} with files containing space
|
||||
### But we will wait for a real world scenario
|
||||
|
|
Loading…
Reference in a new issue