diff --git a/NEWS b/NEWS index 78bbfb6d..37e6f6f7 100644 --- a/NEWS +++ b/NEWS @@ -84,9 +84,6 @@ http://meta.askubuntu.com/a/16750/22307 http://meta.serverfault.com/a/9040/45704 -* GNU Parallel was cited in: - https://springerplus.springeropen.com/articles/10.1186/s40064-016-2022-y - * Edit images with GNU Parallel and ImageMagick https://fedoramagazine.org/edit-images-parallel-imagemagick/ @@ -1478,8 +1475,7 @@ New in this release: Substation Cable Installation Problem http://i11www.iti.uni-karlsruhe.de/_media/teaching/theses/ma-schmitz-14.pdf -* GNU Parallel was used in: landsat-gifworks - https://github.com/KAPPS-/landsat-gifworks +* GNU Parallel was used in: https://github.com/KAPPS-/landsat-gifworks * GNU Parallel was used in: https://github.com/exascience/elprep @@ -2390,7 +2386,7 @@ New in this release: * --transfer and --basefile support paths relative to the --workdir by inserting /./ into the path. -* GNU Parallel was cited in: 'fastphylo: Fast tools for phylogenetics' +* GNU Parallel was cited in: fastphylo: Fast tools for phylogenetics http://www.biomedcentral.com/1471-2105/14/334/abstract * Using GNU parallel diff --git a/doc/release_new_version b/doc/release_new_version index 9feb9f83..ec0d0bdf 100644 --- a/doc/release_new_version +++ b/doc/release_new_version @@ -210,6 +210,8 @@ Haiku of the month: New in this release: +* 15分钟神器gnu parallel 入门观止 http://www.ezilin.com/2018/01/15gnu-parallel.html + <> diff --git a/src/env_parallel.pod b/src/env_parallel.pod index ec44eb30..e728b43b 100644 --- a/src/env_parallel.pod +++ b/src/env_parallel.pod @@ -23,7 +23,7 @@ instead that explains how to install the function. B is beta quality and not production ready, but please use it for everyday use and report bugs. -B is 0.1 sec slower at startup than pure GNU +B is 100 ms slower at startup than pure GNU B, and takes up to 30% longer to start a job (typically 15 ms). Due to the problem with environment space (see below) the recommended @@ -88,10 +88,7 @@ Same as GNU B. =head2 Ash -B<--env> is supported to export only the variable, or alias with the -given name. Multiple B<--env>s can be given. - -Installation +=head3 Installation Put this in $HOME/.profile: @@ -101,6 +98,11 @@ E.g. by doing: echo '. `which env_parallel.ash`' >> $HOME/.profile +=head3 Supported use + +B<--env> is supported to export only the variable, or alias with the +given name. Multiple B<--env>s can be given. + =over 8 =item aliases @@ -138,10 +140,7 @@ Arrays are not supported by Ash. =head2 Bash -B<--env> is supported to export only the variable, alias, function, or -array with the given name. Multiple B<--env>s can be given. - -Installation +=head3 Installation Put this in $HOME/.bashrc: @@ -151,6 +150,11 @@ E.g. by doing: echo '. `which env_parallel.bash`' >> $HOME/.bashrc +=head3 Supported use + +B<--env> is supported to export only the variable, alias, function, or +array with the given name. Multiple B<--env>s can be given. + =over 8 =item aliases @@ -194,24 +198,22 @@ E.g. by doing: env_parallel -k echo '${myarray[{}]}' ::: 0 1 2 env_parallel -k -S server echo '${myarray[{}]}' ::: 0 1 2 env_parallel -k --env myarray echo '${myarray[{}]}' ::: 0 1 2 - env_parallel -k --env myarray -S server echo '${myarray[{}]}' ::: 0 1 2 + env_parallel -k --env myarray -S server \ + echo '${myarray[{}]}' ::: 0 1 2 =back =head3 BUGS -Due to a bug in Bash aliases containing newlines must be followed by a -newline in the command. +Due to a bug in Bash, aliases containing newlines must be followed by +a newline in the command. =head2 csh -B<--env> is supported to export only the variable, alias, or -array with the given name. Multiple B<--env>s can be given. - B for B breaks B<$PARALLEL>, so do not use B<$PARALLEL>. -Installation +=head3 Installation Put this in $HOME/.cshrc: @@ -221,6 +223,11 @@ E.g. by doing: echo 'source `which env_parallel.csh`' >> $HOME/.cshrc +=head3 Supported use + +B<--env> is supported to export only the variable, alias, or +array with the given name. Multiple B<--env>s can be given. + =over 8 =item aliases @@ -249,17 +256,15 @@ Not supported by B. env_parallel -k echo \$'{myarray[{}]}' ::: 1 2 3 env_parallel -k -S server echo \$'{myarray[{}]}' ::: 1 2 3 env_parallel -k --env myarray echo \$'{myarray[{}]}' ::: 1 2 3 - env_parallel -k --env myarray -S server echo \$'{myarray[{}]}' ::: 1 2 3 + env_parallel -k --env myarray -S server \ + echo \$'{myarray[{}]}' ::: 1 2 3 =back =head2 Dash -B<--env> is supported to export only the variable, or alias with the -given name. Multiple B<--env>s can be given. - -Installation +=head3 Installation Put this in $HOME/.profile: @@ -269,6 +274,11 @@ E.g. by doing: echo '. `which env_parallel.dash`' >> $HOME/.profile +=head3 Supported use + +B<--env> is supported to export only the variable, or alias with the +given name. Multiple B<--env>s can be given. + =over 8 =item aliases @@ -307,10 +317,7 @@ E.g. by doing: =head2 fish -B<--env> is supported to export only the variable, alias, function, or -array with the given name. Multiple B<--env>s can be given. - -Installation +=head3 Installation Put this in $HOME/.config/fish/config.fish: @@ -318,7 +325,13 @@ Put this in $HOME/.config/fish/config.fish: E.g. by doing: - echo 'source (which env_parallel.fish)' >> $HOME/.config/fish/config.fish + echo 'source (which env_parallel.fish)' \ + >> $HOME/.config/fish/config.fish + +=head3 Supported use + +B<--env> is supported to export only the variable, alias, function, or +array with the given name. Multiple B<--env>s can be given. =over 8 @@ -354,17 +367,15 @@ E.g. by doing: env_parallel -k echo '$myarray[{}]' ::: 1 2 3 env_parallel -k -S server echo '$myarray[{}]' ::: 1 2 3 env_parallel -k --env myarray echo '$myarray[{}]' ::: 1 2 3 - env_parallel -k --env myarray -S server echo '$myarray[{}]' ::: 1 2 3 + env_parallel -k --env myarray -S server \ + echo '$myarray[{}]' ::: 1 2 3 =back =head2 ksh -B<--env> is supported to export only the variable, alias, function, or -array with the given name. Multiple B<--env>s can be given. - -Installation +=head3 Installation Put this in $HOME/.kshrc: @@ -374,6 +385,11 @@ E.g. by doing: echo 'source `which env_parallel.ksh`' >> $HOME/.kshrc +=head3 Supported use + +B<--env> is supported to export only the variable, alias, function, or +array with the given name. Multiple B<--env>s can be given. + =over 8 =item aliases @@ -413,17 +429,15 @@ E.g. by doing: env_parallel -k echo '${myarray[{}]}' ::: 0 1 2 env_parallel -k -S server echo '${myarray[{}]}' ::: 0 1 2 env_parallel -k --env myarray echo '${myarray[{}]}' ::: 0 1 2 - env_parallel -k --env myarray -S server echo '${myarray[{}]}' ::: 0 1 2 + env_parallel -k --env myarray -S server \ + echo '${myarray[{}]}' ::: 0 1 2 =back =head2 pdksh -B<--env> is supported to export only the variable, alias, function, or -array with the given name. Multiple B<--env>s can be given. - -Installation +=head3 Installation Put this in $HOME/.profile: @@ -433,6 +447,11 @@ E.g. by doing: echo 'source `which env_parallel.pdksh`' >> $HOME/.profile +=head3 Supported use + +B<--env> is supported to export only the variable, alias, function, or +array with the given name. Multiple B<--env>s can be given. + =over 8 =item aliases @@ -465,17 +484,15 @@ E.g. by doing: env_parallel -k echo "\${myarray[{}]}" ::: 0 1 2; env_parallel -k -S server echo "\${myarray[{}]}" ::: 0 1 2; env_parallel -k --env myarray echo "\${myarray[{}]}" ::: 0 1 2; - env_parallel -k --env myarray -S server echo "\${myarray[{}]}" ::: 0 1 2 + env_parallel -k --env myarray -S server \ + echo "\${myarray[{}]}" ::: 0 1 2 =back =head2 sh -B<--env> is supported to export only the variable, or alias with the -given name. Multiple B<--env>s can be given. - -Installation +=head3 Installation Put this in $HOME/.profile: @@ -485,6 +502,11 @@ E.g. by doing: echo '. `which env_parallel.sh`' >> $HOME/.profile +=head3 Supported use + +B<--env> is supported to export only the variable, or alias with the +given name. Multiple B<--env>s can be given. + =over 8 =item aliases @@ -516,13 +538,10 @@ E.g. by doing: =head2 tcsh -B<--env> is supported to export only the variable, alias, or -array with the given name. Multiple B<--env>s can be given. - B for B breaks B<$PARALLEL>, so do not use B<$PARALLEL>. -Installation +=head3 Installation Put this in $HOME/.tcshrc: @@ -532,6 +551,11 @@ E.g. by doing: echo 'source `which env_parallel.tcsh`' >> $HOME/.tcshrc +=head3 Supported use + +B<--env> is supported to export only the variable, alias, or +array with the given name. Multiple B<--env>s can be given. + =over 8 =item aliases @@ -560,17 +584,15 @@ Not supported by B. env_parallel -k echo \$'{myarray[{}]}' ::: 1 2 3 env_parallel -k -S server echo \$'{myarray[{}]}' ::: 1 2 3 env_parallel -k --env myarray echo \$'{myarray[{}]}' ::: 1 2 3 - env_parallel -k --env myarray -S server echo \$'{myarray[{}]}' ::: 1 2 3 + env_parallel -k --env myarray -S server \ + echo \$'{myarray[{}]}' ::: 1 2 3 =back =head2 Zsh -B<--env> is supported to export only the variable, alias, function, or -array with the given name. Multiple B<--env>s can be given. - -Installation +=head3 Installation Put this in $HOME/.zshrc: @@ -580,6 +602,11 @@ E.g. by doing: echo '. `which env_parallel.zsh`' >> $HOME/.zshenv +=head3 Supported use + +B<--env> is supported to export only the variable, alias, function, or +array with the given name. Multiple B<--env>s can be given. + =over 8 =item aliases @@ -619,7 +646,8 @@ E.g. by doing: env_parallel -k echo '${myarray[{}]}' ::: 1 2 3 env_parallel -k -S server echo '${myarray[{}]}' ::: 1 2 3 env_parallel -k --env myarray echo '${myarray[{}]}' ::: 1 2 3 - env_parallel -k --env myarray -S server echo '${myarray[{}]}' ::: 1 2 3 + env_parallel -k --env myarray -S server \ + echo '${myarray[{}]}' ::: 1 2 3 =back @@ -763,10 +791,8 @@ B uses GNU B. =head1 SEE ALSO -B(1), - -B(1), B(1), B(1), B(1), B(1), B(1), -B(1) B(1), B(1). +B(1), B(1), B(1), B(1), B(1), +B(1), B(1), B(1) B(1), B(1). =cut diff --git a/src/parallel b/src/parallel index b0358f4d..77f83b16 100755 --- a/src/parallel +++ b/src/parallel @@ -1391,7 +1391,7 @@ sub check_invalid_option_combinations { sub init_globals { # Defaults: - $Global::version = 20171224; + $Global::version = 20180107; $Global::progname = 'parallel'; $Global::infinity = 2**31; $Global::debug = 0; @@ -2240,7 +2240,7 @@ sub perl_quote_scalar { # Inputs: # $string = string to be quoted # Returns: - # $shell_quoted = string quoted with \ as needed by perl's eval + # $perl_quoted = string quoted with \ as needed by perl's eval my $a = $_[0]; if(defined $a) { $a =~ s/[\\\"\$\@]/\\$&/go; @@ -4101,7 +4101,7 @@ sub citation_notice { "This helps funding further development; AND IT WON'T COST YOU A CENT.", "If you pay 10000 EUR you should feel free to use GNU Parallel without citing.", "", - "To silence this citation notice: run 'parallel --citation'.", + "To silence this citation notice: run 'parallel --citation' once.", "" ); } @@ -9072,7 +9072,7 @@ sub set_exitsignal { } elsif($Global::halt_success) { ::status("$Global::progname: This job succeeded:", $job->replaced()); - $limit = $Global::total_completed-$Global::total_failed; + $limit = $Global::total_completed - $Global::total_failed; } if($Global::halt_done) { ::status("$Global::progname: This job finished:", diff --git a/src/parallel.pod b/src/parallel.pod index b93215bb..0ea11dc3 100644 --- a/src/parallel.pod +++ b/src/parallel.pod @@ -555,7 +555,7 @@ B<--return>. =item B<-C> I Column separator. The input will be treated as a table with I -separating the columns. The n'th column can be access using +separating the columns. The n'th column can be accessed using B<{>IB<}> or B<{>I.B<}>. E.g. B<{3}> is the 3rd column. If there are more input sources, each input source will be separated, @@ -3974,7 +3974,7 @@ A mutex is a counting semaphore allowing only one job to run. This will edit the file I and prepends the file with lines with the numbers 1 to 3. - seq 3 | parallel sem sed -i -e 'i{}' myfile + seq 3 | parallel sem sed -i -e '1i{}' myfile As I can be very big it is important only one process edits the file at the same time. @@ -4552,7 +4552,7 @@ host in serial, so if your B<--sshloginfile> contains many hosts it may be slow. If your jobs are short you may see that there are fewer jobs running -on the remove systems than expected. This is due to time spent logging +on the remote systems than expected. This is due to time spent logging in and out. B<-M> may help here. =head3 Disk access @@ -4583,7 +4583,7 @@ of the jobs will be stuck waiting for disk access. The current implementation of B<--nice> is too pessimistic in the max allowed command length. It only uses a little more than half of what it could. This affects B<-X> and B<-m>. If this becomes a real problem for -you file a bug-report. +you, file a bug-report. =head2 Aliases and functions do not work @@ -4595,10 +4595,14 @@ or: open3: exec of by command failed +or: + + /bin/bash: command: command not found + it may be because I is not known, but it could also be because I is an alias or a function. If it is a function you -need to B the function first. An alias will only work if -you use B. +need to B the function first or use B. An +alias will only work if you use B. =head1 REPORTING BUGS diff --git a/src/parset.pod b/src/parset.pod index 984f4fd4..e89f202b 100644 --- a/src/parset.pod +++ b/src/parset.pod @@ -131,18 +131,18 @@ but must instead use a tempfile: seq 3 > parallel_input parset res1,res2,res3 echo :::: parallel_input - echo "res1" - echo "res2" - echo "res3" + echo "$res1" + echo "$res2" + echo "$res3" or a FIFO: mkfifo input_fifo seq 3 > input_fifo & parset res1,res2,res3 echo :::: input_fifo - echo "res1" - echo "res2" - echo "res3" + echo "$res1" + echo "$res2" + echo "$res3" =head3 Installation