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:
Ole Tange 2018-10-23 00:46:38 +02:00
parent 4f0422d9b0
commit 001d9d0f66
66 changed files with 700 additions and 378 deletions

View file

@ -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.

View file

@ -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/(&gt|\{).*//;s/\\//g;s/&amp;/&/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/(&gt|\{).*//;s/\\-/-/g;s/\\n//g;s/&amp;/&/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

View file

@ -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/(&gt|\{).*//;s/\\//g;s/&amp;/&/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/(&gt|\{).*//;s/\\-/-/g;s/\\n//g;s/&amp;/&/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.

View file

@ -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

View file

@ -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:

View file

@ -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'
)
);

View file

@ -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

View file

@ -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>);
}
}
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;
)

View file

@ -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 {

View file

@ -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) {

View file

@ -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;

View file

@ -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" :

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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() {
@ -711,7 +711,7 @@ par_blocking_redir() {
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
) 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'

View file

@ -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

View file

@ -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'

View file

@ -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'

View file

@ -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$$
}

View file

@ -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'

View file

@ -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 |

View file

@ -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

View file

@ -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.???;

View file

@ -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:/;

View file

@ -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'

View file

@ -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
}

View file

@ -9,7 +9,7 @@ PARALLEL=-j8
export PARALLEL
stdsort() {
"$@" 2>&1 | sort;
"$@" 2>&1 | LC_ALL=C sort;
}
export -f stdsort

View file

@ -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

View file

@ -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

View file

@ -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_)

View file

@ -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'

View file

@ -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

View file

@ -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/;'

View file

@ -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,6 +32,7 @@ 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
@ -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

View file

@ -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

View file

@ -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

View file

@ -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() {

View file

@ -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'

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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.

View file

@ -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

View file

@ -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:

View file

@ -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

View file

@ -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

View file

@ -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]

View file

@ -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

View file

@ -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

View file

@ -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=[?12;25h[?12l[?25h[?25l"file1" [New File]~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ [?12l[?25h[?25lE173: 9 more files to edit[?12l[?25h[?1l>[?1049lAcademic tradition requires you to cite works you base your article on.
[?2004h[?1049h[?1h=[?2004h[?12h[?12l[?25l"file1" [New File] [>c]10;?]11;?~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ 0,0-1All[?25h[?25lE173: 9 more files to edit[?2004h0,0-1All[?25h[?2004l[?2004l[?1l>[?1049lAcademic 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:

View file

@ -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

View file

@ -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'

View file

@ -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

View file

@ -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

View file

@ -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.

View file

@ -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

View file

@ -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

View file

@ -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'

View file

@ -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

View file

@ -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;'

View file

@ -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