Released as 20210622 ('Protasevich')

This commit is contained in:
Ole Tange 2021-06-22 19:40:07 +02:00
parent 70732f3290
commit 35f539696e
26 changed files with 264 additions and 165 deletions

24
NEWS
View file

@ -1,3 +1,27 @@
20210622
New in this release:
* Bug fixes and man page updates.
News about GNU Parallel:
* How to use GNU Parallel
https://techtipbits.com/linux/how-to-use-gnu-parallel/
* How to Speed Up Bash Scripts with Multithreading and GNU Parallel
https://adamtheautomator.com/how-to-speed-up-bash-scripts-with-multithreading-and-gnu-parallel/
* Use Parallel to split by line
https://madflex.de/use-parallel-to-split-by-line/
* Optimizing long batch processes or ETL by using buff/cache properly
II (parallelizing network operations)
http://www.elsotanillo.net/2021/06/optimizing-long-batch-processes-or-etl-by-using-buff-cache-properly-ii-parallelizing-network-operations/
* Parallelization 3: GNU Parallel https://www.youtube.com/watch?v=Rl06WD60afA
20210522 20210522
New in this release: New in this release:

24
README
View file

@ -57,11 +57,11 @@ document.
Full installation of GNU Parallel is as simple as: Full installation of GNU Parallel is as simple as:
wget https://ftpmirror.gnu.org/parallel/parallel-20210522.tar.bz2 wget https://ftpmirror.gnu.org/parallel/parallel-20210622.tar.bz2
wget https://ftpmirror.gnu.org/parallel/parallel-20210522.tar.bz2.sig wget https://ftpmirror.gnu.org/parallel/parallel-20210622.tar.bz2.sig
gpg parallel-20210522.tar.bz2.sig gpg parallel-20210622.tar.bz2.sig
bzip2 -dc parallel-20210522.tar.bz2 | tar xvf - bzip2 -dc parallel-20210622.tar.bz2 | tar xvf -
cd parallel-20210522 cd parallel-20210622
./configure && make && sudo make install ./configure && make && sudo make install
@ -70,11 +70,11 @@ Full installation of GNU Parallel is as simple as:
If you are not root you can add ~/bin to your path and install in If you are not root you can add ~/bin to your path and install in
~/bin and ~/share: ~/bin and ~/share:
wget https://ftpmirror.gnu.org/parallel/parallel-20210522.tar.bz2 wget https://ftpmirror.gnu.org/parallel/parallel-20210622.tar.bz2
wget https://ftpmirror.gnu.org/parallel/parallel-20210522.tar.bz2.sig wget https://ftpmirror.gnu.org/parallel/parallel-20210622.tar.bz2.sig
gpg parallel-20210522.tar.bz2.sig gpg parallel-20210622.tar.bz2.sig
bzip2 -dc parallel-20210522.tar.bz2 | tar xvf - bzip2 -dc parallel-20210622.tar.bz2 | tar xvf -
cd parallel-20210522 cd parallel-20210622
./configure --prefix=$HOME && make && make install ./configure --prefix=$HOME && make && make install
Or if your system lacks 'make' you can simply copy src/parallel Or if your system lacks 'make' you can simply copy src/parallel
@ -122,8 +122,8 @@ will love you for it.
When using programs that use GNU Parallel to process data for When using programs that use GNU Parallel to process data for
publication please cite: publication please cite:
Tange, O. (2021, May 22). GNU Parallel 20210522 ('Gaza'). Tange, O. (2021, June 22). GNU Parallel 20210622 ('Protasevich').
Zenodo. https://doi.org/10.5281/zenodo.4781603 Zenodo. https://doi.org/10.5281/zenodo.5013933
Copyright (C) 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, Copyright (C) 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015,
2016, 2017, 2018, 2019, 2020, 2021 Ole Tange, http://ole.tange.dk and 2016, 2017, 2018, 2019, 2020, 2021 Ole Tange, http://ole.tange.dk and

20
configure vendored
View file

