mirror of
https://git.savannah.gnu.org/git/parallel.git
synced 2024-11-25 23:47:53 +00:00
parallel: Check if PARALLEL_SHELL is in path.
env_parallel compatible with more unices.
This commit is contained in:
parent
b843ec7398
commit
da545d53ff
|
@ -199,9 +199,9 @@ 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 20171122 ('Mugabe') released <<[stable]>>
|
Subject: GNU Parallel 20171222 ('Jerusalem/Agung/Bir al-Abed') released <<[stable]>>
|
||||||
|
|
||||||
GNU Parallel 20171122 ('Mugabe') <<[stable]>> has been released. It is available for download at: http://ftpmirror.gnu.org/parallel/
|
GNU Parallel 20171222 ('Jerusalem/Agung/Bir al-Abed') <<[stable]>> has been released. It is available for download at: http://ftpmirror.gnu.org/parallel/
|
||||||
|
|
||||||
<<No new functionality was introduced so this is a good candidate for a stable release.>>
|
<<No new functionality was introduced so this is a good candidate for a stable release.>>
|
||||||
|
|
||||||
|
@ -211,8 +211,14 @@ Haiku of the month:
|
||||||
New in this release:
|
New in this release:
|
||||||
|
|
||||||
parset for ksh, zsh,
|
parset for ksh, zsh,
|
||||||
|
auto hostgroups with arg@sshlogin
|
||||||
|
https://support.ehelp.edu.au/support/solutions/articles/6000089713-tips-for-running-jobs-on-your-vm#parallel
|
||||||
|
https://mogonwiki.zdv.uni-mainz.de/dokuwiki/node_local_scheduling
|
||||||
https://docs.computecanada.ca/wiki/GNU_Parallel
|
https://docs.computecanada.ca/wiki/GNU_Parallel
|
||||||
https://qiita.com/inouet/items/bfc208668c86caf8ff74
|
https://qiita.com/inouet/items/bfc208668c86caf8ff74
|
||||||
|
https://wiki.ncsa.illinois.edu/display/ROGER/Using+GNU+Parallel
|
||||||
|
https://github.com/LangilleLab/microbiome_helper/wiki/Quick-Introduction-to-GNU-Parallel
|
||||||
|
https://docs.computecanada.ca/wiki/GNU_Parallel
|
||||||
|
|
||||||
|
|
||||||
<<Citation not OK: BAMClipper: removing primers from alignments to minimize false-negative mutations in amplicon next-generation sequencing https://www.nature.com/articles/s41598-017-01703-6>>
|
<<Citation not OK: BAMClipper: removing primers from alignments to minimize false-negative mutations in amplicon next-generation sequencing https://www.nature.com/articles/s41598-017-01703-6>>
|
||||||
|
|
|
@ -274,7 +274,7 @@ _parset_main() {
|
||||||
# => $1 is the name of the array to put data into
|
# => $1 is the name of the array to put data into
|
||||||
# Supported in: bash
|
# Supported in: bash
|
||||||
# Arrays do not work in: ash dash
|
# Arrays do not work in: ash dash
|
||||||
eval $_parset_name="( $( $_parset_parallel_prg --files -k "$@" |
|
eval "$_parset_name=( $( $_parset_parallel_prg --files -k "$@" |
|
||||||
perl -pe 'chop;$_="\"\`cat $_; rm $_\`\" "' ) )"
|
perl -pe 'chop;$_="\"\`cat $_; rm $_\`\" "' ) )"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
|
@ -58,10 +58,17 @@ env_parallel() {
|
||||||
}
|
}
|
||||||
_remove_bad_NAMES() {
|
_remove_bad_NAMES() {
|
||||||
# Do not transfer vars and funcs from env_parallel
|
# Do not transfer vars and funcs from env_parallel
|
||||||
# MacOS-grep does not like long patterns
|
_remove_readonly() {
|
||||||
|
_list_readonly() {
|
||||||
|
readonly | perl -pe 's/^\S+\s+\S+\s+(\S[^=]*)=.*/$1/'
|
||||||
|
}
|
||||||
|
perl -e '$r=join("|",@ARGV); while(<STDIN>) {/$r/o or print}' `_list_readonly`
|
||||||
|
}
|
||||||
|
# Macos-grep does not like long patterns
|
||||||
# Old Solaris grep does not support -E
|
# Old Solaris grep does not support -E
|
||||||
|
# so 'grep' is converted to 'perl'
|
||||||
|
|
||||||
# Perl version of:
|
# Perl Version of:
|
||||||
# grep -Ev '^(_names_of_ALIASES|_bodies_of_ALIASES|_names_of_maybe_FUNCTIONS|_names_of_FUNCTIONS|_bodies_of_FUNCTIONS|_names_of_VARIABLES|_bodies_of_VARIABLES|_remove_bad_NAMES|_prefix_PARALLEL_ENV)$' |
|
# grep -Ev '^(_names_of_ALIASES|_bodies_of_ALIASES|_names_of_maybe_FUNCTIONS|_names_of_FUNCTIONS|_bodies_of_FUNCTIONS|_names_of_VARIABLES|_bodies_of_VARIABLES|_remove_bad_NAMES|_prefix_PARALLEL_ENV)$' |
|
||||||
# grep -Ev '^(_get_ignored_VARS|_make_grep_REGEXP|_ignore_UNDERSCORE|_alias_NAMES|_list_alias_BODIES|_function_NAMES|_list_function_BODIES|_variable_NAMES|_list_variable_VALUES|_prefix_PARALLEL_ENV|PARALLEL_TMP)$' |
|
# grep -Ev '^(_get_ignored_VARS|_make_grep_REGEXP|_ignore_UNDERSCORE|_alias_NAMES|_list_alias_BODIES|_function_NAMES|_list_function_BODIES|_variable_NAMES|_list_variable_VALUES|_prefix_PARALLEL_ENV|PARALLEL_TMP)$' |
|
||||||
perl -ne '/^(_names_of_ALIASES|
|
perl -ne '/^(_names_of_ALIASES|
|
||||||
|
@ -72,6 +79,7 @@ env_parallel() {
|
||||||
_names_of_VARIABLES|
|
_names_of_VARIABLES|
|
||||||
_bodies_of_VARIABLES|
|
_bodies_of_VARIABLES|
|
||||||
_remove_bad_NAMES|
|
_remove_bad_NAMES|
|
||||||
|
_remove_readonly|
|
||||||
_prefix_PARALLEL_ENV|
|
_prefix_PARALLEL_ENV|
|
||||||
_get_ignored_VARS|
|
_get_ignored_VARS|
|
||||||
_make_grep_REGEXP|
|
_make_grep_REGEXP|
|
||||||
|
@ -87,7 +95,7 @@ env_parallel() {
|
||||||
# Filter names matching --env
|
# Filter names matching --env
|
||||||
# perl version of: grep -E "^$_grep_REGEXP"\$ | grep -vE "^"\$ |
|
# perl version of: grep -E "^$_grep_REGEXP"\$ | grep -vE "^"\$ |
|
||||||
perl -ne "/^$_grep_REGEXP"'$/ and not /^'"$_ignore_UNDERSCORE"'$/ and print' |
|
perl -ne "/^$_grep_REGEXP"'$/ and not /^'"$_ignore_UNDERSCORE"'$/ and print' |
|
||||||
grep -vFf <(readonly) |
|
_remove_readonly |
|
||||||
# perl version of: grep -Ev '^(BASHOPTS|BASHPID|EUID|GROUPS|FUNCNAME|DIRSTACK|_|PIPESTATUS|PPID|SHELLOPTS|UID|USERNAME|BASH_[A-Z_]+)$'
|
# perl version of: grep -Ev '^(BASHOPTS|BASHPID|EUID|GROUPS|FUNCNAME|DIRSTACK|_|PIPESTATUS|PPID|SHELLOPTS|UID|USERNAME|BASH_[A-Z_]+)$'
|
||||||
perl -ne 'not /^(BASHOPTS|BASHPID|EUID|GROUPS|FUNCNAME|DIRSTACK|_|PIPESTATUS|PPID|SHELLOPTS|UID|USERNAME|BASH_[A-Z_]+)$/ and print'
|
perl -ne 'not /^(BASHOPTS|BASHPID|EUID|GROUPS|FUNCNAME|DIRSTACK|_|PIPESTATUS|PPID|SHELLOPTS|UID|USERNAME|BASH_[A-Z_]+)$/ and print'
|
||||||
}
|
}
|
||||||
|
@ -133,13 +141,28 @@ env_parallel() {
|
||||||
print $vars ? "($vars)" : "(.*)";
|
print $vars ? "($vars)" : "(.*)";
|
||||||
' -- "$@"
|
' -- "$@"
|
||||||
}
|
}
|
||||||
|
_which() {
|
||||||
|
# type returns:
|
||||||
|
# bash is a tracked alias for /bin/bash
|
||||||
|
# true is a shell builtin
|
||||||
|
# which is /usr/bin/which
|
||||||
|
# which is hashed (/usr/bin/which)
|
||||||
|
# aliased to `alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
|
||||||
|
# Return 0 if found, 1 otherwise
|
||||||
|
type "$@" |
|
||||||
|
perl -pe '$exit += (s/ is aliased to .*// ||
|
||||||
|
s/ is a shell builtin// ||
|
||||||
|
s/.* is hashed .(\S+).$/$1/ ||
|
||||||
|
s/.* is (a tracked alias for )?//);
|
||||||
|
END { exit not $exit }'
|
||||||
|
}
|
||||||
_warning() {
|
_warning() {
|
||||||
echo "env_parallel: Warning: $@" >&2
|
echo "env_parallel: Warning: $@" >&2
|
||||||
}
|
}
|
||||||
|
|
||||||
# Bash is broken in version 3.2.25 and 4.2.39
|
# Bash is broken in version 3.2.25 and 4.2.39
|
||||||
# The crazy '[ "`...`" == "" ]' is needed for the same reason
|
# The crazy '[ "`...`" == "" ]' is needed for the same reason
|
||||||
if [ "`which parallel`" == "" ]; then
|
if [ "`_which parallel`" == "" ]; then
|
||||||
echo 'env_parallel: Error: parallel must be in $PATH.' >&2
|
echo 'env_parallel: Error: parallel must be in $PATH.' >&2
|
||||||
return 255
|
return 255
|
||||||
fi
|
fi
|
||||||
|
@ -190,7 +213,7 @@ env_parallel() {
|
||||||
fi
|
fi
|
||||||
unset _variable_NAMES
|
unset _variable_NAMES
|
||||||
|
|
||||||
_which_true="`which true`"
|
_which_true="`_which true`"
|
||||||
# Copy shopt (so e.g. extended globbing works)
|
# Copy shopt (so e.g. extended globbing works)
|
||||||
# But force expand_aliases as aliases otherwise do not work
|
# But force expand_aliases as aliases otherwise do not work
|
||||||
PARALLEL_ENV="`
|
PARALLEL_ENV="`
|
||||||
|
@ -206,8 +229,8 @@ env_parallel() {
|
||||||
unset _grep_REGEXP
|
unset _grep_REGEXP
|
||||||
unset _ignore_UNDERSCORE
|
unset _ignore_UNDERSCORE
|
||||||
# Test if environment is too big
|
# Test if environment is too big
|
||||||
if [ "`which true`" == "$_which_true" ] ; then
|
if [ "`_which true`" == "$_which_true" ] ; then
|
||||||
`which parallel` "$@";
|
`_which parallel` "$@";
|
||||||
_parallel_exit_CODE=$?
|
_parallel_exit_CODE=$?
|
||||||
unset PARALLEL_ENV;
|
unset PARALLEL_ENV;
|
||||||
return $_parallel_exit_CODE
|
return $_parallel_exit_CODE
|
||||||
|
@ -287,9 +310,9 @@ _parset_main() {
|
||||||
else
|
else
|
||||||
# $_parset_name does not contain , or space
|
# $_parset_name does not contain , or space
|
||||||
# => $_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
|
# Supported in: bash zsh ksh
|
||||||
# Arrays do not work in: ash dash
|
# Arrays do not work in: ash dash
|
||||||
eval $_parset_name="( $( $_parset_parallel_prg --files -k "$@" |
|
eval "$_parset_name=( $( $_parset_parallel_prg --files -k "$@" |
|
||||||
perl -pe 'chop;$_="\"\`cat $_; rm $_\`\" "' ) )"
|
perl -pe 'chop;$_="\"\`cat $_; rm $_\`\" "' ) )"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
|
@ -274,7 +274,7 @@ _parset_main() {
|
||||||
# => $1 is the name of the array to put data into
|
# => $1 is the name of the array to put data into
|
||||||
# Supported in: bash
|
# Supported in: bash
|
||||||
# Arrays do not work in: ash dash
|
# Arrays do not work in: ash dash
|
||||||
eval $_parset_name="( $( $_parset_parallel_prg --files -k "$@" |
|
eval "$_parset_name=( $( $_parset_parallel_prg --files -k "$@" |
|
||||||
perl -pe 'chop;$_="\"\`cat $_; rm $_\`\" "' ) )"
|
perl -pe 'chop;$_="\"\`cat $_; rm $_\`\" "' ) )"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
|
@ -252,7 +252,7 @@ _parset_main() {
|
||||||
# => $1 is the name of the array to put data into
|
# => $1 is the name of the array to put data into
|
||||||
# Supported in: bash
|
# Supported in: bash
|
||||||
# Arrays do not work in: ash dash
|
# Arrays do not work in: ash dash
|
||||||
eval $_parset_name="( $( $_parset_parallel_prg --files -k "$@" |
|
eval "$_parset_name=( $( $_parset_parallel_prg --files -k "$@" |
|
||||||
perl -pe 'chop;$_="\"\`cat $_; rm $_\`\" "' ) )"
|
perl -pe 'chop;$_="\"\`cat $_; rm $_\`\" "' ) )"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
|
@ -264,8 +264,8 @@ _parset_main() {
|
||||||
}
|
}
|
||||||
exit $exitval;
|
exit $exitval;
|
||||||
' || return 255
|
' || return 255
|
||||||
if echo "$_parset_name" | grep -E ',| ' >/dev/null ; then
|
if perl -e 'exit not grep /,| /, @ARGV' "$_parset_name" ; then
|
||||||
# $1 contains , or space
|
# $_parset_name contains , or space
|
||||||
# Split on , or space to get the names
|
# Split on , or space to get the names
|
||||||
eval "$(
|
eval "$(
|
||||||
# Compute results into files
|
# Compute results into files
|
||||||
|
@ -278,11 +278,11 @@ _parset_main() {
|
||||||
)
|
)
|
||||||
)"
|
)"
|
||||||
else
|
else
|
||||||
# $1 contains no space or ,
|
# $_parset_name does not contain , or space
|
||||||
# => $1 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
|
# Supported in: bash zsh ksh
|
||||||
# Arrays do not work in: ash dash
|
# Arrays do not work in: ash dash
|
||||||
eval $_parset_name="( $( $_parset_parallel_prg --files -k "$@" |
|
eval "$_parset_name=( $( $_parset_parallel_prg --files -k "$@" |
|
||||||
perl -pe 'chop;$_="\"\`cat $_; rm $_\`\" "' ) )"
|
perl -pe 'chop;$_="\"\`cat $_; rm $_\`\" "' ) )"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
|
@ -245,7 +245,7 @@ _parset_main() {
|
||||||
# => $1 is the name of the array to put data into
|
# => $1 is the name of the array to put data into
|
||||||
# Supported in: bash
|
# Supported in: bash
|
||||||
# Arrays do not work in: ash dash
|
# Arrays do not work in: ash dash
|
||||||
eval $_parset_name="( $( $_parset_parallel_prg --files -k "$@" |
|
eval "$_parset_name=( $( $_parset_parallel_prg --files -k "$@" |
|
||||||
perl -pe 'chop;$_="\"\`cat $_; rm $_\`\" "' ) )"
|
perl -pe 'chop;$_="\"\`cat $_; rm $_\`\" "' ) )"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
10
src/parallel
10
src/parallel
|
@ -1110,6 +1110,10 @@ sub parse_options {
|
||||||
$Global::debug = $opt::D;
|
$Global::debug = $opt::D;
|
||||||
$Global::shell = $ENV{'PARALLEL_SHELL'} || parent_shell($$)
|
$Global::shell = $ENV{'PARALLEL_SHELL'} || parent_shell($$)
|
||||||
|| $ENV{'SHELL'} || "/bin/sh";
|
|| $ENV{'SHELL'} || "/bin/sh";
|
||||||
|
if(not which($Global::shell)) {
|
||||||
|
::error("Shell '$Global::shell' not found.");
|
||||||
|
wait_and_exit(255);
|
||||||
|
}
|
||||||
$Global::cshell = $Global::shell =~ m:/csh:;
|
$Global::cshell = $Global::shell =~ m:/csh:;
|
||||||
if(defined $opt::X) { $Global::ContextReplace = 1; }
|
if(defined $opt::X) { $Global::ContextReplace = 1; }
|
||||||
if(defined $opt::silent) { $Global::verbose = 0; }
|
if(defined $opt::silent) { $Global::verbose = 0; }
|
||||||
|
@ -4525,10 +4529,14 @@ sub which {
|
||||||
# Returns:
|
# Returns:
|
||||||
# @full_path = full paths to @programs. Nothing if not found
|
# @full_path = full paths to @programs. Nothing if not found
|
||||||
my @which;
|
my @which;
|
||||||
::debug("which", "@_ in $ENV{'PATH'}");
|
::debug("which", "@_ in $ENV{'PATH'}\n");
|
||||||
for my $prg (@_) {
|
for my $prg (@_) {
|
||||||
push(@which, grep { not -d $_ and -x $_ }
|
push(@which, grep { not -d $_ and -x $_ }
|
||||||
map { $_."/".$prg } split(":",$ENV{'PATH'}));
|
map { $_."/".$prg } split(":",$ENV{'PATH'}));
|
||||||
|
if($prg =~ m:/:) {
|
||||||
|
# Including path
|
||||||
|
push(@which, grep { not -d $_ and -x $_ } $prg);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return @which;
|
return @which;
|
||||||
}
|
}
|
||||||
|
|
|
@ -104,8 +104,8 @@ splits on \n (newline) and passes a block of around 1 MB to each job.
|
||||||
You have now learned the basic use of GNU B<parallel>. This will
|
You have now learned the basic use of GNU B<parallel>. This will
|
||||||
probably cover most cases of your use of GNU B<parallel>.
|
probably cover most cases of your use of GNU B<parallel>.
|
||||||
|
|
||||||
The rest of this document is simply to go into more details on each of
|
The rest of this document will go into more details on each of the
|
||||||
the sections and cover special use cases.
|
sections and cover special use cases.
|
||||||
|
|
||||||
|
|
||||||
=head1 Learn GNU Parallel in an hour
|
=head1 Learn GNU Parallel in an hour
|
||||||
|
@ -129,7 +129,7 @@ after B<-a> or B<::::>. So these all do the same:
|
||||||
parallel -a seq6 -a seq-6 echo Dice1={1} Dice2={2}
|
parallel -a seq6 -a seq-6 echo Dice1={1} Dice2={2}
|
||||||
parallel -a seq6 echo Dice1={1} Dice2={2} :::: seq-6
|
parallel -a seq6 echo Dice1={1} Dice2={2} :::: seq-6
|
||||||
parallel echo Dice1={1} Dice2={2} ::: 1 2 3 4 5 6 :::: seq-6
|
parallel echo Dice1={1} Dice2={2} ::: 1 2 3 4 5 6 :::: seq-6
|
||||||
cat seq-6 | parallel echo Dice1={1} Dice2={2} :::: seq-6 -
|
cat seq-6 | parallel echo Dice1={1} Dice2={2} :::: seq6 -
|
||||||
|
|
||||||
If stdin (standard input) is the only input source, you do not need the '-':
|
If stdin (standard input) is the only input source, you do not need the '-':
|
||||||
|
|
||||||
|
@ -165,22 +165,106 @@ GNU B<parallel> has some replacement strings to make it easier
|
||||||
|
|
||||||
=head2 Controlling the output
|
=head2 Controlling the output
|
||||||
|
|
||||||
parset
|
=head3 parset
|
||||||
|
|
||||||
|
B<parset> is a shell function to get the output from GNU B<parallel>
|
||||||
|
into shell variables.
|
||||||
|
|
||||||
|
B<parset> is fully supported for B<Bash/Zsh/Ksh> and partially supported
|
||||||
|
for B<ash/dash>. I will assume you run B<Bash>.
|
||||||
|
|
||||||
|
To activate B<parset> you have to run:
|
||||||
|
|
||||||
|
. `which env_parallel.bash`
|
||||||
|
|
||||||
|
(replace B<bash> with your shell's name).
|
||||||
|
|
||||||
|
Then you can run:
|
||||||
|
|
||||||
|
parset a,b,c seq ::: 4 5 6
|
||||||
|
echo "$c"
|
||||||
|
|
||||||
|
or:
|
||||||
|
|
||||||
|
parset 'a b c' seq ::: 4 5 6
|
||||||
|
echo "$c"
|
||||||
|
|
||||||
|
If you give a single variable, this will become an array:
|
||||||
|
|
||||||
|
parset arr seq ::: 4 5 6
|
||||||
|
echo "${arr[1]}"
|
||||||
|
|
||||||
|
B<parset> has one limitation: If it reads from a pipe, the output will
|
||||||
|
be lost.
|
||||||
|
|
||||||
|
echo This will not work | parset myarr echo
|
||||||
|
echo Nothing: "${myarr[*]}"
|
||||||
|
|
||||||
|
Instead you can do this:
|
||||||
|
|
||||||
|
echo This will work > tempfile
|
||||||
|
parset myarr echo < tempfile
|
||||||
|
echo ${myarr[*]}
|
||||||
|
|
||||||
sql
|
sql
|
||||||
cvs
|
cvs
|
||||||
|
|
||||||
|
|
||||||
=head2 Controlling the execution
|
=head2 Controlling the execution
|
||||||
|
|
||||||
=head3 Remote execution
|
--dryrun -v
|
||||||
|
|
||||||
|
=head2 Remote execution
|
||||||
|
|
||||||
|
For this section you must have B<ssh> access with no password to 2
|
||||||
|
servers: B<$server1> and B<$server2>.
|
||||||
|
|
||||||
|
server1=server.example.com
|
||||||
|
server2=server2.example.net
|
||||||
|
|
||||||
|
So you must be able to do this:
|
||||||
|
|
||||||
|
ssh $server1 echo works
|
||||||
|
ssh $server2 echo works
|
||||||
|
|
||||||
|
It can be setup by running 'ssh-keygen -t dsa; ssh-copy-id $server1'
|
||||||
|
and using an empty passphrase. Or you can use B<ssh-agent>.
|
||||||
|
|
||||||
|
=head3 Workers
|
||||||
|
|
||||||
|
=head3 --transferfile
|
||||||
|
|
||||||
|
B<--transferfile> I<filename> will transfer I<filename> to the
|
||||||
|
worker. I<filename> can contain a replacement string:
|
||||||
|
|
||||||
|
parallel -S $server1,$server2 --transferfile {} wc ::: example.*
|
||||||
|
parallel -S $server1,$server2 --transferfile {2} \
|
||||||
|
echo count {1} in {2}';' wc {1} {2} ::: -l -c ::: example.*
|
||||||
|
|
||||||
|
A shorthand for B<--transferfile {}> is B<--transfer>.
|
||||||
|
|
||||||
|
=head3 --return
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
=head3 --cleanup
|
||||||
|
|
||||||
|
A shorthand for B<--transfer --return {} --cleanup> is B<--trc {}>.
|
||||||
|
|
||||||
|
|
||||||
=head2 Pipe mode
|
=head2 Pipe mode
|
||||||
|
|
||||||
|
--pipepart
|
||||||
|
|
||||||
|
|
||||||
=head2 That's it
|
=head2 That's it
|
||||||
|
|
||||||
=head1 Advanced usage
|
=head1 Advanced usage
|
||||||
|
|
||||||
|
parset fifo, cmd substtition, arrayelements, array with var names and cmds, env_parset
|
||||||
|
|
||||||
env_parallel, parset, env_parset
|
|
||||||
|
env_parallel
|
||||||
|
|
||||||
Interfacing with R.
|
Interfacing with R.
|
||||||
|
|
||||||
|
@ -208,7 +292,7 @@ Interfacing with HTML/?
|
||||||
--termseq
|
--termseq
|
||||||
|
|
||||||
|
|
||||||
=head3 Remote execution
|
=head2 Remote execution
|
||||||
|
|
||||||
seq 10 | parallel --sshlogin 'ssh -i "key.pem" a@b.com' echo
|
seq 10 | parallel --sshlogin 'ssh -i "key.pem" a@b.com' echo
|
||||||
|
|
||||||
|
|
|
@ -110,7 +110,7 @@ So you must be able to do this:
|
||||||
ssh $SERVER2 echo works
|
ssh $SERVER2 echo works
|
||||||
|
|
||||||
It can be setup by running 'ssh-keygen -t dsa; ssh-copy-id $SERVER1'
|
It can be setup by running 'ssh-keygen -t dsa; ssh-copy-id $SERVER1'
|
||||||
and using an empty pass phrase.
|
and using an empty passphrase.
|
||||||
|
|
||||||
=back
|
=back
|
||||||
|
|
||||||
|
|
|
@ -1391,7 +1391,7 @@ par_bash_environment_too_big() {
|
||||||
echo 'bug #50815: env_parallel should warn if the environment is too big'
|
echo 'bug #50815: env_parallel should warn if the environment is too big'
|
||||||
. `which env_parallel.bash`;
|
. `which env_parallel.bash`;
|
||||||
|
|
||||||
bigvar="$(perl -e 'print "x"x121000')"
|
bigvar="$(perl -e 'print "x"x120000')"
|
||||||
env_parallel echo ::: OK_bigvar
|
env_parallel echo ::: OK_bigvar
|
||||||
env_parallel -S lo echo ::: OK_bigvar_remote
|
env_parallel -S lo echo ::: OK_bigvar_remote
|
||||||
|
|
||||||
|
@ -1400,11 +1400,11 @@ par_bash_environment_too_big() {
|
||||||
env_parallel -S lo echo ::: OK_bigvar_quote_remote
|
env_parallel -S lo echo ::: OK_bigvar_quote_remote
|
||||||
|
|
||||||
bigvar=u
|
bigvar=u
|
||||||
eval 'bigfunc() { a="'"$(perl -e 'print "x"x121000')"'"; };'
|
eval 'bigfunc() { a="'"$(perl -e 'print "x"x120000')"'"; };'
|
||||||
env_parallel echo ::: OK_bigfunc
|
env_parallel echo ::: OK_bigfunc
|
||||||
env_parallel -S lo echo ::: OK_bigfunc_remote
|
env_parallel -S lo echo ::: OK_bigfunc_remote
|
||||||
|
|
||||||
eval 'bigfunc() { a="'"$(perl -e 'print "\""x121000')"'"; };'
|
eval 'bigfunc() { a="'"$(perl -e 'print "\""x120000')"'"; };'
|
||||||
env_parallel echo ::: OK_bigfunc_quote
|
env_parallel echo ::: OK_bigfunc_quote
|
||||||
env_parallel -S lo echo ::: OK_bigfunc_quote_remote
|
env_parallel -S lo echo ::: OK_bigfunc_quote_remote
|
||||||
bigfunc() { true; }
|
bigfunc() { true; }
|
||||||
|
@ -2029,4 +2029,6 @@ export -f $(compgen -A function | grep par_)
|
||||||
#compgen -A function | grep par_ | sort | parallel --delay $D -j$P --tag -k '{} 2>&1'
|
#compgen -A function | grep par_ | sort | parallel --delay $D -j$P --tag -k '{} 2>&1'
|
||||||
#compgen -A function | grep par_ | sort |
|
#compgen -A function | grep par_ | sort |
|
||||||
compgen -A function | grep par_ | sort -r |
|
compgen -A function | grep par_ | sort -r |
|
||||||
parallel --joblog /tmp/jl-`basename $0` -j200% --tag -k '{} 2>&1'
|
# parallel --joblog /tmp/jl-`basename $0` --delay $D -j$P --tag -k '{} 2>&1'
|
||||||
|
parallel --joblog /tmp/jl-`basename $0` -j200% --tag -k '{} 2>&1' |
|
||||||
|
perl -pe 's/line \d\d\d:/line XXX:/'
|
||||||
|
|
|
@ -28,6 +28,8 @@ echo '### Tests on polarhome machines'
|
||||||
|
|
||||||
echo 'Setup on polarhome machines'
|
echo 'Setup on polarhome machines'
|
||||||
# Avoid the stupid /etc/issue.net banner at Polarhome: -oLogLevel=quiet
|
# Avoid the stupid /etc/issue.net banner at Polarhome: -oLogLevel=quiet
|
||||||
|
PARALLEL_SSH="ssh -oLogLevel=quiet"
|
||||||
|
export PARALLEL_SSH
|
||||||
stdout parallel -kj0 --delay 0.2 ssh -oLogLevel=quiet {} mkdir -p bin ::: $POLAR &
|
stdout parallel -kj0 --delay 0.2 ssh -oLogLevel=quiet {} mkdir -p bin ::: $POLAR &
|
||||||
|
|
||||||
par_onall() {
|
par_onall() {
|
||||||
|
@ -88,18 +90,43 @@ par_onall 'func() { cat <(echo bash only A); };export -f func; bin/parallel func
|
||||||
echo
|
echo
|
||||||
echo '### Does PARALLEL_SHELL help exporting a bash function not kill parallel'
|
echo '### Does PARALLEL_SHELL help exporting a bash function not kill parallel'
|
||||||
echo
|
echo
|
||||||
PARALLEL_SHELL=/bin/bash par_onall 'func() { cat <(echo bash only B); };export -f func; bin/parallel func ::: ' ::: 1
|
(
|
||||||
|
mkdir -p tmp/bin;
|
||||||
|
cp /bin/bash tmp/bin
|
||||||
|
cd tmp
|
||||||
|
PARALLEL_SHELL=bin/bash par_onall 'func() { cat <(echo bash only B); };export -f func; bin/parallel func ::: ' ::: 1
|
||||||
|
)
|
||||||
echo
|
echo
|
||||||
echo '### env_parallel echo :::: <(echo OK)'
|
echo '### env_parallel echo :::: <(echo OK)'
|
||||||
echo '(bash only)'
|
echo '(bash ksh zsh only)'
|
||||||
echo
|
echo
|
||||||
par_onall 'bin/env_parallel --install && echo {}' ::: install-OK
|
par_onall 'bin/env_parallel --install && echo {}' ::: install-OK
|
||||||
par_onall 'source setupenv || . `pwd`/setupenv; env_parallel echo env_parallel :::' ::: run-OK
|
par_onall 'source setupenv || . `pwd`/setupenv; '\
|
||||||
par_onall 'source setupenv || . `pwd`/setupenv; env_parallel echo reading from process substitution :::: <(echo {})' ::: OK |
|
'env_parallel echo env_parallel :::' ::: run-OK
|
||||||
|
par_onall 'source setupenv || . `pwd`/setupenv; '\
|
||||||
|
'env_parallel echo reading from process substitution :::: <(echo {})' ::: OK |
|
||||||
# csh on NetBSD does not support process substitution
|
# csh on NetBSD does not support process substitution
|
||||||
grep -v ': /tmp/.*: No such file or directory'
|
grep -v ': /tmp/.*: No such file or directory'
|
||||||
|
|
||||||
|
echo
|
||||||
|
echo '### (env_)parset arr seq ::: 2 3 4'
|
||||||
|
echo '(bash ksh zsh only)'
|
||||||
|
echo
|
||||||
|
par_onall 'source setupenv || . `pwd`/setupenv; '\
|
||||||
|
'parset arr seq ::: 2 3 4; echo ${arr[*]}' ::: parset-arr-OK
|
||||||
|
par_onall 'source setupenv || . `pwd`/setupenv; start=2; '\
|
||||||
|
'env_parset arr seq \$start ::: 2 3 4; echo ${arr[*]}' ::: env_parset-arr-OK
|
||||||
|
|
||||||
|
echo
|
||||||
|
echo '### (env_)parset var1,var2,var3 seq ::: 2 3 4'
|
||||||
|
echo '(bash ksh zsh only)'
|
||||||
|
echo
|
||||||
|
par_onall 'source setupenv || . `pwd`/setupenv; '\
|
||||||
|
'parset var1,var2,var3 seq ::: 2 3 4; echo $var1,$var2,$var3' ::: parset-var-OK
|
||||||
|
par_onall 'source setupenv || . `pwd`/setupenv; start=2; '\
|
||||||
|
'env_parset var1,var2,var3 seq \$start ::: 2 3 4; echo $var1,$var2,$var3' ::: env_parset-var-OK
|
||||||
|
|
||||||
|
|
||||||
# eval 'myfunc() { echo '$(perl -e 'print "x"x20000')'; }'
|
# eval 'myfunc() { echo '$(perl -e 'print "x"x20000')'; }'
|
||||||
# env_parallel myfunc ::: a | wc # OK
|
# env_parallel myfunc ::: a | wc # OK
|
||||||
# eval 'myfunc2() { echo '$(perl -e 'print "x"x120000')'; }'
|
# eval 'myfunc2() { echo '$(perl -e 'print "x"x120000')'; }'
|
||||||
|
|
|
@ -1114,49 +1114,49 @@ par_bash_environment_too_big OK_bigfunc_remote
|
||||||
par_bash_environment_too_big OK_bigfunc_quote
|
par_bash_environment_too_big OK_bigfunc_quote
|
||||||
par_bash_environment_too_big OK_bigfunc_quote_remote
|
par_bash_environment_too_big OK_bigfunc_quote_remote
|
||||||
par_bash_environment_too_big Rest should fail
|
par_bash_environment_too_big Rest should fail
|
||||||
par_bash_environment_too_big /usr/local/bin/env_parallel.bash: line 209: /usr/bin/which: Argument list too long
|
par_bash_environment_too_big /usr/local/bin/env_parallel.bash: line XXX: /usr/bin/perl: Argument list too long
|
||||||
par_bash_environment_too_big env_parallel: Error: Your environment is too big.
|
par_bash_environment_too_big env_parallel: Error: Your environment is too big.
|
||||||
par_bash_environment_too_big env_parallel: Error: Try running this in a clean environment once:
|
par_bash_environment_too_big env_parallel: Error: Try running this in a clean environment once:
|
||||||
par_bash_environment_too_big env_parallel: Error: env_parallel --record-env
|
par_bash_environment_too_big env_parallel: Error: env_parallel --record-env
|
||||||
par_bash_environment_too_big env_parallel: Error: And the use '--env _'
|
par_bash_environment_too_big env_parallel: Error: And the use '--env _'
|
||||||
par_bash_environment_too_big env_parallel: Error: For details see: man env_parallel
|
par_bash_environment_too_big env_parallel: Error: For details see: man env_parallel
|
||||||
par_bash_environment_too_big /usr/local/bin/env_parallel.bash: line 209: /usr/bin/which: Argument list too long
|
par_bash_environment_too_big /usr/local/bin/env_parallel.bash: line XXX: /usr/bin/perl: Argument list too long
|
||||||
par_bash_environment_too_big env_parallel: Error: Your environment is too big.
|
par_bash_environment_too_big env_parallel: Error: Your environment is too big.
|
||||||
par_bash_environment_too_big env_parallel: Error: Try running this in a clean environment once:
|
par_bash_environment_too_big env_parallel: Error: Try running this in a clean environment once:
|
||||||
par_bash_environment_too_big env_parallel: Error: env_parallel --record-env
|
par_bash_environment_too_big env_parallel: Error: env_parallel --record-env
|
||||||
par_bash_environment_too_big env_parallel: Error: And the use '--env _'
|
par_bash_environment_too_big env_parallel: Error: And the use '--env _'
|
||||||
par_bash_environment_too_big env_parallel: Error: For details see: man env_parallel
|
par_bash_environment_too_big env_parallel: Error: For details see: man env_parallel
|
||||||
par_bash_environment_too_big /usr/local/bin/env_parallel.bash: line 209: /usr/bin/which: Argument list too long
|
par_bash_environment_too_big /usr/local/bin/env_parallel.bash: line XXX: /usr/bin/perl: Argument list too long
|
||||||
par_bash_environment_too_big env_parallel: Error: Your environment is too big.
|
par_bash_environment_too_big env_parallel: Error: Your environment is too big.
|
||||||
par_bash_environment_too_big env_parallel: Error: Try running this in a clean environment once:
|
par_bash_environment_too_big env_parallel: Error: Try running this in a clean environment once:
|
||||||
par_bash_environment_too_big env_parallel: Error: env_parallel --record-env
|
par_bash_environment_too_big env_parallel: Error: env_parallel --record-env
|
||||||
par_bash_environment_too_big env_parallel: Error: And the use '--env _'
|
par_bash_environment_too_big env_parallel: Error: And the use '--env _'
|
||||||
par_bash_environment_too_big env_parallel: Error: For details see: man env_parallel
|
par_bash_environment_too_big env_parallel: Error: For details see: man env_parallel
|
||||||
par_bash_environment_too_big /usr/local/bin/env_parallel.bash: line 209: /usr/bin/which: Argument list too long
|
par_bash_environment_too_big /usr/local/bin/env_parallel.bash: line XXX: /usr/bin/perl: Argument list too long
|
||||||
par_bash_environment_too_big env_parallel: Error: Your environment is too big.
|
par_bash_environment_too_big env_parallel: Error: Your environment is too big.
|
||||||
par_bash_environment_too_big env_parallel: Error: Try running this in a clean environment once:
|
par_bash_environment_too_big env_parallel: Error: Try running this in a clean environment once:
|
||||||
par_bash_environment_too_big env_parallel: Error: env_parallel --record-env
|
par_bash_environment_too_big env_parallel: Error: env_parallel --record-env
|
||||||
par_bash_environment_too_big env_parallel: Error: And the use '--env _'
|
par_bash_environment_too_big env_parallel: Error: And the use '--env _'
|
||||||
par_bash_environment_too_big env_parallel: Error: For details see: man env_parallel
|
par_bash_environment_too_big env_parallel: Error: For details see: man env_parallel
|
||||||
par_bash_environment_too_big /usr/local/bin/env_parallel.bash: line 209: /usr/bin/which: Argument list too long
|
par_bash_environment_too_big /usr/local/bin/env_parallel.bash: line XXX: /usr/bin/perl: Argument list too long
|
||||||
par_bash_environment_too_big env_parallel: Error: Your environment is too big.
|
par_bash_environment_too_big env_parallel: Error: Your environment is too big.
|
||||||
par_bash_environment_too_big env_parallel: Error: Try running this in a clean environment once:
|
par_bash_environment_too_big env_parallel: Error: Try running this in a clean environment once:
|
||||||
par_bash_environment_too_big env_parallel: Error: env_parallel --record-env
|
par_bash_environment_too_big env_parallel: Error: env_parallel --record-env
|
||||||
par_bash_environment_too_big env_parallel: Error: And the use '--env _'
|
par_bash_environment_too_big env_parallel: Error: And the use '--env _'
|
||||||
par_bash_environment_too_big env_parallel: Error: For details see: man env_parallel
|
par_bash_environment_too_big env_parallel: Error: For details see: man env_parallel
|
||||||
par_bash_environment_too_big /usr/local/bin/env_parallel.bash: line 209: /usr/bin/which: Argument list too long
|
par_bash_environment_too_big /usr/local/bin/env_parallel.bash: line XXX: /usr/bin/perl: Argument list too long
|
||||||
par_bash_environment_too_big env_parallel: Error: Your environment is too big.
|
par_bash_environment_too_big env_parallel: Error: Your environment is too big.
|
||||||
par_bash_environment_too_big env_parallel: Error: Try running this in a clean environment once:
|
par_bash_environment_too_big env_parallel: Error: Try running this in a clean environment once:
|
||||||
par_bash_environment_too_big env_parallel: Error: env_parallel --record-env
|
par_bash_environment_too_big env_parallel: Error: env_parallel --record-env
|
||||||
par_bash_environment_too_big env_parallel: Error: And the use '--env _'
|
par_bash_environment_too_big env_parallel: Error: And the use '--env _'
|
||||||
par_bash_environment_too_big env_parallel: Error: For details see: man env_parallel
|
par_bash_environment_too_big env_parallel: Error: For details see: man env_parallel
|
||||||
par_bash_environment_too_big /usr/local/bin/env_parallel.bash: line 209: /usr/bin/which: Argument list too long
|
par_bash_environment_too_big /usr/local/bin/env_parallel.bash: line XXX: /usr/bin/perl: Argument list too long
|
||||||
par_bash_environment_too_big env_parallel: Error: Your environment is too big.
|
par_bash_environment_too_big env_parallel: Error: Your environment is too big.
|
||||||
par_bash_environment_too_big env_parallel: Error: Try running this in a clean environment once:
|
par_bash_environment_too_big env_parallel: Error: Try running this in a clean environment once:
|
||||||
par_bash_environment_too_big env_parallel: Error: env_parallel --record-env
|
par_bash_environment_too_big env_parallel: Error: env_parallel --record-env
|
||||||
par_bash_environment_too_big env_parallel: Error: And the use '--env _'
|
par_bash_environment_too_big env_parallel: Error: And the use '--env _'
|
||||||
par_bash_environment_too_big env_parallel: Error: For details see: man env_parallel
|
par_bash_environment_too_big env_parallel: Error: For details see: man env_parallel
|
||||||
par_bash_environment_too_big /usr/local/bin/env_parallel.bash: line 209: /usr/bin/which: Argument list too long
|
par_bash_environment_too_big /usr/local/bin/env_parallel.bash: line XXX: /usr/bin/perl: Argument list too long
|
||||||
par_bash_environment_too_big env_parallel: Error: Your environment is too big.
|
par_bash_environment_too_big env_parallel: Error: Your environment is too big.
|
||||||
par_bash_environment_too_big env_parallel: Error: Try running this in a clean environment once:
|
par_bash_environment_too_big env_parallel: Error: Try running this in a clean environment once:
|
||||||
par_bash_environment_too_big env_parallel: Error: env_parallel --record-env
|
par_bash_environment_too_big env_parallel: Error: env_parallel --record-env
|
||||||
|
|
|
@ -452,6 +452,7 @@ centos.polarhome.com bash only B
|
||||||
debian-ppc.polarhome.com bash only B
|
debian-ppc.polarhome.com bash only B
|
||||||
debian.polarhome.com bash only B
|
debian.polarhome.com bash only B
|
||||||
freebsd.polarhome.com bash only B
|
freebsd.polarhome.com bash only B
|
||||||
|
hpux-ia64.polarhome.com bash only B
|
||||||
macosx.polarhome.com bash only B
|
macosx.polarhome.com bash only B
|
||||||
mandriva.polarhome.com bash only B
|
mandriva.polarhome.com bash only B
|
||||||
miros.polarhome.com bash only B
|
miros.polarhome.com bash only B
|
||||||
|
@ -465,10 +466,12 @@ scosysv.polarhome.com bash only B
|
||||||
solaris-x86.polarhome.com bash only B
|
solaris-x86.polarhome.com bash only B
|
||||||
solaris.polarhome.com bash only B
|
solaris.polarhome.com bash only B
|
||||||
suse.polarhome.com bash only B
|
suse.polarhome.com bash only B
|
||||||
|
tru64.polarhome.com bash only B
|
||||||
ubuntu.polarhome.com bash only B
|
ubuntu.polarhome.com bash only B
|
||||||
|
unixware.polarhome.com
|
||||||
|
|
||||||
### env_parallel echo :::: <(echo OK)
|
### env_parallel echo :::: <(echo OK)
|
||||||
(bash only)
|
(bash ksh zsh only)
|
||||||
|
|
||||||
aix.polarhome.com Installed env_parallel in:
|
aix.polarhome.com Installed env_parallel in:
|
||||||
aix.polarhome.com /home/t/tange/.bashrc
|
aix.polarhome.com /home/t/tange/.bashrc
|
||||||
|
@ -521,6 +524,7 @@ freebsd.polarhome.com /home/t/tange/.cshrc
|
||||||
freebsd.polarhome.com /home/t/tange/.tcshrc
|
freebsd.polarhome.com /home/t/tange/.tcshrc
|
||||||
freebsd.polarhome.com install-OK
|
freebsd.polarhome.com install-OK
|
||||||
hpux-ia64.polarhome.com No such file or directory: bash
|
hpux-ia64.polarhome.com No such file or directory: bash
|
||||||
|
hpux.polarhome.com exec request failed on channel 0
|
||||||
macosx.polarhome.com Installed env_parallel in:
|
macosx.polarhome.com Installed env_parallel in:
|
||||||
macosx.polarhome.com /Users/tange/.bashrc
|
macosx.polarhome.com /Users/tange/.bashrc
|
||||||
macosx.polarhome.com /Users/tange/.shrc
|
macosx.polarhome.com /Users/tange/.shrc
|
||||||
|
@ -719,6 +723,124 @@ suse.polarhome.com reading from process substitution OK
|
||||||
tru64.polarhome.com reading from process substitution OK
|
tru64.polarhome.com reading from process substitution OK
|
||||||
ubuntu.polarhome.com reading from process substitution OK
|
ubuntu.polarhome.com reading from process substitution OK
|
||||||
unixware.polarhome.com UX:sh (/bin/sh): ERROR: /bin/sh: Syntax error at line 1: `(' unexpected
|
unixware.polarhome.com UX:sh (/bin/sh): ERROR: /bin/sh: Syntax error at line 1: `(' unexpected
|
||||||
|
|
||||||
|
### (env_)parset arr seq ::: 2 3 4
|
||||||
|
(bash ksh zsh only)
|
||||||
|
|
||||||
|
centos.polarhome.com 1 2 1 2 3 1 2 3 4 parset-arr-OK
|
||||||
|
debian-ppc.polarhome.com 1 2 1 2 3 1 2 3 4 parset-arr-OK
|
||||||
|
debian.polarhome.com 1 2 1 2 3 1 2 3 4 parset-arr-OK
|
||||||
|
freebsd.polarhome.com source: not found
|
||||||
|
freebsd.polarhome.com eval: 1: Syntax error: word unexpected (expecting ")")
|
||||||
|
hpux-ia64.polarhome.com 1 2 1 2 3 1 2 3 4 parset-arr-OK
|
||||||
|
macosx.polarhome.com 1 2 1 2 3 1 2 3 4 parset-arr-OK
|
||||||
|
mandriva.polarhome.com 1 2 1 2 3 1 2 3 4 parset-arr-OK
|
||||||
|
miros.polarhome.com 1 2 1 2 3 1 2 3 4 parset-arr-OK
|
||||||
|
netbsd.polarhome.com parset: Command not found.
|
||||||
|
netbsd.polarhome.com arr: Undefined variable.
|
||||||
|
openbsd.polarhome.com parset-arr-OK
|
||||||
|
openindiana.polarhome.com 1 2 1 2 3 1 2 3 4 parset-arr-OK
|
||||||
|
pidora.polarhome.com 1 2 1 2 3 1 2 3 4 parset-arr-OK
|
||||||
|
raspbian.polarhome.com 1 2 1 2 3 1 2 3 4 parset-arr-OK
|
||||||
|
redhat.polarhome.com 1 2 1 2 3 1 2 3 4 parset-arr-OK
|
||||||
|
scosysv.polarhome.com 1 2 1 2 3 1 2 3 4 parset-arr-OK
|
||||||
|
solaris-x86.polarhome.com 1 2 1 2 3 1 2 3 4 parset-arr-OK
|
||||||
|
solaris.polarhome.com 1 2 1 2 3 1 2 3 4 parset-arr-OK
|
||||||
|
suse.polarhome.com 1 2 1 2 3 1 2 3 4 parset-arr-OK
|
||||||
|
tru64.polarhome.com 1 2 1 2 3 1 2 3 4 parset-arr-OK
|
||||||
|
ubuntu.polarhome.com 1 2 1 2 3 1 2 3 4 parset-arr-OK
|
||||||
|
unixware.polarhome.com UX:sh (/bin/sh): ERROR: source: Not found
|
||||||
|
unixware.polarhome.com UX:sh (/bin/sh): ERROR: /bin/sh: Syntax error at line 1: `arr=' unexpected
|
||||||
|
centos.polarhome.com 2 2 3 2 3 4 env_parset-arr-OK
|
||||||
|
debian-ppc.polarhome.com 2 2 3 2 3 4 env_parset-arr-OK
|
||||||
|
debian.polarhome.com 2 2 3 2 3 4 env_parset-arr-OK
|
||||||
|
freebsd.polarhome.com source: not found
|
||||||
|
freebsd.polarhome.com eval: 1: Syntax error: word unexpected (expecting ")")
|
||||||
|
hpux-ia64.polarhome.com 1 2 1 2 1 2 env_parset-arr-OK
|
||||||
|
macosx.polarhome.com 2 2 3 2 3 4 env_parset-arr-OK
|
||||||
|
mandriva.polarhome.com 2 2 3 2 3 4 env_parset-arr-OK
|
||||||
|
miros.polarhome.com 1 2 1 2 1 2 env_parset-arr-OK
|
||||||
|
netbsd.polarhome.com start=2: Command not found.
|
||||||
|
netbsd.polarhome.com env_parset: Command not found.
|
||||||
|
netbsd.polarhome.com arr: Undefined variable.
|
||||||
|
openbsd.polarhome.com env_parset-arr-OK
|
||||||
|
openindiana.polarhome.com 2 2 3 2 3 4 env_parset-arr-OK
|
||||||
|
pidora.polarhome.com 2 2 3 2 3 4 env_parset-arr-OK
|
||||||
|
raspbian.polarhome.com 2 2 3 2 3 4 env_parset-arr-OK
|
||||||
|
redhat.polarhome.com 2 2 3 2 3 4 env_parset-arr-OK
|
||||||
|
scosysv.polarhome.com 2 2 3 2 3 4 env_parset-arr-OK
|
||||||
|
solaris-x86.polarhome.com 2 2 3 2 3 4 env_parset-arr-OK
|
||||||
|
solaris.polarhome.com 1 2 1 2 1 2 env_parset-arr-OK
|
||||||
|
suse.polarhome.com 2 2 3 2 3 4 env_parset-arr-OK
|
||||||
|
tru64.polarhome.com 2 2 3 2 3 4 env_parset-arr-OK
|
||||||
|
ubuntu.polarhome.com 2 2 3 2 3 4 env_parset-arr-OK
|
||||||
|
unixware.polarhome.com UX:sh (/bin/sh): ERROR: source: Not found
|
||||||
|
unixware.polarhome.com UX:sh (/bin/sh): ERROR: /bin/sh: Syntax error at line 1: `arr=' unexpected
|
||||||
|
|
||||||
|
### (env_)parset var1,var2,var3 seq ::: 2 3 4
|
||||||
|
(bash ksh zsh only)
|
||||||
|
|
||||||
|
centos.polarhome.com 1 2,1 2 3,1 2 3 4 parset-var-OK
|
||||||
|
debian-ppc.polarhome.com 1 2,1 2 3,1 2 3 4 parset-var-OK
|
||||||
|
debian.polarhome.com 1 2,1 2 3,1 2 3 4 parset-var-OK
|
||||||
|
freebsd.polarhome.com 1 2,1 2 3,1 2 3 4 parset-var-OK
|
||||||
|
freebsd.polarhome.com source: not found
|
||||||
|
hpux-ia64.polarhome.com 1 2,1 2 3,1 2 3 4 parset-var-OK
|
||||||
|
macosx.polarhome.com 1 2,1 2 3,1 2 3 4 parset-var-OK
|
||||||
|
mandriva.polarhome.com 1 2,1 2 3,1 2 3 4 parset-var-OK
|
||||||
|
miros.polarhome.com 1 2,1 2 3,1 2 3 4 parset-var-OK
|
||||||
|
netbsd.polarhome.com parset: Command not found.
|
||||||
|
netbsd.polarhome.com var1: Undefined variable.
|
||||||
|
openbsd.polarhome.com ,, parset-var-OK
|
||||||
|
openindiana.polarhome.com 1 2,1 2 3,1 2 3 4 parset-var-OK
|
||||||
|
pidora.polarhome.com 1 2,1 2 3,1 2 3 4 parset-var-OK
|
||||||
|
raspbian.polarhome.com 1 2,1 2 3,1 2 3 4 parset-var-OK
|
||||||
|
redhat.polarhome.com 1 2,1 2 3,1 2 3 4 parset-var-OK
|
||||||
|
scosysv.polarhome.com 1 2,1 2 3,1 2 3 4 parset-var-OK
|
||||||
|
solaris-x86.polarhome.com 1 2,1 2 3,1 2 3 4 parset-var-OK
|
||||||
|
solaris.polarhome.com 1 2,1 2 3,1 2 3 4 parset-var-OK
|
||||||
|
suse.polarhome.com 1 2,1 2 3,1 2 3 4 parset-var-OK
|
||||||
|
tru64.polarhome.com 1 2,1 2 3,1 2 3 4 parset-var-OK
|
||||||
|
ubuntu.polarhome.com 1 2,1 2 3,1 2 3 4 parset-var-OK
|
||||||
|
unixware.polarhome.com UX:sh (/bin/sh): ERROR: source: Not found
|
||||||
|
unixware.polarhome.com UX:cat: ERROR: Cannot open tmpfile1: No such file or directory
|
||||||
|
unixware.polarhome.com UX:rm: ERROR: Cannot access tmpfile1: No such file or directory
|
||||||
|
unixware.polarhome.com UX:cat: ERROR: Cannot open tmpfile2: No such file or directory
|
||||||
|
unixware.polarhome.com UX:rm: ERROR: Cannot access tmpfile2: No such file or directory
|
||||||
|
unixware.polarhome.com UX:cat: ERROR: Cannot open {1}: No such file or directory
|
||||||
|
unixware.polarhome.com UX:rm: ERROR: Cannot access {1}: No such file or directory
|
||||||
|
unixware.polarhome.com UX:sh (/bin/sh): ERROR: /bin/sh: Syntax error at line 2: `$' unexpected
|
||||||
|
centos.polarhome.com 2,2 3,2 3 4 env_parset-var-OK
|
||||||
|
debian-ppc.polarhome.com 2,2 3,2 3 4 env_parset-var-OK
|
||||||
|
debian.polarhome.com 2,2 3,2 3 4 env_parset-var-OK
|
||||||
|
freebsd.polarhome.com 2,2 3,2 3 4 env_parset-var-OK
|
||||||
|
freebsd.polarhome.com source: not found
|
||||||
|
hpux-ia64.polarhome.com 1 2,1 2,1 2 env_parset-var-OK
|
||||||
|
macosx.polarhome.com 2,2 3,2 3 4 env_parset-var-OK
|
||||||
|
mandriva.polarhome.com 2,2 3,2 3 4 env_parset-var-OK
|
||||||
|
miros.polarhome.com 1 2,1 2,1 2 env_parset-var-OK
|
||||||
|
netbsd.polarhome.com start=2: Command not found.
|
||||||
|
netbsd.polarhome.com env_parset: Command not found.
|
||||||
|
netbsd.polarhome.com var1: Undefined variable.
|
||||||
|
openbsd.polarhome.com ,, env_parset-var-OK
|
||||||
|
openindiana.polarhome.com 2,2 3,2 3 4 env_parset-var-OK
|
||||||
|
pidora.polarhome.com 2,2 3,2 3 4 env_parset-var-OK
|
||||||
|
raspbian.polarhome.com 2,2 3,2 3 4 env_parset-var-OK
|
||||||
|
redhat.polarhome.com 2,2 3,2 3 4 env_parset-var-OK
|
||||||
|
scosysv.polarhome.com 2,2 3,2 3 4 env_parset-var-OK
|
||||||
|
solaris-x86.polarhome.com 2,2 3,2 3 4 env_parset-var-OK
|
||||||
|
solaris.polarhome.com 1 2,1 2,1 2 env_parset-var-OK
|
||||||
|
suse.polarhome.com 2,2 3,2 3 4 env_parset-var-OK
|
||||||
|
tru64.polarhome.com 2,2 3,2 3 4 env_parset-var-OK
|
||||||
|
ubuntu.polarhome.com 2,2 3,2 3 4 env_parset-var-OK
|
||||||
|
unixware.polarhome.com UX:sh (/bin/sh): ERROR: source: Not found
|
||||||
|
unixware.polarhome.com UX:cat: ERROR: Cannot open tmpfile1: No such file or directory
|
||||||
|
unixware.polarhome.com UX:rm: ERROR: Cannot access tmpfile1: No such file or directory
|
||||||
|
unixware.polarhome.com UX:cat: ERROR: Cannot open tmpfile2: No such file or directory
|
||||||
|
unixware.polarhome.com UX:rm: ERROR: Cannot access tmpfile2: No such file or directory
|
||||||
|
unixware.polarhome.com UX:cat: ERROR: Cannot open {1}: No such file or directory
|
||||||
|
unixware.polarhome.com UX:rm: ERROR: Cannot access {1}: No such file or directory
|
||||||
|
unixware.polarhome.com UX:sh (/bin/sh): ERROR: /bin/sh: Syntax error at line 2: `$' unexpected
|
||||||
macosx.polarhome.com
|
macosx.polarhome.com
|
||||||
macosx.polarhome.com ### Test if empty command in process list causes problems
|
macosx.polarhome.com ### Test if empty command in process list causes problems
|
||||||
macosx.polarhome.com
|
macosx.polarhome.com
|
||||||
|
|
|
@ -859,6 +859,7 @@ ORACLE_SID
|
||||||
PARALLEL
|
PARALLEL
|
||||||
PARALLEL_HOME
|
PARALLEL_HOME
|
||||||
PARALLEL_PID
|
PARALLEL_PID
|
||||||
|
PARALLEL_RSYNC_OPTS
|
||||||
PARALLEL_SEQ
|
PARALLEL_SEQ
|
||||||
PARALLEL_TMP
|
PARALLEL_TMP
|
||||||
PATH
|
PATH
|
||||||
|
|
Loading…
Reference in a new issue