Released as 20240522 ('Tbilisi')
[parallel.git] / src / env_parallel.pod
blobc59ba5d84d23d5f51d7d6c4a487a84130b8a1fd5
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
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
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 set myarray arrays work, too
438 env_parallel -k echo '$myarray[{}]' ::: 1 2 3
439 env_parallel -k -S server echo '$myarray[{}]' ::: 1 2 3
440 env_parallel -k --env myarray echo '$myarray[{}]' ::: 1 2 3
441 env_parallel -k --env myarray -S server \
442 echo '$myarray[{}]' ::: 1 2 3
444 =back
447 =head2 ksh
449 =head3 Installation
451 Put this in $HOME/.kshrc:
453 source env_parallel.ksh
455 E.g. by doing:
457 echo 'source env_parallel.ksh' >> $HOME/.kshrc
459 =head3 Supported use
461 B<--env> is supported to export only the variable, alias, function, or
462 array with the given name. Multiple B<--env>s can be given.
464 B<--session> is supported.
466 =over 8
468 =item aliases
470 alias myecho='echo aliases'
471 env_parallel myecho ::: work
472 env_parallel -S server myecho ::: work
473 env_parallel --env myecho myecho ::: work
474 env_parallel --env myecho -S server myecho ::: work
476 alias multiline='echo multiline
477 echo aliases'
478 env_parallel multiline ::: work
479 env_parallel -S server multiline ::: work
480 env_parallel --env multiline multiline ::: work
481 env_parallel --env multiline -S server multiline ::: work
483 =item functions
485 myfunc() { echo functions $*; }
486 env_parallel myfunc ::: work
487 env_parallel -S server myfunc ::: work
488 env_parallel --env myfunc myfunc ::: work
489 env_parallel --env myfunc -S server myfunc ::: work
491 =item variables
493 myvar=variables
494 env_parallel echo '$myvar' ::: work
495 env_parallel -S server echo '$myvar' ::: work
496 env_parallel --env myvar echo '$myvar' ::: work
497 env_parallel --env myvar -S server echo '$myvar' ::: work
499 =item arrays
501 myarray=(arrays work, too)
502 env_parallel -k echo '${myarray[{}]}' ::: 0 1 2
503 env_parallel -k -S server echo '${myarray[{}]}' ::: 0 1 2
504 env_parallel -k --env myarray echo '${myarray[{}]}' ::: 0 1 2
505 env_parallel -k --env myarray -S server \
506 echo '${myarray[{}]}' ::: 0 1 2
508 =back
511 =head2 mksh
513 =head3 Installation
515 Put this in $HOME/.mkshrc:
517 source env_parallel.mksh
519 E.g. by doing:
521 echo 'source env_parallel.mksh' >> $HOME/.mkshrc
523 =head3 Supported use
525 B<--env> is supported to export only the variable, alias, function, or
526 array with the given name. Multiple B<--env>s can be given.
528 B<--session> is supported.
530 =over 8
532 =item aliases
534 alias myecho='echo aliases'
535 env_parallel myecho ::: work
536 env_parallel -S server myecho ::: work
537 env_parallel --env myecho myecho ::: work
538 env_parallel --env myecho -S server myecho ::: work
540 alias multiline='echo multiline
541 echo aliases'
542 env_parallel multiline ::: work
543 env_parallel -S server multiline ::: work
544 env_parallel --env multiline multiline ::: work
545 env_parallel --env multiline -S server multiline ::: work
547 =item functions
549 myfunc() { echo functions $*; }
550 env_parallel myfunc ::: work
551 env_parallel -S server myfunc ::: work
552 env_parallel --env myfunc myfunc ::: work
553 env_parallel --env myfunc -S server myfunc ::: work
555 =item variables
557 myvar=variables
558 env_parallel echo '$myvar' ::: work
559 env_parallel -S server echo '$myvar' ::: work
560 env_parallel --env myvar echo '$myvar' ::: work
561 env_parallel --env myvar -S server echo '$myvar' ::: work
563 =item arrays
565 myarray=(arrays work, too)
566 env_parallel -k echo '${myarray[{}]}' ::: 0 1 2
567 env_parallel -k -S server echo '${myarray[{}]}' ::: 0 1 2
568 env_parallel -k --env myarray echo '${myarray[{}]}' ::: 0 1 2
569 env_parallel -k --env myarray -S server \
570 echo '${myarray[{}]}' ::: 0 1 2
572 =back
575 =head2 pdksh
577 =head3 Installation
579 Put this in $HOME/.profile:
581 source env_parallel.pdksh
583 E.g. by doing:
585 echo 'source env_parallel.pdksh' >> $HOME/.profile
587 =head3 Supported use
589 B<--env> is supported to export only the variable, alias, function, or
590 array with the given name. Multiple B<--env>s can be given.
592 B<--session> is supported.
594 =over 8
596 =item aliases
598 alias myecho="echo aliases";
599 env_parallel myecho ::: work;
600 env_parallel -S server myecho ::: work;
601 env_parallel --env myecho myecho ::: work;
602 env_parallel --env myecho -S server myecho ::: work
604 =item functions
606 myfunc() { echo functions $*; };
607 env_parallel myfunc ::: work;
608 env_parallel -S server myfunc ::: work;
609 env_parallel --env myfunc myfunc ::: work;
610 env_parallel --env myfunc -S server myfunc ::: work
612 =item variables
614 myvar=variables;
615 env_parallel echo "\$myvar" ::: work;
616 env_parallel -S server echo "\$myvar" ::: work;
617 env_parallel --env myvar echo "\$myvar" ::: work;
618 env_parallel --env myvar -S server echo "\$myvar" ::: work
620 =item arrays
622 myarray=(arrays work, too);
623 env_parallel -k echo "\${myarray[{}]}" ::: 0 1 2;
624 env_parallel -k -S server echo "\${myarray[{}]}" ::: 0 1 2;
625 env_parallel -k --env myarray echo "\${myarray[{}]}" ::: 0 1 2;
626 env_parallel -k --env myarray -S server \
627 echo "\${myarray[{}]}" ::: 0 1 2
629 =back
632 =head2 sh
634 =head3 Installation
636 Put this in $HOME/.profile:
638 . env_parallel.sh
640 E.g. by doing:
642 echo '. env_parallel.sh' >> $HOME/.profile
644 =head3 Supported use
646 B<--env> is supported to export only the variable, or alias with the
647 given name. Multiple B<--env>s can be given.
649 B<--session> is supported.
651 =over 8
653 =item aliases
655 sh does not support aliases.
657 =item functions
659 myfunc() { echo functions $*; }
660 env_parallel myfunc ::: work
661 env_parallel -S server myfunc ::: work
662 env_parallel --env myfunc myfunc ::: work
663 env_parallel --env myfunc -S server myfunc ::: work
665 =item variables
667 myvar=variables
668 env_parallel echo '$myvar' ::: work
669 env_parallel -S server echo '$myvar' ::: work
670 env_parallel --env myvar echo '$myvar' ::: work
671 env_parallel --env myvar -S server echo '$myvar' ::: work
673 =item arrays
675 sh does not support arrays.
677 =back
680 =head2 tcsh
682 B<env_parallel> for B<tcsh> breaks B<$PARALLEL>, so do not use
683 B<$PARALLEL>.
685 =head3 Installation
687 Put this in $HOME/.tcshrc:
689 source `which env_parallel.tcsh`
691 E.g. by doing:
693 echo 'source `which env_parallel.tcsh`' >> $HOME/.tcshrc
695 =head3 Supported use
697 B<--env> is supported to export only the variable, alias, or
698 array with the given name. Multiple B<--env>s can be given.
700 =over 8
702 =item aliases
704 alias myecho 'echo aliases'
705 env_parallel myecho ::: work
706 env_parallel -S server myecho ::: work
707 env_parallel --env myecho myecho ::: work
708 env_parallel --env myecho -S server myecho ::: work
710 =item functions
712 Not supported by B<tcsh>.
714 =item variables
716 set myvar=variables
717 env_parallel echo '$myvar' ::: work
718 env_parallel -S server echo '$myvar' ::: work
719 env_parallel --env myvar echo '$myvar' ::: work
720 env_parallel --env myvar -S server echo '$myvar' ::: work
722 =item arrays with no special chars
724 set myarray=(arrays work, too)
725 env_parallel -k echo \$'{myarray[{}]}' ::: 1 2 3
726 env_parallel -k -S server echo \$'{myarray[{}]}' ::: 1 2 3
727 env_parallel -k --env myarray echo \$'{myarray[{}]}' ::: 1 2 3
728 env_parallel -k --env myarray -S server \
729 echo \$'{myarray[{}]}' ::: 1 2 3
731 =back
734 =head2 Zsh
736 =head3 Installation
738 Put this in $HOME/.zshrc:
740 . env_parallel.zsh
742 E.g. by doing:
744 echo '. env_parallel.zsh' >> $HOME/.zshenv
746 =head3 Supported use
748 B<--env> is supported to export only the variable, alias, function, or
749 array with the given name. Multiple B<--env>s can be given.
751 B<--session> is supported.
753 =over 8
755 =item aliases
757 alias myecho='echo aliases'
758 env_parallel myecho ::: work
759 env_parallel -S server myecho ::: work
760 env_parallel --env myecho myecho ::: work
761 env_parallel --env myecho -S server myecho ::: work
763 alias multiline='echo multiline
764 echo aliases'
765 env_parallel multiline ::: work
766 env_parallel -S server multiline ::: work
767 env_parallel --env multiline multiline ::: work
768 env_parallel --env multiline -S server multiline ::: work
770 =item functions
772 myfunc() { echo functions $*; }
773 env_parallel myfunc ::: work
774 env_parallel -S server myfunc ::: work
775 env_parallel --env myfunc myfunc ::: work
776 env_parallel --env myfunc -S server myfunc ::: work
778 =item variables
780 myvar=variables
781 env_parallel echo '$myvar' ::: work
782 env_parallel -S server echo '$myvar' ::: work
783 env_parallel --env myvar echo '$myvar' ::: work
784 env_parallel --env myvar -S server echo '$myvar' ::: work
786 =item arrays
788 myarray=(arrays work, too)
789 env_parallel -k echo '${myarray[{}]}' ::: 1 2 3
790 env_parallel -k -S server echo '${myarray[{}]}' ::: 1 2 3
791 env_parallel -k --env myarray echo '${myarray[{}]}' ::: 1 2 3
792 env_parallel -k --env myarray -S server \
793 echo '${myarray[{}]}' ::: 1 2 3
795 =back
798 =head1 EXIT STATUS
800 Same as GNU B<parallel>.
803 =head1 AUTHOR
805 When using GNU B<env_parallel> for a publication please cite:
807 O. Tange (2018): GNU Parallel 2018, March 2018, ISBN 9781387509881,
808 DOI: 10.5281/zenodo.1146014.
810 This helps funding further development; and it won't cost you a cent.
811 If you pay 10000 EUR you should feel free to use GNU Parallel without citing.
813 Copyright (C) 2007-10-18 Ole Tange, http://ole.tange.dk
815 Copyright (C) 2008-2010 Ole Tange, http://ole.tange.dk
817 Copyright (C) 2010-2024 Ole Tange, http://ole.tange.dk and Free
818 Software Foundation, Inc.
821 =head1 LICENSE
823 This program is free software; you can redistribute it and/or modify
824 it under the terms of the GNU General Public License as published by
825 the Free Software Foundation; either version 3 of the License, or
826 at your option any later version.
828 This program is distributed in the hope that it will be useful,
829 but WITHOUT ANY WARRANTY; without even the implied warranty of
830 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
831 GNU General Public License for more details.
833 You should have received a copy of the GNU General Public License
834 along with this program. If not, see <http://www.gnu.org/licenses/>.
836 =head2 Documentation license I
838 Permission is granted to copy, distribute and/or modify this
839 documentation under the terms of the GNU Free Documentation License,
840 Version 1.3 or any later version published by the Free Software
841 Foundation; with no Invariant Sections, with no Front-Cover Texts, and
842 with no Back-Cover Texts. A copy of the license is included in the
843 file LICENSES/GFDL-1.3-or-later.txt.
846 =head2 Documentation license II
848 You are free:
850 =over 9
852 =item B<to Share>
854 to copy, distribute and transmit the work
856 =item B<to Remix>
858 to adapt the work
860 =back
862 Under the following conditions:
864 =over 9
866 =item B<Attribution>
868 You must attribute the work in the manner specified by the author or
869 licensor (but not in any way that suggests that they endorse you or
870 your use of the work).
872 =item B<Share Alike>
874 If you alter, transform, or build upon this work, you may distribute
875 the resulting work only under the same, similar or a compatible
876 license.
878 =back
880 With the understanding that:
882 =over 9
884 =item B<Waiver>
886 Any of the above conditions can be waived if you get permission from
887 the copyright holder.
889 =item B<Public Domain>
891 Where the work or any of its elements is in the public domain under
892 applicable law, that status is in no way affected by the license.
894 =item B<Other Rights>
896 In no way are any of the following rights affected by the license:
898 =over 2
900 =item *
902 Your fair dealing or fair use rights, or other applicable
903 copyright exceptions and limitations;
905 =item *
907 The author's moral rights;
909 =item *
911 Rights other persons may have either in the work itself or in
912 how the work is used, such as publicity or privacy rights.
914 =back
916 =back
918 =over 9
920 =item B<Notice>
922 For any reuse or distribution, you must make clear to others the
923 license terms of this work.
925 =back
927 A copy of the full license is included in the file as
928 LICENCES/CC-BY-SA-4.0.txt
931 =head1 DEPENDENCIES
933 B<env_parallel> uses GNU B<parallel>.
936 =head1 SEE ALSO
938 B<parallel>(1), B<ash>(1), B<bash>(1), B<csh>(1), B<dash>(1),
939 B<fish>(1), B<ksh>(1), B<pdksh>(1) B<tcsh>(1), B<zsh>(1).
942 =cut