parallel: Check if PARALLEL_SHELL is in path.

env_parallel compatible with more unices.
This commit is contained in:
Ole Tange 2017-12-23 00:01:20 +01:00
parent b843ec7398
commit da545d53ff
15 changed files with 321 additions and 48 deletions

View file

@ -199,9 +199,9 @@ to:parallel@gnu.org, bug-parallel@gnu.org
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.>>
@ -211,8 +211,14 @@ Haiku of the month:
New in this release:
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://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>>

View file

@ -274,7 +274,7 @@ _parset_main() {
# => $1 is the name of the array to put data into
# Supported in: bash
# 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 $_\`\" "' ) )"
fi
}

View file

@ -58,10 +58,17 @@ env_parallel() {
}
_remove_bad_NAMES() {
# 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
# 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 '^(_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|
@ -72,6 +79,7 @@ env_parallel() {
_names_of_VARIABLES|
_bodies_of_VARIABLES|
_remove_bad_NAMES|
_remove_readonly|
_prefix_PARALLEL_ENV|
_get_ignored_VARS|
_make_grep_REGEXP|
@ -87,7 +95,7 @@ env_parallel() {
# Filter names matching --env
# perl version of: grep -E "^$_grep_REGEXP"\$ | grep -vE "^"\$ |
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 -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)" : "(.*)";
' -- "$@"
}
_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() {
echo "env_parallel: Warning: $@" >&2
}
# Bash is broken in version 3.2.25 and 4.2.39
# 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
return 255
fi
@ -190,7 +213,7 @@ env_parallel() {
fi
unset _variable_NAMES
_which_true="`which true`"
_which_true="`_which true`"
# Copy shopt (so e.g. extended globbing works)
# But force expand_aliases as aliases otherwise do not work
PARALLEL_ENV="`
@ -206,8 +229,8 @@ env_parallel() {
unset _grep_REGEXP
unset _ignore_UNDERSCORE
# Test if environment is too big
if [ "`which true`" == "$_which_true" ] ; then
`which parallel` "$@";
if [ "`_which true`" == "$_which_true" ] ; then
`_which parallel` "$@";
_parallel_exit_CODE=$?
unset PARALLEL_ENV;
return $_parallel_exit_CODE
@ -287,9 +310,9 @@ _parset_main() {
else
# $_parset_name does not contain , or space
# => $_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
eval $_parset_name="( $( $_parset_parallel_prg --files -k "$@" |
eval "$_parset_name=( $( $_parset_parallel_prg --files -k "$@" |
perl -pe 'chop;$_="\"\`cat $_; rm $_\`\" "' ) )"
fi
}

View file

@ -274,7 +274,7 @@ _parset_main() {
# => $1 is the name of the array to put data into
# Supported in: bash
# 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 $_\`\" "' ) )"
fi
}

View file

@ -252,7 +252,7 @@ _parset_main() {
# => $1 is the name of the array to put data into
# Supported in: bash
# 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 $_\`\" "' ) )"
fi
}

View file

@ -264,8 +264,8 @@ _parset_main() {
}
exit $exitval;
' || return 255
if echo "$_parset_name" | grep -E ',| ' >/dev/null ; then
# $1 contains , or space
if perl -e 'exit not grep /,| /, @ARGV' "$_parset_name" ; then
# $_parset_name contains , or space
# Split on , or space to get the names
eval "$(
# Compute results into files
@ -278,11 +278,11 @@ _parset_main() {
)
)"
else
# $1 contains no space or ,
# => $1 is the name of the array to put data into
# Supported in: bash
# $_parset_name does not contain , or space
# => $_parset_name is the name of the array to put data into
# Supported in: bash zsh ksh
# 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 $_\`\" "' ) )"
fi
}

View file

@ -245,7 +245,7 @@ _parset_main() {
# => $1 is the name of the array to put data into
# Supported in: bash
# 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 $_\`\" "' ) )"
fi
}

View file

@ -1110,6 +1110,10 @@ sub parse_options {
$Global::debug = $opt::D;
$Global::shell = $ENV{'PARALLEL_SHELL'} || parent_shell($$)
|| $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:;
if(defined $opt::X) { $Global::ContextReplace = 1; }
if(defined $opt::silent) { $Global::verbose = 0; }
@ -4525,10 +4529,14 @@ sub which {
# Returns:
# @full_path = full paths to @programs. Nothing if not found
my @which;
::debug("which", "@_ in $ENV{'PATH'}");
::debug("which", "@_ in $ENV{'PATH'}\n");
for my $prg (@_) {
push(@which, grep { not -d $_ and -x $_ }
map { $_."/".$prg } split(":",$ENV{'PATH'}));
if($prg =~ m:/:) {
# Including path
push(@which, grep { not -d $_ and -x $_ } $prg);
}
}
return @which;
}

View file

@ -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
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 sections and cover special use cases.
The rest of this document will go into more details on each of the
sections and cover special use cases.
=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 echo Dice1={1} Dice2={2} :::: 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 '-':
@ -165,22 +165,106 @@ GNU B<parallel> has some replacement strings to make it easier
=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
cvs
=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
--pipepart
=head2 That's it
=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.
@ -208,7 +292,7 @@ Interfacing with HTML/?
--termseq
=head3 Remote execution
=head2 Remote execution
seq 10 | parallel --sshlogin 'ssh -i "key.pem" a@b.com' echo

View file

@ -1391,7 +1391,7 @@ par_bash_environment_too_big() {
echo 'bug #50815: env_parallel should warn if the environment is too big'
. `which env_parallel.bash`;
bigvar="$(perl -e 'print "x"x121000')"
bigvar="$(perl -e 'print "x"x120000')"
env_parallel echo ::: OK_bigvar
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
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 -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 -S lo echo ::: OK_bigfunc_quote_remote
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 |
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:/'

View file

@ -28,6 +28,8 @@ echo '### Tests on polarhome machines'
echo 'Setup on polarhome machines'
# 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 &
par_onall() {
@ -88,18 +90,43 @@ par_onall 'func() { cat <(echo bash only A); };export -f func; bin/parallel func
echo
echo '### Does PARALLEL_SHELL help exporting a bash function not kill parallel'
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 '### env_parallel echo :::: <(echo OK)'
echo '(bash only)'
echo '(bash ksh zsh only)'
echo
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; env_parallel echo reading from process substitution :::: <(echo {})' ::: OK |
par_onall 'source setupenv || . `pwd`/setupenv; '\
'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
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')'; }'
# env_parallel myfunc ::: a | wc # OK
# eval 'myfunc2() { echo '$(perl -e 'print "x"x120000')'; }'

View file

@ -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_remote
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: 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: And the use '--env _'
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: 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: And the use '--env _'
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: 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: And the use '--env _'
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: 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: And the use '--env _'
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: 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: And the use '--env _'
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: 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: And the use '--env _'
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: 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: And the use '--env _'
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: Try running this in a clean environment once:
par_bash_environment_too_big env_parallel: Error: env_parallel --record-env

View file

@ -452,6 +452,7 @@ centos.polarhome.com bash only B
debian-ppc.polarhome.com bash only B
debian.polarhome.com bash only B
freebsd.polarhome.com bash only B
hpux-ia64.polarhome.com bash only B
macosx.polarhome.com bash only B
mandriva.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.polarhome.com bash only B
suse.polarhome.com bash only B
tru64.polarhome.com bash only B
ubuntu.polarhome.com bash only B
unixware.polarhome.com
### env_parallel echo :::: <(echo OK)
(bash only)
(bash ksh zsh only)
aix.polarhome.com Installed env_parallel in:
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 install-OK
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 /Users/tange/.bashrc
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
ubuntu.polarhome.com reading from process substitution OK
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 ### Test if empty command in process list causes problems
macosx.polarhome.com

View file

@ -859,6 +859,7 @@ ORACLE_SID
PARALLEL
PARALLEL_HOME
PARALLEL_PID
PARALLEL_RSYNC_OPTS
PARALLEL_SEQ
PARALLEL_TMP
PATH