@ -1,6 +1,6 @@
#! /bin/sh #! /bin/sh
# Guess values for system-dependent variables and create Makefiles. # Guess values for system-dependent variables and create Makefiles.
# Generated by GNU Autoconf 2.69 for parallel 20210522. # Generated by GNU Autoconf 2.69 for parallel 20210622.
# #
# Report bugs to <bug-parallel@gnu.org>. # Report bugs to <bug-parallel@gnu.org>.
# #
@ -579,8 +579,8 @@ MAKEFLAGS=
# Identity of this package. # Identity of this package.
PACKAGE_NAME='parallel' PACKAGE_NAME='parallel'
PACKAGE_TARNAME='parallel' PACKAGE_TARNAME='parallel'
PACKAGE_VERSION='20210522' PACKAGE_VERSION='20210622'
PACKAGE_STRING='parallel 20210522' PACKAGE_STRING='parallel 20210622'
PACKAGE_BUGREPORT='bug-parallel@gnu.org' PACKAGE_BUGREPORT='bug-parallel@gnu.org'
PACKAGE_URL='' PACKAGE_URL=''
@ -1214,7 +1214,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing. # Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh. # This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF cat <<_ACEOF
\`configure' configures parallel 20210522 to adapt to many kinds of systems. \`configure' configures parallel 20210622 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]... Usage: $0 [OPTION]... [VAR=VALUE]...
@ -1281,7 +1281,7 @@ fi
if test -n "$ac_init_help"; then if test -n "$ac_init_help"; then
case $ac_init_help in case $ac_init_help in
short | recursive ) echo "Configuration of parallel 20210522:";; short | recursive ) echo "Configuration of parallel 20210622:";;
esac esac
cat <<\_ACEOF cat <<\_ACEOF
@ -1357,7 +1357,7 @@ fi
test -n "$ac_init_help" && exit $ac_status test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then if $ac_init_version; then
cat <<\_ACEOF cat <<\_ACEOF
parallel configure 20210522 parallel configure 20210622
generated by GNU Autoconf 2.69 generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc. Copyright (C) 2012 Free Software Foundation, Inc.
@ -1374,7 +1374,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake. running configure, to aid debugging if configure makes a mistake.
It was created by parallel $as_me 20210522, which was It was created by parallel $as_me 20210622, which was
generated by GNU Autoconf 2.69. Invocation command line was generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@ $ $0 $@
@ -2237,7 +2237,7 @@ fi
# Define the identity of the package. # Define the identity of the package.
PACKAGE='parallel' PACKAGE='parallel'
VERSION='20210522' VERSION='20210622'
cat >>confdefs.h <<_ACEOF cat >>confdefs.h <<_ACEOF
@ -2880,7 +2880,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their # report actual input values of CONFIG_FILES etc. instead of their
# values after options handling. # values after options handling.
ac_log=" ac_log="
This file was extended by parallel $as_me 20210522, which was This file was extended by parallel $as_me 20210622, which was
generated by GNU Autoconf 2.69. Invocation command line was generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES CONFIG_FILES = $CONFIG_FILES
@ -2942,7 +2942,7 @@ _ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\ ac_cs_version="\\
parallel config.status 20210522 parallel config.status 20210622
configured by $0, generated by GNU Autoconf 2.69, configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\" with options \\"\$ac_cs_config\\"

View file

@ -1,4 +1,4 @@
AC_INIT([parallel], [20210522], [bug-parallel@gnu.org]) AC_INIT([parallel], [20210622], [bug-parallel@gnu.org])
AM_INIT_AUTOMAKE([-Wall -Werror foreign]) AM_INIT_AUTOMAKE([-Wall -Werror foreign])
AC_CONFIG_HEADERS([config.h]) AC_CONFIG_HEADERS([config.h])
AC_CONFIG_FILES([ AC_CONFIG_FILES([

View file

@ -10,10 +10,6 @@ Quote of the month:
parallel is my new kink parallel is my new kink
-- python_noob_001@reddit -- python_noob_001@reddit
GNU Parallel makes my life so much easier.
I'm glad I don't have to implement multi-threaded Python scripts on the regular.
-- Fredrick Brennan @fr_brennan@twitter
@GnuParallel the best thing ever and it's not up for debate #EOchat @GnuParallel the best thing ever and it's not up for debate #EOchat
-- Nathan Thomas @DrNASApants@twitter -- Nathan Thomas @DrNASApants@twitter
@ -121,6 +117,10 @@ https://negfeedback.blogspot.com/2020/05/indispensable-command-line-tools.html
=== Used === === Used ===
GNU Parallel makes my life so much easier.
I'm glad I don't have to implement multi-threaded Python scripts on the regular.
-- Fredrick Brennan @fr_brennan@twitter
If you work with lots of files at once If you work with lots of files at once
Take a good look at GNU parallel Take a good look at GNU parallel
Change your life for the better Change your life for the better

View file

@ -101,10 +101,53 @@ Thumbnail: https://www.gnu.org/software/parallel/logo-gray+black10000.png
Tags: gnu parallel software Tags: gnu parallel software
file_path="parallel-20210422.tar.bz2" file_path="parallel-20210622.tar.bz2"
name="GNU Parallel $YYYYMMDD ('$SPCTAG')" title="GNU Parallel $YYYYMMDD ('$SPCTAG') [stable]"
title="$name" name="GNU-Parallel-$YYYYMMDD-$SPCTAG"
description="$description" author="Ole Tange"
license="GNU GPLv3 or later"
thumbnail_url=https://www.gnu.org/software/parallel/logo-gray+black10000.png
channel_name="@GnuParallel"
tags_opt='--tag gnu --tag parallel --tag free --tag software'
description="An easy way to support GNU Parallel is to tip on LBRY.
GNU Parallel 20210622 ('Protasevich') [stable] has been released. It is available for download at: lbry://@GnuParallel:4
No new functionality was introduced so this is a good candidate for a stable release.
Please help spreading GNU Parallel by making a testimonial video like Juan Sierra Pons: http://www.elsotanillo.net/wp-content/uploads/GnuParallel_JuanSierraPons.mp4
It does not have to be as detailed as Juan's. It is perfectly fine if you just say your name, and what field you are using GNU Parallel for.
Quote of the month:
GNU Parallel makes my life so much easier.
I'm glad I don't have to implement multi-threaded Python scripts on the regular.
-- Fredrick Brennan @fr_brennan@twitter
New in this release:
* Bug fixes and man page updates.
News about GNU Parallel:
* How to use GNU Parallel https://techtipbits.com/linux/how-to-use-gnu-parallel/
* How to Speed Up Bash Scripts with Multithreading and GNU Parallel https://adamtheautomator.com/how-to-speed-up-bash-scripts-with-multithreading-and-gnu-parallel/
* Use Parallel to split by line https://madflex.de/use-parallel-to-split-by-line/
* Optimizing long batch processes or ETL by using buff/cache properly II (parallelizing network operations) http://www.elsotanillo.net/2021/06/optimizing-long-batch-processes-or-etl-by-using-buff-cache-properly-ii-parallelizing-network-operations/
* Parallelization 3: GNU Parallel https://www.youtube.com/watch?v=Rl06WD60afA
Get the book: GNU Parallel 2018 http://www.lulu.com/shop/ole-tange/gnu-parallel-2018/paperback/product-23558902.html
GNU Parallel - For people who live life in the parallel lane.
If you like GNU Parallel record a video testimonial: Say who you are, what you use GNU Parallel for, how it helps you, and what you like most about it. Include a command that uses GNU Parallel if you feel like it.
"
lbrynet publish \ lbrynet publish \
--bid=0.01 \ --bid=0.01 \
@ -117,9 +160,9 @@ lbrynet publish \
$tags_opt \ $tags_opt \
--license="$license" \ --license="$license" \
--thumbnail_url="$thumbnail_url" \ --thumbnail_url="$thumbnail_url" \
--release_time="$release_time" \
--channel_name="$channel_name" \ --channel_name="$channel_name" \
--release_time="$release_time" \
== Update website == == Update website ==
@ -241,9 +284,9 @@ from:tange@gnu.org
to:parallel@gnu.org, bug-parallel@gnu.org to:parallel@gnu.org, bug-parallel@gnu.org
stable-bcc: Jesse Alama <jessealama@fastmail.fm> stable-bcc: Jesse Alama <jessealama@fastmail.fm>
Subject: GNU Parallel 20210522 ('Gaza/Lag Ba'Omer celebrations at Mt. Meron Israel/Michael Collins <<>>') released <<[stable]>> Subject: GNU Parallel 20210622 ('Protasevich') released <<[stable]>>
GNU Parallel 20210522 ('<<>>') <<[stable]>> has been released. It is available for download at: lbry://@GnuParallel:4 GNU Parallel 20210622 ('Protasevich') <<[stable]>> has been released. It is available for download at: lbry://@GnuParallel:4
<<No new functionality was introduced so this is a good candidate for a stable release.>> <<No new functionality was introduced so this is a good candidate for a stable release.>>
@ -253,22 +296,27 @@ It does not have to be as detailed as Juan's. It is perfectly fine if you just s
Quote of the month: Quote of the month:
GNU Parallel makes my life so much easier.
I'm glad I don't have to implement multi-threaded Python scripts on the regular.
-- Fredrick Brennan @fr_brennan@twitter
<<>> <<>>
New in this release: New in this release:
* --plus includes {%%regexp} and {##regexp}.
* Bug fixes and man page updates. * Bug fixes and man page updates.
News about GNU Parallel: News about GNU Parallel:
* Batch Calculate and Verify MD5 Checksum With GNU Parallel https://omicx.cc/posts/2021-04-28-calculate-and-verify-md5-checksum-with-gnu-parallel/ * How to use GNU Parallel https://techtipbits.com/linux/how-to-use-gnu-parallel/
* HerrComp Gnu parallel, c++11 threads 2021 04 28 https://www.youtube.com/watch?v=wDd9F9nn0qA
* Distributing embarrassingly parallel tasks GNU Parallel https://ulhpc-tutorials.readthedocs.io/en/latest/sequential/gnu-parallel/ * How to Speed Up Bash Scripts with Multithreading and GNU Parallel https://adamtheautomator.com/how-to-speed-up-bash-scripts-with-multithreading-and-gnu-parallel/
* Job Parallelization on Niagara https://www.maryamdaryalal.com/post/job-parallelization-on-niagara
* Use Parallel to split by line https://madflex.de/use-parallel-to-split-by-line/ * Use Parallel to split by line https://madflex.de/use-parallel-to-split-by-line/
* m1 multi-core batch convert with gpu parallel + ffmpeg https://www.youtube.com/watch?v=hAuc0YsXv6A
* Optimizing long batch processes or ETL by using buff/cache properly II (parallelizing network operations) http://www.elsotanillo.net/2021/06/optimizing-long-batch-processes-or-etl-by-using-buff-cache-properly-ii-parallelizing-network-operations/
* Parallelization 3: GNU Parallel https://www.youtube.com/watch?v=Rl06WD60afA
<<>> <<>>

View file

@ -1,7 +1,7 @@
<directory name="parallel" rev="309" vrev="1" srcmd5="2b3abd269c145b2b6f9c8f5c621f0a2c"> <directory name="parallel" rev="310" vrev="1" srcmd5="4097379f67c84ee069ce4f44248f5d36">
<entry name="PKGBUILD" md5="8968befcd044ed0420f4cba10e888979" size="936" mtime="1621714283" /> <entry name="PKGBUILD" md5="3da589d7ca2d32a2f3706757a9823072" size="936" mtime="1624380019" />
<entry name="parallel-20210522.tar.bz2" md5="e5dae00759499a6249bfce0ea3db6c27" size="2246800" mtime="1621714283" /> <entry name="parallel-20210622.tar.bz2" md5="cde9fdb71b04e150f7b2c9fb2956d9b6" size="2250984" mtime="1624380019" />
<entry name="parallel.spec" md5="d75be8b4ac0fcdc53e79987905c17dab" size="5630" mtime="1621714284" /> <entry name="parallel.spec" md5="ede78937a7985a62235441e7d08befb9" size="5630" mtime="1624380019" />
<entry name="parallel_20210522.dsc" md5="1333cd608f0d2c2c713e03dc42a88b0f" size="556" mtime="1621714284" /> <entry name="parallel_20210622.dsc" md5="734afb9792b55742b326aeff8fd546d9" size="556" mtime="1624380019" />
<entry name="parallel_20210522.tar.gz" md5="7dd347b3a538b439da031e94e2c6a5eb" size="2486960" mtime="1621714284" /> <entry name="parallel_20210622.tar.gz" md5="484cd5c717fabf9c81ca64754e14a618" size="2491911" mtime="1624380020" />
</directory> </directory>

View file

@ -1,7 +1,7 @@
Summary: Shell tool for executing jobs in parallel Summary: Shell tool for executing jobs in parallel
Name: parallel Name: parallel
Version: 20210522 Version: 20210622
Release: 1.3 Release: 1.3
License: GPL-3.0-or-later License: GPL-3.0-or-later
Group: Productivity/File utilities Group: Productivity/File utilities

View file

@ -83,45 +83,45 @@ env_parallel only works if it is a function. Do the below and restart your shell
bash: Put this in $HOME/.bashrc: . `which env_parallel.bash` bash: Put this in $HOME/.bashrc: . `which env_parallel.bash`
E.g. by doing: echo '. `which env_parallel.bash`' >> $HOME/.bashrc E.g. by doing: echo '. `which env_parallel.bash`' >> $HOME/.bashrc
Supports: aliases, functions, variables, arrays Supports: variables, aliases, functions, arrays
zsh: Put this in $HOME/.zshrc: . `which env_parallel.zsh`
E.g. by doing: echo '. `which env_parallel.zsh`' >> $HOME/.zshenv
Supports: functions, variables, arrays
fish: Put this in $HOME/.config/fish/config.fish: fish: Put this in $HOME/.config/fish/config.fish:
. (which env_parallel.fish) . (which env_parallel.fish)
E.g. by doing: E.g. by doing:
echo '. (which env_parallel.fish)' >> $HOME/.config/fish/config.fish echo '. (which env_parallel.fish)' >> $HOME/.config/fish/config.fish
Supports: aliases, functions, variables, arrays Supports: variables, aliases, functions, arrays
ksh: Put this in $HOME/.kshrc: source `which env_parallel.ksh` ksh: Put this in $HOME/.kshrc: source `which env_parallel.ksh`
E.g. by doing: echo 'source `which env_parallel.ksh`' >> $HOME/.kshrc E.g. by doing: echo 'source `which env_parallel.ksh`' >> $HOME/.kshrc
Supports: aliases, functions, variables, arrays Supports: variables, aliases, functions, arrays
mksh: Put this in $HOME/.mkshrc: source `which env_parallel.mksh` mksh: Put this in $HOME/.mkshrc: source `which env_parallel.mksh`
E.g. by doing: echo 'source `which env_parallel.mksh`' >> $HOME/.mkshrc E.g. by doing: echo 'source `which env_parallel.mksh`' >> $HOME/.mkshrc
Supports: aliases, functions, variables, arrays Supports: variables, aliases, functions, arrays
pdksh: Put this in $HOME/.profile: source `which env_parallel.pdksh` pdksh: Put this in $HOME/.profile: source `which env_parallel.pdksh`
E.g. by doing: echo '. `which env_parallel.pdksh`' >> $HOME/.profile E.g. by doing: echo '. `which env_parallel.pdksh`' >> $HOME/.profile
Supports: aliases, functions, variables, arrays Supports: variables, aliases, functions, arrays
zsh: Put this in $HOME/.zshrc: . `which env_parallel.zsh`
E.g. by doing: echo '. `which env_parallel.zsh`' >> $HOME/.zshenv
Supports: variables, functions, arrays
ash: Put this in $HOME/.profile: . `which env_parallel.ash` ash: Put this in $HOME/.profile: . `which env_parallel.ash`
E.g. by doing: echo '. `which env_parallel.ash`' >> $HOME/.profile E.g. by doing: echo '. `which env_parallel.ash`' >> $HOME/.profile
Supports: aliases, variables Supports: variables, aliases
dash: Put this in $HOME/.profile: . `which env_parallel.dash` dash: Put this in $HOME/.profile: . `which env_parallel.dash`
E.g. by doing: echo '. `which env_parallel.dash`' >> $HOME/.profile E.g. by doing: echo '. `which env_parallel.dash`' >> $HOME/.profile
Supports: aliases, variables Supports: variables, aliases
csh: Put this in $HOME/.cshrc: source `which env_parallel.csh` csh: Put this in $HOME/.cshrc: source `which env_parallel.csh`
E.g. by doing: echo 'source `which env_parallel.csh`' >> $HOME/.cshrc E.g. by doing: echo 'source `which env_parallel.csh`' >> $HOME/.cshrc
Supports: aliases, variables, arrays with no special chars Supports: variables, aliases, arrays with no special chars
tcsh: Put this in $HOME/.tcshrc: source `which env_parallel.tcsh` tcsh: Put this in $HOME/.tcshrc: source `which env_parallel.tcsh`
E.g. by doing: echo 'source `which env_parallel.tcsh`' >> $HOME/.tcshrc E.g. by doing: echo 'source `which env_parallel.tcsh`' >> $HOME/.tcshrc
Supports: aliases, variables, arrays with no special chars Supports: variables, aliases, arrays with no special chars
To install in all shells run: To install in all shells run:

View file

@ -385,7 +385,7 @@ _parset_main() {
return 255 return 255
fi fi
if [ "$_parset_NAME" = "--version" ] ; then if [ "$_parset_NAME" = "--version" ] ; then
echo "parset 20210522 (GNU parallel `parallel --minversion 1`)" echo "parset 20210622 (GNU parallel `parallel --minversion 1`)"
echo "Copyright (C) 2007-2021 Ole Tange, http://ole.tange.dk and Free Software" echo "Copyright (C) 2007-2021 Ole Tange, http://ole.tange.dk and Free Software"
echo "Foundation, Inc." echo "Foundation, Inc."
echo "License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>" echo "License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>"

View file

@ -391,7 +391,7 @@ _parset_main() {
return 255 return 255
fi fi
if [ "$_parset_NAME" = "--version" ] ; then if [ "$_parset_NAME" = "--version" ] ; then
echo "parset 20210522 (GNU parallel `parallel --minversion 1`)" echo "parset 20210622 (GNU parallel `parallel --minversion 1`)"
echo "Copyright (C) 2007-2021 Ole Tange, http://ole.tange.dk and Free Software" echo "Copyright (C) 2007-2021 Ole Tange, http://ole.tange.dk and Free Software"
echo "Foundation, Inc." echo "Foundation, Inc."
echo "License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>" echo "License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>"
@ -429,7 +429,7 @@ _parset_main() {
($_parset_PARALLEL_PRG --files -k "$@"; echo $? > "$_exit_FILE") | ($_parset_PARALLEL_PRG --files -k "$@"; echo $? > "$_exit_FILE") |
# var1=`cat tmpfile1; rm tmpfile1` # var1=`cat tmpfile1; rm tmpfile1`
# var2=`cat tmpfile2; rm tmpfile2` # var2=`cat tmpfile2; rm tmpfile2`
parallel --plain -q echo '{2}=`cat {1}; rm {1}`' :::: - :::+ $( parallel -k --plain -q echo '{2}=`cat {1}; rm {1}`' :::: - :::+ $(
echo "$_parset_NAME" | perl -pe 's/,/ /g' echo "$_parset_NAME" | perl -pe 's/,/ /g'
) )
); );

View file

@ -385,7 +385,7 @@ _parset_main() {
return 255 return 255
fi fi
if [ "$_parset_NAME" = "--version" ] ; then if [ "$_parset_NAME" = "--version" ] ; then
echo "parset 20210522 (GNU parallel `parallel --minversion 1`)" echo "parset 20210622 (GNU parallel `parallel --minversion 1`)"
echo "Copyright (C) 2007-2021 Ole Tange, http://ole.tange.dk and Free Software" echo "Copyright (C) 2007-2021 Ole Tange, http://ole.tange.dk and Free Software"
echo "Foundation, Inc." echo "Foundation, Inc."
echo "License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>" echo "License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>"

View file

@ -368,7 +368,7 @@ _parset_main() {
return 255 return 255
fi fi
if [ "$_parset_NAME" = "--version" ] ; then if [ "$_parset_NAME" = "--version" ] ; then
echo "parset 20210522 (GNU parallel `parallel --minversion 1`)" echo "parset 20210622 (GNU parallel `parallel --minversion 1`)"
echo "Copyright (C) 2007-2021 Ole Tange, http://ole.tange.dk and Free Software" echo "Copyright (C) 2007-2021 Ole Tange, http://ole.tange.dk and Free Software"
echo "Foundation, Inc." echo "Foundation, Inc."
echo "License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>" echo "License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>"

View file

@ -371,7 +371,7 @@ _parset_main() {
return 255 return 255
fi fi
if [ "$_parset_NAME" = "--version" ] ; then if [ "$_parset_NAME" = "--version" ] ; then
echo "parset 20210522 (GNU parallel `parallel --minversion 1`)" echo "parset 20210622 (GNU parallel `parallel --minversion 1`)"
echo "Copyright (C) 2007-2021 Ole Tange, http://ole.tange.dk and Free Software" echo "Copyright (C) 2007-2021 Ole Tange, http://ole.tange.dk and Free Software"
echo "Foundation, Inc." echo "Foundation, Inc."
echo "License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>" echo "License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>"

View file

@ -390,7 +390,7 @@ _parset_main() {
return 255 return 255
fi fi
if [ "$_parset_NAME" = "--version" ] ; then if [ "$_parset_NAME" = "--version" ] ; then
echo "parset 20210522 (GNU parallel `parallel --minversion 1`)" echo "parset 20210622 (GNU parallel `parallel --minversion 1`)"
echo "Copyright (C) 2007-2021 Ole Tange, http://ole.tange.dk and Free Software" echo "Copyright (C) 2007-2021 Ole Tange, http://ole.tange.dk and Free Software"
echo "Foundation, Inc." echo "Foundation, Inc."
echo "License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>" echo "License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>"

View file

@ -362,7 +362,7 @@ _parset_main() {
return 255 return 255
fi fi
if [ "$_parset_NAME" = "--version" ] ; then if [ "$_parset_NAME" = "--version" ] ; then
echo "parset 20210522 (GNU parallel `parallel --minversion 1`)" echo "parset 20210622 (GNU parallel `parallel --minversion 1`)"
echo "Copyright (C) 2007-2021 Ole Tange, http://ole.tange.dk and Free Software" echo "Copyright (C) 2007-2021 Ole Tange, http://ole.tange.dk and Free Software"
echo "Foundation, Inc." echo "Foundation, Inc."
echo "License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>" echo "License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>"
@ -394,11 +394,11 @@ _parset_main() {
if perl -e 'exit not grep /,| /, @ARGV' "$_parset_NAME" ; then if perl -e 'exit not grep /,| /, @ARGV' "$_parset_NAME" ; then
# $_parset_NAME contains , or space # $_parset_NAME contains , or space
# Split on , or space to get the names # Split on , or space to get the names
# Compute results into files
# var1=`cat tmpfile1; rm tmpfile1`
# var2=`cat tmpfile2; rm tmpfile2`
eval "$( eval "$(
# Compute results into files
($_parset_PARALLEL_PRG --files -k "$@"; echo $? > "$_exit_FILE") | ($_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 -q echo {2}='`cat {1}; rm {1}`' :::: - :::+ $(
echo "$_parset_NAME" | perl -pe 's/,/ /g' echo "$_parset_NAME" | perl -pe 's/,/ /g'
) )
@ -409,8 +409,8 @@ _parset_main() {
# => $_parset_NAME is the name of the array to put data into # => $_parset_NAME is the name of the array to put data into
# Supported in: bash zsh ksh mksh # Supported in: bash zsh ksh mksh
# Arrays do not work in: sh ash dash # Arrays do not work in: sh ash dash
# Compute results into files. Save exit value
eval "$_parset_NAME=( $( eval "$_parset_NAME=( $(
# Compute results into files. Save exit value
($_parset_PARALLEL_PRG --files -k "$@"; echo $? > "$_exit_FILE") | ($_parset_PARALLEL_PRG --files -k "$@"; echo $? > "$_exit_FILE") |
perl -pe 'chop;$_="\"\`cat $_; rm $_\`\" "' perl -pe 'chop;$_="\"\`cat $_; rm $_\`\" "'
) )" ) )"

View file

@ -26,7 +26,7 @@
use strict; use strict;
use Getopt::Long; use Getopt::Long;
$Global::progname="niceload"; $Global::progname="niceload";
$Global::version = 20210522; $Global::version = 20210622;
Getopt::Long::Configure("bundling","require_order"); Getopt::Long::Configure("bundling","require_order");
get_options_from_array(\@ARGV) || die_usage(); get_options_from_array(\@ARGV) || die_usage();
if($opt::version) { if($opt::version) {

View file

@ -2187,7 +2187,7 @@ sub check_invalid_option_combinations() {
sub init_globals() { sub init_globals() {
# Defaults: # Defaults:
$Global::version = 20210522; $Global::version = 20210622;
$Global::progname = 'parallel'; $Global::progname = 'parallel';
$::name = "GNU Parallel"; $::name = "GNU Parallel";
$Global::infinity = 2**31; $Global::infinity = 2**31;
@ -4812,6 +4812,8 @@ sub reaper() {
$job->set_exitstatus($? >> 8); $job->set_exitstatus($? >> 8);
$job->set_exitsignal($? & 127); $job->set_exitsignal($? & 127);
} }
debug("run", "\nseq ",$job->seq()," died (", $job->exitstatus(), ")");
if($Global::delayauto or $Global::sshdelayauto) { if($Global::delayauto or $Global::sshdelayauto) {
if($job->exitstatus()) { if($job->exitstatus()) {
# Job failed: Increase delay (if $opt::(ssh)delay set) # Job failed: Increase delay (if $opt::(ssh)delay set)
@ -4822,9 +4824,8 @@ sub reaper() {
$opt::delay &&= $opt::delay * 0.9; $opt::delay &&= $opt::delay * 0.9;
$opt::sshdelay &&= $opt::sshdelay * 0.9; $opt::sshdelay &&= $opt::sshdelay * 0.9;
} }
debug("run", "delay:$opt::delay ssh:$opt::sshdelay ");
} }
debug("run", "seq ",$job->seq()," died (", $job->exitstatus(), ")");
$job->set_endtime(::now()); $job->set_endtime(::now());
my $sshlogin = $job->sshlogin(); my $sshlogin = $job->sshlogin();
$sshlogin->dec_jobs_running(); $sshlogin->dec_jobs_running();
@ -4992,8 +4993,8 @@ sub usage() {
"If you use programs that use GNU Parallel to process data for an article in a", "If you use programs that use GNU Parallel to process data for an article in a",
"scientific publication, please cite:", "scientific publication, please cite:",
"", "",
" Tange, O. (2021, May 22). GNU Parallel 20210522 ('Gaza').", " Tange, O. (2021, June 22). GNU Parallel 20210622 ('Protasevich').",
" Zenodo. https://doi.org/10.5281/zenodo.4781603", " Zenodo. https://doi.org/10.5281/zenodo.5013933",
"", "",
# Before changing this line, please read # Before changing this line, please read
# https://www.gnu.org/software/parallel/parallel_design.html#Citation-notice # https://www.gnu.org/software/parallel/parallel_design.html#Citation-notice
@ -5023,8 +5024,8 @@ sub citation_notice() {
"If you use programs that use GNU Parallel to process data for an article in a", "If you use programs that use GNU Parallel to process data for an article in a",
"scientific publication, please cite:", "scientific publication, please cite:",
"", "",
" Tange, O. (2021, May 22). GNU Parallel 20210522 ('Gaza').", " Tange, O. (2021, June 22). GNU Parallel 20210622 ('Protasevich').",
" Zenodo. https://doi.org/10.5281/zenodo.4781603", " Zenodo. https://doi.org/10.5281/zenodo.5013933",
"", "",
# Before changing this line, please read # Before changing this line, please read
# https://www.gnu.org/software/parallel/parallel_design.html#Citation-notice and # https://www.gnu.org/software/parallel/parallel_design.html#Citation-notice and
@ -5147,20 +5148,20 @@ sub citation() {
"If you use programs that use GNU Parallel to process data for an article in a", "If you use programs that use GNU Parallel to process data for an article in a",
"scientific publication, please cite:", "scientific publication, please cite:",
"", "",
"\@software{tange_2021_4781603,", "\@software{tange_2021_5013933,",
" author = {Tange, Ole},", " author = {Tange, Ole},",
" title = {GNU Parallel 20210522 ('Gaza')},", " title = {GNU Parallel 20210622 ('Protasevich')},",
" month = May,", " month = Jun,",
" year = 2021,", " year = 2021,",
" note = {{GNU Parallel is a general parallelizer to run", " note = {{GNU Parallel is a general parallelizer to run",
" multiple serial command line programs in parallel", " multiple serial command line programs in parallel",
" without changing them.}},", " without changing them.}},",
" publisher = {Zenodo},", " publisher = {Zenodo},",
" doi = {10.5281/zenodo.4781603},", " doi = {10.5281/zenodo.5013933},",
" url = {https://doi.org/10.5281/zenodo.4781603}", " url = {https://doi.org/10.5281/zenodo.5013933}",
"}", "}",
"", "",
"(Feel free to use \\nocite{tange_2021_4781603})", "(Feel free to use \\nocite{tange_2021_5013933})",
"", "",
# Before changing this line, please read # Before changing this line, please read
# https://www.gnu.org/software/parallel/parallel_design.html#Citation-notice and # https://www.gnu.org/software/parallel/parallel_design.html#Citation-notice and
@ -6023,8 +6024,12 @@ sub reap_usleep() {
$SIG{CHLD} = sub { kill "ALRM", $$ }; $SIG{CHLD} = sub { kill "ALRM", $$ };
if($opt::delay) { if($opt::delay) {
# The 0.004s is approximately the time it takes for one round # The 0.004s is approximately the time it takes for one round
usleep(1000*($Global::newest_starttime + my $next_earliest_start =
$opt::delay - 0.004 - ::now())); $Global::newest_starttime + $opt::delay - 0.004;
my $remaining_ms = 1000 * ($next_earliest_start - ::now());
# The next job can only start at $next_earliest_start
# so sleep until then (but sleep at least $ms)
usleep(::max($ms,$remaining_ms));
} else { } else {
usleep($ms); usleep($ms);
} }

View file

@ -1639,9 +1639,9 @@ Activate additional replacement strings: {+/} {+.} {+..} {+...} {..}
B<{##}> is the total number of jobs to be run. It is incompatible with B<{##}> is the total number of jobs to be run. It is incompatible with
B<-X>/B<-m>/B<--xargs>. B<-X>/B<-m>/B<--xargs>.
B<{0%}> zero-padded jobslot. (alpha testing) B<{0%}> zero-padded jobslot. (beta testing)
B<{0#}> zero-padded sequence number. (alpha testing) B<{0#}> zero-padded sequence number. (beta testing)
B<{choose_k}> is inspired by n choose k: Given a list of n elements, B<{choose_k}> is inspired by n choose k: Given a list of n elements,
choose k. k is the number of input sources and n is the number of choose k. k is the number of input sources and n is the number of

View file

@ -3162,9 +3162,17 @@ of ~0.05 ms/job compared to GNU B<parallel>'s ~3 ms/job). So if your
jobs are extremely short lived, and you can live with the quite jobs are extremely short lived, and you can live with the quite
limited command, this may be useful. limited command, this may be useful.
B<parallel-bash> will not start the first job, until it has read all It works by making a queue for each process. Then the jobs are
input. The input can at most be 20935 lines and the lines cannot be distributed to the queues in a round robin fashion. Finally the queues
all be empty. are started in parallel. This works fine, if you are lucky, but if
not, all the long jobs may end up in the same queue, so you may see:
$ printf "%b\n" 1 1 1 4 1 1 1 4 1 1 1 4 |
time parallel -P4 sleep {}
(7 seconds)
$ printf "%b\n" 1 1 1 4 1 1 1 4 1 1 1 4 |
time ./parallel-bash.bash -p 4 -c sleep {}
(12 seconds)
Ctrl-C does not stop spawning new jobs. Ctrl-Z does not suspend Ctrl-C does not stop spawning new jobs. Ctrl-Z does not suspend
running jobs. running jobs.
@ -3189,7 +3197,7 @@ running jobs.
4$ something | parallel -j 5 echo {} {} 4$ something | parallel -j 5 echo {} {}
https://reposhub.com/python/command-line-tools/Akianonymus-parallel-bash.html https://reposhub.com/python/command-line-tools/Akianonymus-parallel-bash.html
(Last checked: 2021-02) (Last checked: 2021-06)
=head2 DIFFERENCES BETWEEN bash-concurrent AND GNU Parallel =head2 DIFFERENCES BETWEEN bash-concurrent AND GNU Parallel

View file

@ -86,33 +86,33 @@ Do the below and restart your shell.
bash: Put this in $HOME/.bashrc: . `which env_parallel.bash` bash: Put this in $HOME/.bashrc: . `which env_parallel.bash`
E.g. by doing: echo '. `which env_parallel.bash`' >> $HOME/.bashrc E.g. by doing: echo '. `which env_parallel.bash`' >> $HOME/.bashrc
Supports: aliases, functions, variables, arrays Supports: variables, aliases, functions, arrays
zsh: Put this in $HOME/.zshrc: . `which env_parallel.zsh`
E.g. by doing: echo '. `which env_parallel.zsh`' >> $HOME/.zshenv
Supports: functions, variables, arrays
fish: Unsupported
ksh: Put this in $HOME/.kshrc: source `which env_parallel.ksh` ksh: Put this in $HOME/.kshrc: source `which env_parallel.ksh`
E.g. by doing: echo 'source `which env_parallel.ksh`' >> $HOME/.kshrc E.g. by doing: echo 'source `which env_parallel.ksh`' >> $HOME/.kshrc
Supports: aliases, functions, variables, arrays Supports: variables, aliases, functions, arrays
mksh: Put this in $HOME/.mkshrc: source `which env_parallel.mksh` mksh: Put this in $HOME/.mkshrc: source `which env_parallel.mksh`
E.g. by doing: echo 'source `which env_parallel.mksh`' >> $HOME/.mkshrc E.g. by doing: echo 'source `which env_parallel.mksh`' >> $HOME/.mkshrc
Supports: aliases, functions, variables, arrays Supports: variables, aliases, functions, arrays
pdksh: Put this in $HOME/.profile: source `which env_parallel.pdksh` pdksh: Put this in $HOME/.profile: source `which env_parallel.pdksh`
E.g. by doing: echo '. `which env_parallel.pdksh`' >> $HOME/.profile E.g. by doing: echo '. `which env_parallel.pdksh`' >> $HOME/.profile
Supports: aliases, functions, variables, arrays Supports: variables, aliases, functions, arrays
zsh: Put this in $HOME/.zshrc: . `which env_parallel.zsh`
E.g. by doing: echo '. `which env_parallel.zsh`' >> $HOME/.zshenv
Supports: variables, functions, arrays
ash: Put this in $HOME/.profile: . `which env_parallel.ash` ash: Put this in $HOME/.profile: . `which env_parallel.ash`
E.g. by doing: echo '. `which env_parallel.ash`' >> $HOME/.profile E.g. by doing: echo '. `which env_parallel.ash`' >> $HOME/.profile
Supports: aliases, variables Supports: variables, aliases
dash: Put this in $HOME/.profile: . `which env_parallel.dash` dash: Put this in $HOME/.profile: . `which env_parallel.dash`
E.g. by doing: echo '. `which env_parallel.dash`' >> $HOME/.profile E.g. by doing: echo '. `which env_parallel.dash`' >> $HOME/.profile
Supports: aliases, variables Supports: variables, aliases
fish: Unsupported
csh: Unsupported csh: Unsupported

View file

@ -102,6 +102,18 @@ or Bash/Zsh/Ksh process substitution:
echo "${res[1]}" echo "${res[1]}"
echo "${res[99]}" echo "${res[99]}"
Put output into an associative array (Bash only):
input=("value A" "value B")
parset res echo This is ::: "${input[@]}"
# Zip the input and res arrays to a single associative array
declare -A myassoc
for ((i=0; $i<${#input[@]}; i++)); do
myassoc[${input[i]}]=${res[i]}
done
echo "${myassoc["value A"]}"
=head3 Installation =head3 Installation
Put this in the relevant B<$HOME/.bashrc> or B<$HOME/.zshenv> or B<$HOME/.kshrc>: Put this in the relevant B<$HOME/.bashrc> or B<$HOME/.zshenv> or B<$HOME/.kshrc>:

View file

@ -121,7 +121,7 @@ GetOptions(
"help" => \$opt::dummy, "help" => \$opt::dummy,
) || exit(255); ) || exit(255);
$Global::progname = ($0 =~ m:(^|/)([^/]+)$:)[1]; $Global::progname = ($0 =~ m:(^|/)([^/]+)$:)[1];
$Global::version = 20210522; $Global::version = 20210622;
if($opt::version) { version(); exit 0; } if($opt::version) { version(); exit 0; }
@Global::sortoptions = @Global::sortoptions =
shell_quote(@ARGV_before[0..($#ARGV_before-$#ARGV-1)]); shell_quote(@ARGV_before[0..($#ARGV_before-$#ARGV-1)]);

View file

@ -600,7 +600,7 @@ $Global::Initfile && unlink $Global::Initfile;
exit ($err); exit ($err);
sub parse_options { sub parse_options {
$Global::version = 20210522; $Global::version = 20210622;
$Global::progname = 'sql'; $Global::progname = 'sql';
# This must be done first as this may exec myself # This must be done first as this may exec myself

View file

@ -5,17 +5,18 @@
# SPDX-License-Identifier: GPL-3.0-or-later # SPDX-License-Identifier: GPL-3.0-or-later
unset TIMEOUT unset TIMEOUT
torsocks bash <<'EOF'
. `which env_parallel.bash` . `which env_parallel.bash`
env_parallel --session env_parallel --session
host=$(parallel -j0 --halt now,success=1 ssh {} echo {} ::: android1 android2 2>/dev/null) host=$(parallel -j0 --halt now,success=1 ssh {} echo {} ::: koditor huator fairtor 2>/dev/null)
if [ -z "$host" ] ; then if [ -z "$host" ] ; then
echo Error: no android host working echo Error: no android host working
else else
echo $host >&2 echo $host >&2
doit() { doit() {
export PARALLEL_SSH='ssh -p2222' export PARALLEL_SSH='ssh -p2222 -o "StrictHostKeyChecking no"'
parallel -k echo ::: Basic usage works parallel -k echo ::: Basic usage works
parallel -k -S localhost echo ::: Remote usage works parallel -k -S localhost echo ::: Remote usage works
} }
@ -23,3 +24,4 @@ else
scp /usr/local/bin/parallel $host:/data/data/com.termux/files/usr/bin scp /usr/local/bin/parallel $host:/data/data/com.termux/files/usr/bin
env_parallel -S $host doit ::: a env_parallel -S $host doit ::: a
fi fi
EOF

View file

@ -729,36 +729,36 @@ Unknown option: green
env_parallel only works if it is a function. Do the below and restart your shell. env_parallel only works if it is a function. Do the below and restart your shell.
bash: Put this in $HOME/.bashrc: . `which env_parallel.bash` bash: Put this in $HOME/.bashrc: . `which env_parallel.bash`
E.g. by doing: echo '. `which env_parallel.bash`' >> $HOME/.bashrc E.g. by doing: echo '. `which env_parallel.bash`' >> $HOME/.bashrc
Supports: aliases, functions, variables, arrays Supports: variables, aliases, functions, arrays
zsh: Put this in $HOME/.zshrc: . `which env_parallel.zsh`
E.g. by doing: echo '. `which env_parallel.zsh`' >> $HOME/.zshenv
Supports: functions, variables, arrays
fish: Put this in $HOME/.config/fish/config.fish: fish: Put this in $HOME/.config/fish/config.fish:
. (which env_parallel.fish) . (which env_parallel.fish)
E.g. by doing: E.g. by doing:
echo '. (which env_parallel.fish)' >> $HOME/.config/fish/config.fish echo '. (which env_parallel.fish)' >> $HOME/.config/fish/config.fish
Supports: aliases, functions, variables, arrays Supports: variables, aliases, functions, arrays
ksh: Put this in $HOME/.kshrc: source `which env_parallel.ksh` ksh: Put this in $HOME/.kshrc: source `which env_parallel.ksh`
E.g. by doing: echo 'source `which env_parallel.ksh`' >> $HOME/.kshrc E.g. by doing: echo 'source `which env_parallel.ksh`' >> $HOME/.kshrc
Supports: aliases, functions, variables, arrays Supports: variables, aliases, functions, arrays
mksh: Put this in $HOME/.mkshrc: source `which env_parallel.mksh` mksh: Put this in $HOME/.mkshrc: source `which env_parallel.mksh`
E.g. by doing: echo 'source `which env_parallel.mksh`' >> $HOME/.mkshrc E.g. by doing: echo 'source `which env_parallel.mksh`' >> $HOME/.mkshrc
Supports: aliases, functions, variables, arrays Supports: variables, aliases, functions, arrays
pdksh: Put this in $HOME/.profile: source `which env_parallel.pdksh` pdksh: Put this in $HOME/.profile: source `which env_parallel.pdksh`
E.g. by doing: echo '. `which env_parallel.pdksh`' >> $HOME/.profile E.g. by doing: echo '. `which env_parallel.pdksh`' >> $HOME/.profile
Supports: aliases, functions, variables, arrays Supports: variables, aliases, functions, arrays
zsh: Put this in $HOME/.zshrc: . `which env_parallel.zsh`
E.g. by doing: echo '. `which env_parallel.zsh`' >> $HOME/.zshenv
Supports: variables, functions, arrays
ash: Put this in $HOME/.profile: . `which env_parallel.ash` ash: Put this in $HOME/.profile: . `which env_parallel.ash`
E.g. by doing: echo '. `which env_parallel.ash`' >> $HOME/.profile E.g. by doing: echo '. `which env_parallel.ash`' >> $HOME/.profile
Supports: aliases, variables Supports: variables, aliases
dash: Put this in $HOME/.profile: . `which env_parallel.dash` dash: Put this in $HOME/.profile: . `which env_parallel.dash`
E.g. by doing: echo '. `which env_parallel.dash`' >> $HOME/.profile E.g. by doing: echo '. `which env_parallel.dash`' >> $HOME/.profile
Supports: aliases, variables Supports: variables, aliases
csh: Put this in $HOME/.cshrc: source `which env_parallel.csh` csh: Put this in $HOME/.cshrc: source `which env_parallel.csh`
E.g. by doing: echo 'source `which env_parallel.csh`' >> $HOME/.cshrc E.g. by doing: echo 'source `which env_parallel.csh`' >> $HOME/.cshrc
Supports: aliases, variables, arrays with no special chars Supports: variables, aliases, arrays with no special chars
tcsh: Put this in $HOME/.tcshrc: source `which env_parallel.tcsh` tcsh: Put this in $HOME/.tcshrc: source `which env_parallel.tcsh`
E.g. by doing: echo 'source `which env_parallel.tcsh`' >> $HOME/.tcshrc E.g. by doing: echo 'source `which env_parallel.tcsh`' >> $HOME/.tcshrc
Supports: aliases, variables, arrays with no special chars Supports: variables, aliases, arrays with no special chars
To install in all shells run: To install in all shells run:
env_parallel --install env_parallel --install
For details: see man env_parallel For details: see man env_parallel
@ -803,36 +803,36 @@ Unknown option: bar
env_parallel only works if it is a function. Do the below and restart your shell. env_parallel only works if it is a function. Do the below and restart your shell.
bash: Put this in $HOME/.bashrc: . `which env_parallel.bash` bash: Put this in $HOME/.bashrc: . `which env_parallel.bash`
E.g. by doing: echo '. `which env_parallel.bash`' >> $HOME/.bashrc E.g. by doing: echo '. `which env_parallel.bash`' >> $HOME/.bashrc
Supports: aliases, functions, variables, arrays Supports: variables, aliases, functions, arrays
zsh: Put this in $HOME/.zshrc: . `which env_parallel.zsh`
E.g. by doing: echo '. `which env_parallel.zsh`' >> $HOME/.zshenv
Supports: functions, variables, arrays
fish: Put this in $HOME/.config/fish/config.fish: fish: Put this in $HOME/.config/fish/config.fish:
. (which env_parallel.fish) . (which env_parallel.fish)
E.g. by doing: E.g. by doing:
echo '. (which env_parallel.fish)' >> $HOME/.config/fish/config.fish echo '. (which env_parallel.fish)' >> $HOME/.config/fish/config.fish
Supports: aliases, functions, variables, arrays Supports: variables, aliases, functions, arrays
ksh: Put this in $HOME/.kshrc: source `which env_parallel.ksh` ksh: Put this in $HOME/.kshrc: source `which env_parallel.ksh`
E.g. by doing: echo 'source `which env_parallel.ksh`' >> $HOME/.kshrc E.g. by doing: echo 'source `which env_parallel.ksh`' >> $HOME/.kshrc
Supports: aliases, functions, variables, arrays Supports: variables, aliases, functions, arrays
mksh: Put this in $HOME/.mkshrc: source `which env_parallel.mksh` mksh: Put this in $HOME/.mkshrc: source `which env_parallel.mksh`
E.g. by doing: echo 'source `which env_parallel.mksh`' >> $HOME/.mkshrc E.g. by doing: echo 'source `which env_parallel.mksh`' >> $HOME/.mkshrc
Supports: aliases, functions, variables, arrays Supports: variables, aliases, functions, arrays
pdksh: Put this in $HOME/.profile: source `which env_parallel.pdksh` pdksh: Put this in $HOME/.profile: source `which env_parallel.pdksh`
E.g. by doing: echo '. `which env_parallel.pdksh`' >> $HOME/.profile E.g. by doing: echo '. `which env_parallel.pdksh`' >> $HOME/.profile
Supports: aliases, functions, variables, arrays Supports: variables, aliases, functions, arrays
zsh: Put this in $HOME/.zshrc: . `which env_parallel.zsh`
E.g. by doing: echo '. `which env_parallel.zsh`' >> $HOME/.zshenv
Supports: variables, functions, arrays
ash: Put this in $HOME/.profile: . `which env_parallel.ash` ash: Put this in $HOME/.profile: . `which env_parallel.ash`
E.g. by doing: echo '. `which env_parallel.ash`' >> $HOME/.profile E.g. by doing: echo '. `which env_parallel.ash`' >> $HOME/.profile
Supports: aliases, variables Supports: variables, aliases
dash: Put this in $HOME/.profile: . `which env_parallel.dash` dash: Put this in $HOME/.profile: . `which env_parallel.dash`
E.g. by doing: echo '. `which env_parallel.dash`' >> $HOME/.profile E.g. by doing: echo '. `which env_parallel.dash`' >> $HOME/.profile
Supports: aliases, variables Supports: variables, aliases
csh: Put this in $HOME/.cshrc: source `which env_parallel.csh` csh: Put this in $HOME/.cshrc: source `which env_parallel.csh`
E.g. by doing: echo 'source `which env_parallel.csh`' >> $HOME/.cshrc E.g. by doing: echo 'source `which env_parallel.csh`' >> $HOME/.cshrc
Supports: aliases, variables, arrays with no special chars Supports: variables, aliases, arrays with no special chars
tcsh: Put this in $HOME/.tcshrc: source `which env_parallel.tcsh` tcsh: Put this in $HOME/.tcshrc: source `which env_parallel.tcsh`
E.g. by doing: echo 'source `which env_parallel.tcsh`' >> $HOME/.tcshrc E.g. by doing: echo 'source `which env_parallel.tcsh`' >> $HOME/.tcshrc
Supports: aliases, variables, arrays with no special chars Supports: variables, aliases, arrays with no special chars
To install in all shells run: To install in all shells run:
env_parallel --install env_parallel --install
For details: see man env_parallel For details: see man env_parallel
@ -859,26 +859,26 @@ of env_parallel.
Do the below and restart your shell. Do the below and restart your shell.
bash: Put this in $HOME/.bashrc: . `which env_parallel.bash` bash: Put this in $HOME/.bashrc: . `which env_parallel.bash`
E.g. by doing: echo '. `which env_parallel.bash`' >> $HOME/.bashrc E.g. by doing: echo '. `which env_parallel.bash`' >> $HOME/.bashrc
Supports: aliases, functions, variables, arrays Supports: variables, aliases, functions, arrays
zsh: Put this in $HOME/.zshrc: . `which env_parallel.zsh`
E.g. by doing: echo '. `which env_parallel.zsh`' >> $HOME/.zshenv
Supports: functions, variables, arrays
fish: Unsupported
ksh: Put this in $HOME/.kshrc: source `which env_parallel.ksh` ksh: Put this in $HOME/.kshrc: source `which env_parallel.ksh`
E.g. by doing: echo 'source `which env_parallel.ksh`' >> $HOME/.kshrc E.g. by doing: echo 'source `which env_parallel.ksh`' >> $HOME/.kshrc
Supports: aliases, functions, variables, arrays Supports: variables, aliases, functions, arrays
mksh: Put this in $HOME/.mkshrc: source `which env_parallel.mksh` mksh: Put this in $HOME/.mkshrc: source `which env_parallel.mksh`
E.g. by doing: echo 'source `which env_parallel.mksh`' >> $HOME/.mkshrc E.g. by doing: echo 'source `which env_parallel.mksh`' >> $HOME/.mkshrc
Supports: aliases, functions, variables, arrays Supports: variables, aliases, functions, arrays
pdksh: Put this in $HOME/.profile: source `which env_parallel.pdksh` pdksh: Put this in $HOME/.profile: source `which env_parallel.pdksh`
E.g. by doing: echo '. `which env_parallel.pdksh`' >> $HOME/.profile E.g. by doing: echo '. `which env_parallel.pdksh`' >> $HOME/.profile
Supports: aliases, functions, variables, arrays Supports: variables, aliases, functions, arrays
zsh: Put this in $HOME/.zshrc: . `which env_parallel.zsh`
E.g. by doing: echo '. `which env_parallel.zsh`' >> $HOME/.zshenv
Supports: variables, functions, arrays
ash: Put this in $HOME/.profile: . `which env_parallel.ash` ash: Put this in $HOME/.profile: . `which env_parallel.ash`
E.g. by doing: echo '. `which env_parallel.ash`' >> $HOME/.profile E.g. by doing: echo '. `which env_parallel.ash`' >> $HOME/.profile
Supports: aliases, variables Supports: variables, aliases
dash: Put this in $HOME/.profile: . `which env_parallel.dash` dash: Put this in $HOME/.profile: . `which env_parallel.dash`
E.g. by doing: echo '. `which env_parallel.dash`' >> $HOME/.profile E.g. by doing: echo '. `which env_parallel.dash`' >> $HOME/.profile
Supports: aliases, variables Supports: variables, aliases
fish: Unsupported
csh: Unsupported csh: Unsupported
tcsh: Unsupported tcsh: Unsupported
To install in all shells run: To install in all shells run:
@ -899,26 +899,26 @@ of env_parallel.
Do the below and restart your shell. Do the below and restart your shell.
bash: Put this in $HOME/.bashrc: . `which env_parallel.bash` bash: Put this in $HOME/.bashrc: . `which env_parallel.bash`
E.g. by doing: echo '. `which env_parallel.bash`' >> $HOME/.bashrc E.g. by doing: echo '. `which env_parallel.bash`' >> $HOME/.bashrc
Supports: aliases, functions, variables, arrays Supports: variables, aliases, functions, arrays
zsh: Put this in $HOME/.zshrc: . `which env_parallel.zsh`
E.g. by doing: echo '. `which env_parallel.zsh`' >> $HOME/.zshenv
Supports: functions, variables, arrays
fish: Unsupported
ksh: Put this in $HOME/.kshrc: source `which env_parallel.ksh` ksh: Put this in $HOME/.kshrc: source `which env_parallel.ksh`
E.g. by doing: echo 'source `which env_parallel.ksh`' >> $HOME/.kshrc E.g. by doing: echo 'source `which env_parallel.ksh`' >> $HOME/.kshrc
Supports: aliases, functions, variables, arrays Supports: variables, aliases, functions, arrays
mksh: Put this in $HOME/.mkshrc: source `which env_parallel.mksh` mksh: Put this in $HOME/.mkshrc: source `which env_parallel.mksh`
E.g. by doing: echo 'source `which env_parallel.mksh`' >> $HOME/.mkshrc E.g. by doing: echo 'source `which env_parallel.mksh`' >> $HOME/.mkshrc
Supports: aliases, functions, variables, arrays Supports: variables, aliases, functions, arrays
pdksh: Put this in $HOME/.profile: source `which env_parallel.pdksh` pdksh: Put this in $HOME/.profile: source `which env_parallel.pdksh`
E.g. by doing: echo '. `which env_parallel.pdksh`' >> $HOME/.profile E.g. by doing: echo '. `which env_parallel.pdksh`' >> $HOME/.profile
Supports: aliases, functions, variables, arrays Supports: variables, aliases, functions, arrays
zsh: Put this in $HOME/.zshrc: . `which env_parallel.zsh`
E.g. by doing: echo '. `which env_parallel.zsh`' >> $HOME/.zshenv
Supports: variables, functions, arrays
ash: Put this in $HOME/.profile: . `which env_parallel.ash` ash: Put this in $HOME/.profile: . `which env_parallel.ash`
E.g. by doing: echo '. `which env_parallel.ash`' >> $HOME/.profile E.g. by doing: echo '. `which env_parallel.ash`' >> $HOME/.profile
Supports: aliases, variables Supports: variables, aliases
dash: Put this in $HOME/.profile: . `which env_parallel.dash` dash: Put this in $HOME/.profile: . `which env_parallel.dash`
E.g. by doing: echo '. `which env_parallel.dash`' >> $HOME/.profile E.g. by doing: echo '. `which env_parallel.dash`' >> $HOME/.profile
Supports: aliases, variables Supports: variables, aliases
fish: Unsupported
csh: Unsupported csh: Unsupported
tcsh: Unsupported tcsh: Unsupported
To install in all shells run: To install in all shells run:
@ -937,26 +937,26 @@ of env_parallel.
Do the below and restart your shell. Do the below and restart your shell.
bash: Put this in $HOME/.bashrc: . `which env_parallel.bash` bash: Put this in $HOME/.bashrc: . `which env_parallel.bash`
E.g. by doing: echo '. `which env_parallel.bash`' >> $HOME/.bashrc E.g. by doing: echo '. `which env_parallel.bash`' >> $HOME/.bashrc
Supports: aliases, functions, variables, arrays Supports: variables, aliases, functions, arrays
zsh: Put this in $HOME/.zshrc: . `which env_parallel.zsh`
E.g. by doing: echo '. `which env_parallel.zsh`' >> $HOME/.zshenv
Supports: functions, variables, arrays
fish: Unsupported
ksh: Put this in $HOME/.kshrc: source `which env_parallel.ksh` ksh: Put this in $HOME/.kshrc: source `which env_parallel.ksh`
E.g. by doing: echo 'source `which env_parallel.ksh`' >> $HOME/.kshrc E.g. by doing: echo 'source `which env_parallel.ksh`' >> $HOME/.kshrc
Supports: aliases, functions, variables, arrays Supports: variables, aliases, functions, arrays
mksh: Put this in $HOME/.mkshrc: source `which env_parallel.mksh` mksh: Put this in $HOME/.mkshrc: source `which env_parallel.mksh`
E.g. by doing: echo 'source `which env_parallel.mksh`' >> $HOME/.mkshrc E.g. by doing: echo 'source `which env_parallel.mksh`' >> $HOME/.mkshrc
Supports: aliases, functions, variables, arrays Supports: variables, aliases, functions, arrays
pdksh: Put this in $HOME/.profile: source `which env_parallel.pdksh` pdksh: Put this in $HOME/.profile: source `which env_parallel.pdksh`
E.g. by doing: echo '. `which env_parallel.pdksh`' >> $HOME/.profile E.g. by doing: echo '. `which env_parallel.pdksh`' >> $HOME/.profile
Supports: aliases, functions, variables, arrays Supports: variables, aliases, functions, arrays
zsh: Put this in $HOME/.zshrc: . `which env_parallel.zsh`
E.g. by doing: echo '. `which env_parallel.zsh`' >> $HOME/.zshenv
Supports: variables, functions, arrays
ash: Put this in $HOME/.profile: . `which env_parallel.ash` ash: Put this in $HOME/.profile: . `which env_parallel.ash`
E.g. by doing: echo '. `which env_parallel.ash`' >> $HOME/.profile E.g. by doing: echo '. `which env_parallel.ash`' >> $HOME/.profile
Supports: aliases, variables Supports: variables, aliases
dash: Put this in $HOME/.profile: . `which env_parallel.dash` dash: Put this in $HOME/.profile: . `which env_parallel.dash`
E.g. by doing: echo '. `which env_parallel.dash`' >> $HOME/.profile E.g. by doing: echo '. `which env_parallel.dash`' >> $HOME/.profile
Supports: aliases, variables Supports: variables, aliases
fish: Unsupported
csh: Unsupported csh: Unsupported
tcsh: Unsupported tcsh: Unsupported
To install in all shells run: To install in all shells run: