Released as 20240822 ('Southport')
[parallel.git] / src / env_parallel.pod
blobc0ebc5ae864e9bbd4202cbc4052e4a4020ff4bd1
1 #!/usr/bin/perl -w
3 # SPDX-FileCopyrightText: 2021-2024 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc.
4 # SPDX-License-Identifier: GFDL-1.3-or-later
5 # SPDX-License-Identifier: CC-BY-SA-4.0
7 =encoding utf8
9 =head1 NAME
11 env_parallel - export environment to GNU parallel
14 =head1 SYNOPSIS
16 B<env_parallel> [--record-env|--session|--end-session]
17 [options for GNU Parallel]
20 =head1 DESCRIPTION
22 B<env_parallel> is a shell function that exports the current
23 environment to GNU B<parallel>.
25 If the shell function is not loaded, a dummy script will be run
26 instead that explains how to install the function.
28 B<env_parallel> is 100 ms slower at startup than pure GNU B<parallel>,
29 and takes up to 30% longer to start a job (typically 15 ms).
31 Due to the problem with environment space (see below) you are
32 recommended only to transfer the environment that you need.
34 To help you do that, you can mark names that should not be
35 transferred. This can be done with either B<--session> or
36 B<--record-env>.
38 # Record the "clean" environment (this only needs to be run once)
39 env_parallel --record-env
41 # Optionally edit ~/.parallel/ignored_vars (only needed once)
43 # Define whatever you want to use
44 myfunc() { myalias and functions $myvar work. $1.; }
45 alias myalias='echo Aliases'
46 myvar='and variables'
48 # Use --env _ to only transfer the names not in the "empty" environment
49 env_parallel --env _ -S localhost myfunc ::: Hooray
51 Or:
53 # Do --record-env into $PARALLEL_IGNORED_NAMES
54 env_parallel --session
56 # Define whatever you want to use
57 myfunc() { myalias and functions $myvar work. $1.; }
58 alias myalias='echo Aliases'
59 myvar='and variables'
61 # env_parallel will not export names in $PARALLEL_IGNORED_NAMES
62 env_parallel -S localhost myfunc ::: Hooray
64 # Optionally
65 env_parallel --end-session
67 In B<csh> B<--session> is not supported:
69 # Record the "clean" environment - this only needs to be run once
70 env_parallel --record-env
72 # Optionally edit ~/.parallel/ignored_vars - only needed once
74 # Define whatever you want to use
75 alias myalias 'echo Aliases $myvar \!*.'
76 set myvar='and variables'
78 # Use --env _ to only transfer the names not in the "empty" environment
79 env_parallel --env _ -S localhost myalias ::: work
81 =head2 Environment space
83 By default B<env_parallel> will export all environment variables,
84 arrays, aliases, functions and shell options (see details for the
85 individual shells below).
87 But this only works if the size of the current environment is smaller
88 than the maximal length of a command and smaller than half of the max
89 if running remotely. E.g. The max size of Bash's command is 128 KB, so
90 B<env_parallel> will fail if 'B<set | wc -c>' is bigger than 128
91 KB. Technically the limit is in execve(1) which IPC::open3 uses.
93 Bash completion functions are well-known for taking up well over 128
94 KB of environment space and the primary reason for causing
95 B<env_parallel> to fail.
97 Instead you can use B<--env> to specify which variables, arrays,
98 aliases and functions to export as this will only export those with
99 the given name. Or follow the recommended usage in shown in
100 DESCRIPTION.
103 =head1 OPTIONS
105 Same as GNU B<parallel> in addition to these:
107 =over 4
109 =item B<--end-session>
111 Undo last B<--session>
114 =item B<--record-env>
116 Record all names currently defined to be ignored every time running
117 B<env_parallel> in the future.
120 =item B<--session>
122 Ignore all names currently defined. Aliases, variables, arrays, and
123 functions currently defined will not be transferred.
125 But names defined I<after> running B<parallel --session> I<will> be
126 transferred.
128 This is only valid in the running shell, and can be undone with
129 B<parallel --end-session>.
131 You can run multiple B<--session> inside each other:
133 env_parallel --session
134 var=not
135 # var is transferred
136 env_parallel -Slocalhost 'echo var is $var' ::: ignored
137 env_parallel --session
138 # var is not transferred
139 env_parallel -Slocalhost 'echo var is $var' ::: ignored
140 env_parallel --end-session
141 # var is transferred again
142 env_parallel -Slocalhost 'echo var is $var' ::: ignored
146 =back
149 =head1 SUPPORTED SHELLS
151 =head2 Ash
153 =head3 Installation
155 Put this in $HOME/.profile:
157 . env_parallel.ash
159 E.g. by doing:
161 echo '. env_parallel.ash' >> $HOME/.profile
163 =head3 Supported use
165 B<--env> is supported to export only the variable, or alias with the
166 given name. Multiple B<--env>s can be given.
168 B<--session> is supported.
170 =over 8
172 =item aliases
174 alias myecho='echo aliases'
175 env_parallel myecho ::: work
176 env_parallel -S server myecho ::: work
177 env_parallel --env myecho myecho ::: work
178 env_parallel --env myecho -S server myecho ::: work
180 alias multiline='echo multiline
181 echo aliases'
182 env_parallel multiline ::: work
183 env_parallel -S server multiline ::: work
184 env_parallel --env multiline multiline ::: work
185 env_parallel --env multiline -S server multiline ::: work
187 =item functions
189 ash cannot list defined functions - thus is not supported.
191 =item variables
193 myvar=variables
194 env_parallel echo '$myvar' ::: work
195 env_parallel -S server echo '$myvar' ::: work
196 env_parallel --env myvar echo '$myvar' ::: work
197 env_parallel --env myvar -S server echo '$myvar' ::: work
199 =item arrays
201 Arrays are not supported by Ash.
203 =back
205 =head2 Bash
207 =head3 Installation
209 Put this in $HOME/.bashrc:
211 . env_parallel.bash
213 E.g. by doing:
215 echo '. env_parallel.bash' >> $HOME/.bashrc
217 =head3 Supported use
219 B<--env> is supported to export only the variable, alias, function, or
220 array with the given name. Multiple B<--env>s can be given.
222 B<--session> is supported.
224 =over 8
226 =item aliases
228 alias myecho='echo aliases'
229 env_parallel myecho ::: work
230 env_parallel -S server myecho ::: work
231 env_parallel --env myecho myecho ::: work
232 env_parallel --env myecho -S server myecho ::: work
234 alias multiline='echo multiline
235 echo aliases'
236 env_parallel 'multiline {};
237 echo but only when followed by a newline' ::: work
238 env_parallel -S server 'multiline {};
239 echo but only when followed by a newline' ::: work
240 env_parallel --env multiline 'multiline {};
241 echo but only when followed by a newline' ::: work
242 env_parallel --env multiline -S server 'multiline {};
243 echo but only when followed by a newline' ::: work
245 =item functions
247 myfunc() { echo functions $*; }
248 env_parallel myfunc ::: work
249 env_parallel -S server myfunc ::: work
250 env_parallel --env myfunc myfunc ::: work
251 env_parallel --env myfunc -S server myfunc ::: work
253 =item variables
255 myvar=variables
256 env_parallel echo '$myvar' ::: work
257 env_parallel -S server echo '$myvar' ::: work
258 env_parallel --env myvar echo '$myvar' ::: work
259 env_parallel --env myvar -S server echo '$myvar' ::: work
261 =item arrays
263 myarray=(arrays work, too)
264 env_parallel -k echo '${myarray[{}]}' ::: 0 1 2
265 env_parallel -k -S server echo '${myarray[{}]}' ::: 0 1 2
266 env_parallel -k --env myarray echo '${myarray[{}]}' ::: 0 1 2
267 env_parallel -k --env myarray -S server \
268 echo '${myarray[{}]}' ::: 0 1 2
270 =back
272 =head3 BUGS
274 Due to a bug in Bash, aliases containing newlines must be followed by
275 a newline in the command. Some systems are not affected by this bug,
276 but will print a warning anyway.
278 =head2 csh (alpha testing)
280 B<env_parallel> for B<csh> breaks B<$PARALLEL>, so do not use
281 B<$PARALLEL>.
283 =head3 Installation
285 Put this in $HOME/.cshrc:
287 source `which env_parallel.csh`
289 E.g. by doing:
291 echo 'source `which env_parallel.csh`' >> $HOME/.cshrc
293 =head3 Supported use
295 B<--env> is supported to export only the variable, alias, or
296 array with the given name. Multiple B<--env>s can be given.
298 =over 8
300 =item aliases
302 alias myecho 'echo aliases'
303 env_parallel myecho ::: work
304 env_parallel -S server myecho ::: work
305 env_parallel --env myecho myecho ::: work
306 env_parallel --env myecho -S server myecho ::: work
308 =item functions
310 Not supported by B<csh>.
312 =item variables
314 set myvar=variables
315 env_parallel echo '$myvar' ::: work
316 env_parallel -S server echo '$myvar' ::: work
317 env_parallel --env myvar echo '$myvar' ::: work
318 env_parallel --env myvar -S server echo '$myvar' ::: work
320 =item arrays with no special chars
322 set myarray=(arrays work, too)
323 env_parallel -k echo \$'{myarray[{}]}' ::: 1 2 3
324 env_parallel -k -S server echo \$'{myarray[{}]}' ::: 1 2 3
325 env_parallel -k --env myarray echo \$'{myarray[{}]}' ::: 1 2 3
326 env_parallel -k --env myarray -S server \
327 echo \$'{myarray[{}]}' ::: 1 2 3
329 =back
332 =head2 Dash
334 =head3 Installation
336 Put this in $HOME/.profile:
338 . env_parallel.dash
340 E.g. by doing:
342 echo '. env_parallel.dash' >> $HOME/.profile
344 =head3 Supported use
346 B<--env> is supported to export only the variable, or alias with the
347 given name. Multiple B<--env>s can be given.
349 B<--session> is supported.
351 =over 8
353 =item aliases
355 alias myecho='echo aliases'
356 env_parallel myecho ::: work
357 env_parallel -S server myecho ::: work
358 env_parallel --env myecho myecho ::: work
359 env_parallel --env myecho -S server myecho ::: work
361 alias multiline='echo multiline
362 echo aliases'
363 env_parallel multiline ::: work
364 env_parallel -S server multiline ::: work
365 env_parallel --env multiline multiline ::: work
366 env_parallel --env multiline -S server multiline ::: work
368 =item functions
370 dash cannot list defined functions - thus is not supported.
372 =item variables
374 myvar=variables
375 env_parallel echo '$myvar' ::: work
376 env_parallel -S server echo '$myvar' ::: work
377 env_parallel --env myvar echo '$myvar' ::: work
378 env_parallel --env myvar -S server echo '$myvar' ::: work
380 =item arrays
382 dash does not support arrays.
384 =back
387 =head2 fish (beta testing)
389 =head3 Installation
391 Put this in $HOME/.config/fish/config.fish:
393 source (which env_parallel.fish)
395 E.g. by doing:
397 echo 'source (which env_parallel.fish)' \
398 >> $HOME/.config/fish/config.fish
400 =head3 Supported use
402 B<--env> is supported to export only the variable, alias, function, or
403 array with the given name. Multiple B<--env>s can be given.
405 B<--session> is supported.
407 =over 8
409 =item aliases
411 alias myecho 'echo aliases'
412 env_parallel myecho ::: work
413 env_parallel -S server myecho ::: work
414 env_parallel --env myecho myecho ::: work
415 env_parallel --env myecho -S server myecho ::: work
417 =item functions
419 function myfunc
420 echo functions $argv
422 env_parallel myfunc ::: work
423 env_parallel -S server myfunc ::: work
424 env_parallel --env myfunc myfunc ::: work
425 env_parallel --env myfunc -S server myfunc ::: work
427 =item variables
429 set myvar variables
430 env_parallel echo '$myvar' ::: work
431 env_parallel -S server echo '$myvar' ::: work
432 env_parallel --env myvar echo '$myvar' ::: work
433 env_parallel --env myvar -S server echo '$myvar' ::: work
435 =item arrays
437 Arrays normally work, but fail intermitently.
439 set myarray arrays work, too
440 env_parallel -k echo '$myarray[{}]' ::: 1 2 3
441 env_parallel -k -S server echo '$myarray[{}]' ::: 1 2 3
442 env_parallel -k --env myarray echo '$myarray[{}]' ::: 1 2 3
443 env_parallel -k --env myarray -S server \
444 echo '$myarray[{}]' ::: 1 2 3
446 =back
449 =head2 ksh
451 =head3 Installation
453 Put this in $HOME/.kshrc:
455 source env_parallel.ksh
457 E.g. by doing:
459 echo 'source env_parallel.ksh' >> $HOME/.kshrc
461 =head3 Supported use
463 B<--env> is supported to export only the variable, alias, function, or
464 array with the given name. Multiple B<--env>s can be given.
466 B<--session> is supported.
468 =over 8
470 =item aliases
472 alias myecho='echo aliases'
473 env_parallel myecho ::: work
474 env_parallel -S server myecho ::: work
475 env_parallel --env myecho myecho ::: work
476 env_parallel --env myecho -S server myecho ::: work
478 alias multiline='echo multiline
479 echo aliases'
480 env_parallel multiline ::: work
481 env_parallel -S server multiline ::: work
482 env_parallel --env multiline multiline ::: work
483 env_parallel --env multiline -S server multiline ::: work
485 =item functions
487 myfunc() { echo functions $*; }
488 env_parallel myfunc ::: work
489 env_parallel -S server myfunc ::: work
490 env_parallel --env myfunc myfunc ::: work
491 env_parallel --env myfunc -S server myfunc ::: work
493 =item variables
495 myvar=variables
496 env_parallel echo '$myvar' ::: work
497 env_parallel -S server echo '$myvar' ::: work
498 env_parallel --env myvar echo '$myvar' ::: work
499 env_parallel --env myvar -S server echo '$myvar' ::: work
501 =item arrays
503 myarray=(arrays work, too)
504 env_parallel -k echo '${myarray[{}]}' ::: 0 1 2
505 env_parallel -k -S server echo '${myarray[{}]}' ::: 0 1 2
506 env_parallel -k --env myarray echo '${myarray[{}]}' ::: 0 1 2
507 env_parallel -k --env myarray -S server \
508 echo '${myarray[{}]}' ::: 0 1 2
510 =back
513 =head2 mksh
515 =head3 Installation
517 Put this in $HOME/.mkshrc:
519 source env_parallel.mksh
521 E.g. by doing:
523 echo 'source env_parallel.mksh' >> $HOME/.mkshrc
525 =head3 Supported use
527 B<--env> is supported to export only the variable, alias, function, or
528 array with the given name. Multiple B<--env>s can be given.
530 B<--session> is supported.
532 =over 8
534 =item aliases
536 alias myecho='echo aliases'
537 env_parallel myecho ::: work
538 env_parallel -S server myecho ::: work
539 env_parallel --env myecho myecho ::: work
540 env_parallel --env myecho -S server myecho ::: work
542 alias multiline='echo multiline
543 echo aliases'
544 env_parallel multiline ::: work
545 env_parallel -S server multiline ::: work
546 env_parallel --env multiline multiline ::: work
547 env_parallel --env multiline -S server multiline ::: work
549 =item functions
551 myfunc() { echo functions $*; }
552 env_parallel myfunc ::: work
553 env_parallel -S server myfunc ::: work
554 env_parallel --env myfunc myfunc ::: work
555 env_parallel --env myfunc -S server myfunc ::: work
557 =item variables
559 myvar=variables
560 env_parallel echo '$myvar' ::: work
561 env_parallel -S server echo '$myvar' ::: work
562 env_parallel --env myvar echo '$myvar' ::: work
563 env_parallel --env myvar -S server echo '$myvar' ::: work
565 =item arrays
567 myarray=(arrays work, too)
568 env_parallel -k echo '${myarray[{}]}' ::: 0 1 2
569 env_parallel -k -S server echo '${myarray[{}]}' ::: 0 1 2
570 env_parallel -k --env myarray echo '${myarray[{}]}' ::: 0 1 2
571 env_parallel -k --env myarray -S server \
572 echo '${myarray[{}]}' ::: 0 1 2
574 =back
577 =head2 pdksh
579 =head3 Installation
581 Put this in $HOME/.profile:
583 source env_parallel.pdksh
585 E.g. by doing:
587 echo 'source env_parallel.pdksh' >> $HOME/.profile
589 =head3 Supported use
591 B<--env> is supported to export only the variable, alias, function, or
592 array with the given name. Multiple B<--env>s can be given.
594 B<--session> is supported.
596 =over 8
598 =item aliases
600 alias myecho="echo aliases";
601 env_parallel myecho ::: work;
602 env_parallel -S server myecho ::: work;
603 env_parallel --env myecho myecho ::: work;
604 env_parallel --env myecho -S server myecho ::: work
606 =item functions
608 myfunc() { echo functions $*; };
609 env_parallel myfunc ::: work;
610 env_parallel -S server myfunc ::: work;
611 env_parallel --env myfunc myfunc ::: work;
612 env_parallel --env myfunc -S server myfunc ::: work
614 =item variables
616 myvar=variables;
617 env_parallel echo "\$myvar" ::: work;
618 env_parallel -S server echo "\$myvar" ::: work;
619 env_parallel --env myvar echo "\$myvar" ::: work;
620 env_parallel --env myvar -S server echo "\$myvar" ::: work
622 =item arrays
624 myarray=(arrays work, too);
625 env_parallel -k echo "\${myarray[{}]}" ::: 0 1 2;
626 env_parallel -k -S server echo "\${myarray[{}]}" ::: 0 1 2;
627 env_parallel -k --env myarray echo "\${myarray[{}]}" ::: 0 1 2;
628 env_parallel -k --env myarray -S server \
629 echo "\${myarray[{}]}" ::: 0 1 2
631 =back
634 =head2 sh
636 =head3 Installation
638 Put this in $HOME/.profile:
640 . env_parallel.sh
642 E.g. by doing:
644 echo '. env_parallel.sh' >> $HOME/.profile
646 =head3 Supported use
648 B<--env> is supported to export only the variable, or alias with the
649 given name. Multiple B<--env>s can be given.
651 B<--session> is supported.
653 =over 8
655 =item aliases
657 sh does not support aliases.
659 =item functions
661 myfunc() { echo functions $*; }
662 env_parallel myfunc ::: work
663 env_parallel -S server myfunc ::: work
664 env_parallel --env myfunc myfunc ::: work
665 env_parallel --env myfunc -S server myfunc ::: work
667 =item variables
669 myvar=variables
670 env_parallel echo '$myvar' ::: work
671 env_parallel -S server echo '$myvar' ::: work
672 env_parallel --env myvar echo '$myvar' ::: work
673 env_parallel --env myvar -S server echo '$myvar' ::: work
675 =item arrays
677 sh does not support arrays.
679 =back
682 =head2 tcsh (alpha testing)
684 B<env_parallel> for B<tcsh> breaks B<$PARALLEL>, so do not use
685 B<$PARALLEL>.
687 =head3 Installation
689 Put this in $HOME/.tcshrc:
691 source `which env_parallel.tcsh`
693 E.g. by doing:
695 echo 'source `which env_parallel.tcsh`' >> $HOME/.tcshrc
697 =head3 Supported use
699 B<--env> is supported to export only the variable, alias, or
700 array with the given name. Multiple B<--env>s can be given.
702 =over 8
704 =item aliases
706 alias myecho 'echo aliases'
707 env_parallel myecho ::: work
708 env_parallel -S server myecho ::: work
709 env_parallel --env myecho myecho ::: work
710 env_parallel --env myecho -S server myecho ::: work
712 =item functions
714 Not supported by B<tcsh>.
716 =item variables
718 set myvar=variables
719 env_parallel echo '$myvar' ::: work
720 env_parallel -S server echo '$myvar' ::: work
721 env_parallel --env myvar echo '$myvar' ::: work
722 env_parallel --env myvar -S server echo '$myvar' ::: work
724 =item arrays with no special chars
726 set myarray=(arrays work, too)
727 env_parallel -k echo \$'{myarray[{}]}' ::: 1 2 3
728 env_parallel -k -S server echo \$'{myarray[{}]}' ::: 1 2 3
729 env_parallel -k --env myarray echo \$'{myarray[{}]}' ::: 1 2 3
730 env_parallel -k --env myarray -S server \
731 echo \$'{myarray[{}]}' ::: 1 2 3
733 =back
736 =head2 Zsh
738 =head3 Installation
740 Put this in $HOME/.zshrc:
742 . env_parallel.zsh
744 E.g. by doing:
746 echo '. env_parallel.zsh' >> $HOME/.zshenv
748 =head3 Supported use
750 B<--env> is supported to export only the variable, alias, function, or
751 array with the given name. Multiple B<--env>s can be given.
753 B<--session> is supported.
755 =over 8
757 =item aliases
759 alias myecho='echo aliases'
760 env_parallel myecho ::: work
761 env_parallel -S server myecho ::: work
762 env_parallel --env myecho myecho ::: work
763 env_parallel --env myecho -S server myecho ::: work
765 alias multiline='echo multiline
766 echo aliases'
767 env_parallel multiline ::: work
768 env_parallel -S server multiline ::: work
769 env_parallel --env multiline multiline ::: work
770 env_parallel --env multiline -S server multiline ::: work
772 =item functions
774 myfunc() { echo functions $*; }
775 env_parallel myfunc ::: work
776 env_parallel -S server myfunc ::: work
777 env_parallel --env myfunc myfunc ::: work
778 env_parallel --env myfunc -S server myfunc ::: work
780 =item variables
782 myvar=variables
783 env_parallel echo '$myvar' ::: work
784 env_parallel -S server echo '$myvar' ::: work
785 env_parallel --env myvar echo '$myvar' ::: work
786 env_parallel --env myvar -S server echo '$myvar' ::: work
788 =item arrays
790 myarray=(arrays work, too)
791 env_parallel -k echo '${myarray[{}]}' ::: 1 2 3
792 env_parallel -k -S server echo '${myarray[{}]}' ::: 1 2 3
793 env_parallel -k --env myarray echo '${myarray[{}]}' ::: 1 2 3
794 env_parallel -k --env myarray -S server \
795 echo '${myarray[{}]}' ::: 1 2 3
797 =back
800 =head1 EXIT STATUS
802 Same as GNU B<parallel>.
805 =head1 AUTHOR
807 When using GNU B<env_parallel> for a publication please cite:
809 O. Tange (2018): GNU Parallel 2018, March 2018, ISBN 9781387509881,
810 DOI: 10.5281/zenodo.1146014.
812 This helps funding further development; and it won't cost you a cent.
813 If you pay 10000 EUR you should feel free to use GNU Parallel without citing.
815 Copyright (C) 2007-10-18 Ole Tange, http://ole.tange.dk
817 Copyright (C) 2008-2010 Ole Tange, http://ole.tange.dk
819 Copyright (C) 2010-2024 Ole Tange, http://ole.tange.dk and Free
820 Software Foundation, Inc.
823 =head1 LICENSE
825 This program is free software; you can redistribute it and/or modify
826 it under the terms of the GNU General Public License as published by
827 the Free Software Foundation; either version 3 of the License, or
828 at your option any later version.
830 This program is distributed in the hope that it will be useful,
831 but WITHOUT ANY WARRANTY; without even the implied warranty of
832 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
833 GNU General Public License for more details.
835 You should have received a copy of the GNU General Public License
836 along with this program. If not, see <http://www.gnu.org/licenses/>.
838 =head2 Documentation license I
840 Permission is granted to copy, distribute and/or modify this
841 documentation under the terms of the GNU Free Documentation License,
842 Version 1.3 or any later version published by the Free Software
843 Foundation; with no Invariant Sections, with no Front-Cover Texts, and
844 with no Back-Cover Texts. A copy of the license is included in the
845 file LICENSES/GFDL-1.3-or-later.txt.
848 =head2 Documentation license II
850 You are free:
852 =over 9
854 =item B<to Share>
856 to copy, distribute and transmit the work
858 =item B<to Remix>
860 to adapt the work
862 =back
864 Under the following conditions:
866 =over 9
868 =item B<Attribution>
870 You must attribute the work in the manner specified by the author or
871 licensor (but not in any way that suggests that they endorse you or
872 your use of the work).
874 =item B<Share Alike>
876 If you alter, transform, or build upon this work, you may distribute
877 the resulting work only under the same, similar or a compatible
878 license.
880 =back
882 With the understanding that:
884 =over 9
886 =item B<Waiver>
888 Any of the above conditions can be waived if you get permission from
889 the copyright holder.
891 =item B<Public Domain>
893 Where the work or any of its elements is in the public domain under
894 applicable law, that status is in no way affected by the license.
896 =item B<Other Rights>
898 In no way are any of the following rights affected by the license:
900 =over 2
902 =item *
904 Your fair dealing or fair use rights, or other applicable
905 copyright exceptions and limitations;
907 =item *
909 The author's moral rights;
911 =item *
913 Rights other persons may have either in the work itself or in
914 how the work is used, such as publicity or privacy rights.
916 =back
918 =back
920 =over 9
922 =item B<Notice>
924 For any reuse or distribution, you must make clear to others the
925 license terms of this work.
927 =back
929 A copy of the full license is included in the file as
930 LICENCES/CC-BY-SA-4.0.txt
933 =head1 DEPENDENCIES
935 B<env_parallel> uses GNU B<parallel>.
938 =head1 SEE ALSO
940 B<parallel>(1), B<ash>(1), B<bash>(1), B<csh>(1), B<dash>(1),
941 B<fish>(1), B<ksh>(1), B<pdksh>(1) B<tcsh>(1), B<zsh>(1).
944 =cut