mirror of
https://git.savannah.gnu.org/git/parallel.git
synced 2024-11-22 14:07:55 +00:00
parset: set exit code.
This commit is contained in:
parent
29fbb5f85f
commit
490474ea8c
|
@ -206,35 +206,22 @@ 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 20180722 ('Crimson Hexagon') released [alpha] <<[stable]>>
|
Subject: GNU Parallel 20180822 ('Genova/Lombok/AM2431/Zimbabwe/Parker Solar Probe') released [alpha] <<[stable]>>
|
||||||
|
|
||||||
GNU Parallel 20180722 ('Crimson Hexagon') [alpha] <<[stable]>> has been released. It is available for download at: http://ftpmirror.gnu.org/parallel/
|
GNU Parallel 20180822 ('') [alpha] <<[stable]>> has been released. It is available for download at: http://ftpmirror.gnu.org/parallel/
|
||||||
|
|
||||||
This release has signficant changes and is considered alpha quality.
|
This release has signficant changes and is considered alpha quality.
|
||||||
<<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.>>
|
||||||
|
|
||||||
Quote of the month:
|
Quote of the month:
|
||||||
|
|
||||||
I've been using GNU Parallel very much and effectively lately.
|
GNU parallel is a thing of magic.
|
||||||
Such an easy way to get huge speed-ups with my simple bash/Perl/Python
|
|
||||||
programs -- parallelize them!
|
-- Josh Meyer @joshmeyerphd@twitter
|
||||||
-- Ken Youens-Clark @kycl4rk@twitter
|
|
||||||
|
|
||||||
New in this release:
|
New in this release:
|
||||||
|
|
||||||
* The quoting engine has been changed. Instead of using \-quoting GNU Parallel now uses '-quoting in bash/ash/dash/ksh. This should improve compatibility with different locales. This is a big change causing this release to be alpha quality.
|
* How to install GNU Parallel https://www.techrepublic.com/videos/how-to-install-gnu-parallel/
|
||||||
|
|
||||||
* The CPU calculation has changed. By default GNU Parallel uses the number of CPU threads as the number of CPUs. This can be change to the number of CPU cores or number of CPU sockets with --use-cores-instead-of-threads or --use-sockets-instead-of-threads.
|
|
||||||
|
|
||||||
* The detected number of sockets, cores, and threads can be shown with --number-of-sockets, --number-of-cores, and --number-of-threads.
|
|
||||||
|
|
||||||
* env_parallel now support mksh using env_parallel.mksh.
|
|
||||||
|
|
||||||
* GNU Parallel is distributed as part of Snippy https://github.com/tseemann/snippy
|
|
||||||
|
|
||||||
* GNU Parallel: Ejecutar comandos simultáneamente en Linux https://esgeeks.com/gnu-parallel-ejecutar-comandos-simultaneo-linux/
|
|
||||||
|
|
||||||
* Parallel download genomic data with GNU-Parallel https://digibio.blogspot.com/search/label/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>>
|
||||||
|
|
||||||
|
|
|
@ -300,12 +300,12 @@ env_parallel() {
|
||||||
}
|
}
|
||||||
|
|
||||||
parset() {
|
parset() {
|
||||||
_parset_parallel_prg=parallel
|
_parset_PARALLEL_PRG=parallel
|
||||||
_parset_main "$@"
|
_parset_main "$@"
|
||||||
}
|
}
|
||||||
|
|
||||||
env_parset() {
|
env_parset() {
|
||||||
_parset_parallel_prg=env_parallel
|
_parset_PARALLEL_PRG=env_parallel
|
||||||
_parset_main "$@"
|
_parset_main "$@"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -328,15 +328,22 @@ _parset_main() {
|
||||||
# parset "var_a4 var_b4 var_c4" echo ::: {1..3}
|
# parset "var_a4 var_b4 var_c4" echo ::: {1..3}
|
||||||
# echo $var_c4
|
# echo $var_c4
|
||||||
|
|
||||||
_parset_name="$1"
|
_make_TEMP() {
|
||||||
if [ "$_parset_name" = "" ] ; then
|
# mktemp does not exist on some OS
|
||||||
|
perl -e 'use File::Temp qw(tempfile);
|
||||||
|
$ENV{"TMPDIR"} ||= "/tmp";
|
||||||
|
print((tempfile(DIR=>$ENV{"TMPDIR"}, TEMPLATE => "parXXXXX"))[1])'
|
||||||
|
}
|
||||||
|
|
||||||
|
_parset_NAME="$1"
|
||||||
|
if [ "$_parset_NAME" = "" ] ; then
|
||||||
echo parset: Error: No destination variable given. >&2
|
echo parset: Error: No destination variable given. >&2
|
||||||
echo parset: Error: Try: >&2
|
echo parset: Error: Try: >&2
|
||||||
echo parset: Error: ' ' parset myarray echo ::: foo bar >&2
|
echo parset: Error: ' ' parset myarray echo ::: foo bar >&2
|
||||||
return 255
|
return 255
|
||||||
fi
|
fi
|
||||||
shift
|
shift
|
||||||
echo "$_parset_name" |
|
echo "$_parset_NAME" |
|
||||||
perl -ne 'chomp;for (split /[, ]/) {
|
perl -ne 'chomp;for (split /[, ]/) {
|
||||||
# Allow: var_32 var[3]
|
# Allow: var_32 var[3]
|
||||||
if(not /^[a-zA-Z_][a-zA-Z_0-9]*(\[\d+\])?$/) {
|
if(not /^[a-zA-Z_][a-zA-Z_0-9]*(\[\d+\])?$/) {
|
||||||
|
@ -347,25 +354,30 @@ _parset_main() {
|
||||||
}
|
}
|
||||||
exit $exitval;
|
exit $exitval;
|
||||||
' || return 255
|
' || return 255
|
||||||
if perl -e 'exit not grep /,| /, @ARGV' "$_parset_name" ; then
|
_exit_FILE=`_make_TEMP`
|
||||||
# $_parset_name 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
|
# Split on , or space to get the names
|
||||||
eval "`
|
eval "`
|
||||||
# Compute results into files
|
# Compute results into files
|
||||||
$_parset_parallel_prg --files -k "$@" |
|
($_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 -q echo {2}='\`cat {1}; rm {1}\`' :::: - :::+ \`
|
parallel -q echo {2}='\`cat {1}; rm {1}\`' :::: - :::+ \`
|
||||||
echo "$_parset_name" |
|
echo "$_parset_NAME" |
|
||||||
perl -pe 's/,/ /g'
|
perl -pe 's/,/ /g'
|
||||||
\`
|
\`
|
||||||
`"
|
`"
|
||||||
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 zsh ksh
|
# Supported in: bash zsh ksh mksh
|
||||||
# Arrays do not work in: ash dash
|
# Arrays do not work in: sh ash dash
|
||||||
eval "$_parset_name=( $( $_parset_parallel_prg --files -k "$@" |
|
eval "$_parset_NAME=( $(
|
||||||
perl -pe 'chop;$_="\"\`cat $_; rm $_\`\" "' ) )"
|
# Compute results into files. Save exit value
|
||||||
|
($_parset_PARALLEL_PRG --files -k "$@"; echo $? > "$_exit_FILE") |
|
||||||
|
perl -pe 'chop;$_="\"\`cat $_; rm $_\`\" "'
|
||||||
|
) )"
|
||||||
fi
|
fi
|
||||||
|
return `cat "$_exit_FILE"; rm "$_exit_FILE"`
|
||||||
}
|
}
|
||||||
|
|
|
@ -300,12 +300,12 @@ env_parallel() {
|
||||||
}
|
}
|
||||||
|
|
||||||
parset() {
|
parset() {
|
||||||
_parset_parallel_prg=parallel
|
_parset_PARALLEL_PRG=parallel
|
||||||
_parset_main "$@"
|
_parset_main "$@"
|
||||||
}
|
}
|
||||||
|
|
||||||
env_parset() {
|
env_parset() {
|
||||||
_parset_parallel_prg=env_parallel
|
_parset_PARALLEL_PRG=env_parallel
|
||||||
_parset_main "$@"
|
_parset_main "$@"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -328,15 +328,22 @@ _parset_main() {
|
||||||
# parset "var_a4 var_b4 var_c4" echo ::: {1..3}
|
# parset "var_a4 var_b4 var_c4" echo ::: {1..3}
|
||||||
# echo $var_c4
|
# echo $var_c4
|
||||||
|
|
||||||
_parset_name="$1"
|
_make_TEMP() {
|
||||||
if [ "$_parset_name" = "" ] ; then
|
# mktemp does not exist on some OS
|
||||||
|
perl -e 'use File::Temp qw(tempfile);
|
||||||
|
$ENV{"TMPDIR"} ||= "/tmp";
|
||||||
|
print((tempfile(DIR=>$ENV{"TMPDIR"}, TEMPLATE => "parXXXXX"))[1])'
|
||||||
|
}
|
||||||
|
|
||||||
|
_parset_NAME="$1"
|
||||||
|
if [ "$_parset_NAME" = "" ] ; then
|
||||||
echo parset: Error: No destination variable given. >&2
|
echo parset: Error: No destination variable given. >&2
|
||||||
echo parset: Error: Try: >&2
|
echo parset: Error: Try: >&2
|
||||||
echo parset: Error: ' ' parset myarray echo ::: foo bar >&2
|
echo parset: Error: ' ' parset myarray echo ::: foo bar >&2
|
||||||
return 255
|
return 255
|
||||||
fi
|
fi
|
||||||
shift
|
shift
|
||||||
echo "$_parset_name" |
|
echo "$_parset_NAME" |
|
||||||
perl -ne 'chomp;for (split /[, ]/) {
|
perl -ne 'chomp;for (split /[, ]/) {
|
||||||
# Allow: var_32 var[3]
|
# Allow: var_32 var[3]
|
||||||
if(not /^[a-zA-Z_][a-zA-Z_0-9]*(\[\d+\])?$/) {
|
if(not /^[a-zA-Z_][a-zA-Z_0-9]*(\[\d+\])?$/) {
|
||||||
|
@ -347,25 +354,30 @@ _parset_main() {
|
||||||
}
|
}
|
||||||
exit $exitval;
|
exit $exitval;
|
||||||
' || return 255
|
' || return 255
|
||||||
if perl -e 'exit not grep /,| /, @ARGV' "$_parset_name" ; then
|
_exit_FILE=`_make_TEMP`
|
||||||
# $_parset_name 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
|
# Split on , or space to get the names
|
||||||
eval "$(
|
eval "$(
|
||||||
# Compute results into files
|
# Compute results into files
|
||||||
$_parset_parallel_prg --files -k "$@" |
|
($_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 -q echo {2}='`cat {1}; rm {1}`' :::: - :::+ $(
|
parallel -q echo {2}='`cat {1}; rm {1}`' :::: - :::+ $(
|
||||||
echo "$_parset_name" |
|
echo "$_parset_NAME" | perl -pe 's/,/ /g'
|
||||||
perl -pe 's/,/ /g'
|
|
||||||
)
|
)
|
||||||
)"
|
);
|
||||||
|
"
|
||||||
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 zsh ksh
|
# Supported in: bash zsh ksh mksh
|
||||||
# Arrays do not work in: ash dash
|
# Arrays do not work in: sh ash dash
|
||||||
eval "$_parset_name=( $( $_parset_parallel_prg --files -k "$@" |
|
eval "$_parset_NAME=( $(
|
||||||
perl -pe 'chop;$_="\"\`cat $_; rm $_\`\" "' ) )"
|
# Compute results into files. Save exit value
|
||||||
|
($_parset_PARALLEL_PRG --files -k "$@"; echo $? > "$_exit_FILE") |
|
||||||
|
perl -pe 'chop;$_="\"\`cat $_; rm $_\`\" "'
|
||||||
|
) )"
|
||||||
fi
|
fi
|
||||||
|
return `cat "$_exit_FILE"; rm "$_exit_FILE"`
|
||||||
}
|
}
|
||||||
|
|
|
@ -300,12 +300,12 @@ env_parallel() {
|
||||||
}
|
}
|
||||||
|
|
||||||
parset() {
|
parset() {
|
||||||
_parset_parallel_prg=parallel
|
_parset_PARALLEL_PRG=parallel
|
||||||
_parset_main "$@"
|
_parset_main "$@"
|
||||||
}
|
}
|
||||||
|
|
||||||
env_parset() {
|
env_parset() {
|
||||||
_parset_parallel_prg=env_parallel
|
_parset_PARALLEL_PRG=env_parallel
|
||||||
_parset_main "$@"
|
_parset_main "$@"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -328,15 +328,22 @@ _parset_main() {
|
||||||
# parset "var_a4 var_b4 var_c4" echo ::: {1..3}
|
# parset "var_a4 var_b4 var_c4" echo ::: {1..3}
|
||||||
# echo $var_c4
|
# echo $var_c4
|
||||||
|
|
||||||
_parset_name="$1"
|
_make_TEMP() {
|
||||||
if [ "$_parset_name" = "" ] ; then
|
# mktemp does not exist on some OS
|
||||||
|
perl -e 'use File::Temp qw(tempfile);
|
||||||
|
$ENV{"TMPDIR"} ||= "/tmp";
|
||||||
|
print((tempfile(DIR=>$ENV{"TMPDIR"}, TEMPLATE => "parXXXXX"))[1])'
|
||||||
|
}
|
||||||
|
|
||||||
|
_parset_NAME="$1"
|
||||||
|
if [ "$_parset_NAME" = "" ] ; then
|
||||||
echo parset: Error: No destination variable given. >&2
|
echo parset: Error: No destination variable given. >&2
|
||||||
echo parset: Error: Try: >&2
|
echo parset: Error: Try: >&2
|
||||||
echo parset: Error: ' ' parset myarray echo ::: foo bar >&2
|
echo parset: Error: ' ' parset myarray echo ::: foo bar >&2
|
||||||
return 255
|
return 255
|
||||||
fi
|
fi
|
||||||
shift
|
shift
|
||||||
echo "$_parset_name" |
|
echo "$_parset_NAME" |
|
||||||
perl -ne 'chomp;for (split /[, ]/) {
|
perl -ne 'chomp;for (split /[, ]/) {
|
||||||
# Allow: var_32 var[3]
|
# Allow: var_32 var[3]
|
||||||
if(not /^[a-zA-Z_][a-zA-Z_0-9]*(\[\d+\])?$/) {
|
if(not /^[a-zA-Z_][a-zA-Z_0-9]*(\[\d+\])?$/) {
|
||||||
|
@ -347,25 +354,30 @@ _parset_main() {
|
||||||
}
|
}
|
||||||
exit $exitval;
|
exit $exitval;
|
||||||
' || return 255
|
' || return 255
|
||||||
if perl -e 'exit not grep /,| /, @ARGV' "$_parset_name" ; then
|
_exit_FILE=`_make_TEMP`
|
||||||
# $_parset_name 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
|
# Split on , or space to get the names
|
||||||
eval "`
|
eval "`
|
||||||
# Compute results into files
|
# Compute results into files
|
||||||
$_parset_parallel_prg --files -k "$@" |
|
($_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 -q echo {2}='\`cat {1}; rm {1}\`' :::: - :::+ \`
|
parallel -q echo {2}='\`cat {1}; rm {1}\`' :::: - :::+ \`
|
||||||
echo "$_parset_name" |
|
echo "$_parset_NAME" |
|
||||||
perl -pe 's/,/ /g'
|
perl -pe 's/,/ /g'
|
||||||
\`
|
\`
|
||||||
`"
|
`"
|
||||||
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 zsh ksh
|
# Supported in: bash zsh ksh mksh
|
||||||
# Arrays do not work in: ash dash
|
# Arrays do not work in: sh ash dash
|
||||||
eval "$_parset_name=( $( $_parset_parallel_prg --files -k "$@" |
|
eval "$_parset_NAME=( $(
|
||||||
perl -pe 'chop;$_="\"\`cat $_; rm $_\`\" "' ) )"
|
# Compute results into files. Save exit value
|
||||||
|
($_parset_PARALLEL_PRG --files -k "$@"; echo $? > "$_exit_FILE") |
|
||||||
|
perl -pe 'chop;$_="\"\`cat $_; rm $_\`\" "'
|
||||||
|
) )"
|
||||||
fi
|
fi
|
||||||
|
return `cat "$_exit_FILE"; rm "$_exit_FILE"`
|
||||||
}
|
}
|
||||||
|
|
|
@ -48,7 +48,6 @@ env_parallel() {
|
||||||
typeset +p -f | perl -pe 's/\(\).*//'
|
typeset +p -f | perl -pe 's/\(\).*//'
|
||||||
}
|
}
|
||||||
_bodies_of_FUNCTIONS() {
|
_bodies_of_FUNCTIONS() {
|
||||||
# typeset -f "$@"
|
|
||||||
functions "$@"
|
functions "$@"
|
||||||
}
|
}
|
||||||
_names_of_VARIABLES() {
|
_names_of_VARIABLES() {
|
||||||
|
@ -284,12 +283,12 @@ env_parallel() {
|
||||||
}
|
}
|
||||||
|
|
||||||
parset() {
|
parset() {
|
||||||
_parset_parallel_prg=parallel
|
_parset_PARALLEL_PRG=parallel
|
||||||
_parset_main "$@"
|
_parset_main "$@"
|
||||||
}
|
}
|
||||||
|
|
||||||
env_parset() {
|
env_parset() {
|
||||||
_parset_parallel_prg=env_parallel
|
_parset_PARALLEL_PRG=env_parallel
|
||||||
_parset_main "$@"
|
_parset_main "$@"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -312,15 +311,22 @@ _parset_main() {
|
||||||
# parset "var_a4 var_b4 var_c4" echo ::: {1..3}
|
# parset "var_a4 var_b4 var_c4" echo ::: {1..3}
|
||||||
# echo $var_c4
|
# echo $var_c4
|
||||||
|
|
||||||
_parset_name="$1"
|
_make_TEMP() {
|
||||||
if [ "$_parset_name" = "" ] ; then
|
# mktemp does not exist on some OS
|
||||||
|
perl -e 'use File::Temp qw(tempfile);
|
||||||
|
$ENV{"TMPDIR"} ||= "/tmp";
|
||||||
|
print((tempfile(DIR=>$ENV{"TMPDIR"}, TEMPLATE => "parXXXXX"))[1])'
|
||||||
|
}
|
||||||
|
|
||||||
|
_parset_NAME="$1"
|
||||||
|
if [ "$_parset_NAME" = "" ] ; then
|
||||||
echo parset: Error: No destination variable given. >&2
|
echo parset: Error: No destination variable given. >&2
|
||||||
echo parset: Error: Try: >&2
|
echo parset: Error: Try: >&2
|
||||||
echo parset: Error: ' ' parset myarray echo ::: foo bar >&2
|
echo parset: Error: ' ' parset myarray echo ::: foo bar >&2
|
||||||
return 255
|
return 255
|
||||||
fi
|
fi
|
||||||
shift
|
shift
|
||||||
echo "$_parset_name" |
|
echo "$_parset_NAME" |
|
||||||
perl -ne 'chomp;for (split /[, ]/) {
|
perl -ne 'chomp;for (split /[, ]/) {
|
||||||
# Allow: var_32 var[3]
|
# Allow: var_32 var[3]
|
||||||
if(not /^[a-zA-Z_][a-zA-Z_0-9]*(\[\d+\])?$/) {
|
if(not /^[a-zA-Z_][a-zA-Z_0-9]*(\[\d+\])?$/) {
|
||||||
|
@ -331,25 +337,30 @@ _parset_main() {
|
||||||
}
|
}
|
||||||
exit $exitval;
|
exit $exitval;
|
||||||
' || return 255
|
' || return 255
|
||||||
if perl -e 'exit not grep /,| /, @ARGV' "$_parset_name" ; then
|
_exit_FILE=`_make_TEMP`
|
||||||
# $_parset_name 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
|
# Split on , or space to get the names
|
||||||
eval "`
|
eval "$(
|
||||||
# Compute results into files
|
# Compute results into files
|
||||||
$_parset_parallel_prg --files -k "$@" |
|
($_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 -q echo {2}='\`cat {1}; rm {1}\`' :::: - :::+ \`
|
parallel -q echo {2}='`cat {1}; rm {1}`' :::: - :::+ $(
|
||||||
echo "$_parset_name" |
|
echo "$_parset_NAME" | perl -pe 's/,/ /g'
|
||||||
perl -pe 's/,/ /g'
|
)
|
||||||
\`
|
);
|
||||||
`"
|
"
|
||||||
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 zsh ksh
|
# Supported in: bash zsh ksh mksh
|
||||||
# Arrays do not work in: ash dash
|
# Arrays do not work in: sh ash dash
|
||||||
eval "$_parset_name=( $( $_parset_parallel_prg --files -k "$@" |
|
eval "$_parset_NAME=( $(
|
||||||
perl -pe 'chop;$_="\"\`cat $_; rm $_\`\" "' ) )"
|
# Compute results into files. Save exit value
|
||||||
|
($_parset_PARALLEL_PRG --files -k "$@"; echo $? > "$_exit_FILE") |
|
||||||
|
perl -pe 'chop;$_="\"\`cat $_; rm $_\`\" "'
|
||||||
|
) )"
|
||||||
fi
|
fi
|
||||||
|
return `cat "$_exit_FILE"; rm "$_exit_FILE"`
|
||||||
}
|
}
|
||||||
|
|
|
@ -286,12 +286,12 @@ env_parallel() {
|
||||||
}
|
}
|
||||||
|
|
||||||
parset() {
|
parset() {
|
||||||
_parset_parallel_prg=parallel
|
_parset_PARALLEL_PRG=parallel
|
||||||
_parset_main "$@"
|
_parset_main "$@"
|
||||||
}
|
}
|
||||||
|
|
||||||
env_parset() {
|
env_parset() {
|
||||||
_parset_parallel_prg=env_parallel
|
_parset_PARALLEL_PRG=env_parallel
|
||||||
_parset_main "$@"
|
_parset_main "$@"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -314,15 +314,22 @@ _parset_main() {
|
||||||
# parset "var_a4 var_b4 var_c4" echo ::: {1..3}
|
# parset "var_a4 var_b4 var_c4" echo ::: {1..3}
|
||||||
# echo $var_c4
|
# echo $var_c4
|
||||||
|
|
||||||
_parset_name="$1"
|
_make_TEMP() {
|
||||||
if [ "$_parset_name" = "" ] ; then
|
# mktemp does not exist on some OS
|
||||||
|
perl -e 'use File::Temp qw(tempfile);
|
||||||
|
$ENV{"TMPDIR"} ||= "/tmp";
|
||||||
|
print((tempfile(DIR=>$ENV{"TMPDIR"}, TEMPLATE => "parXXXXX"))[1])'
|
||||||
|
}
|
||||||
|
|
||||||
|
_parset_NAME="$1"
|
||||||
|
if [ "$_parset_NAME" = "" ] ; then
|
||||||
echo parset: Error: No destination variable given. >&2
|
echo parset: Error: No destination variable given. >&2
|
||||||
echo parset: Error: Try: >&2
|
echo parset: Error: Try: >&2
|
||||||
echo parset: Error: ' ' parset myarray echo ::: foo bar >&2
|
echo parset: Error: ' ' parset myarray echo ::: foo bar >&2
|
||||||
return 255
|
return 255
|
||||||
fi
|
fi
|
||||||
shift
|
shift
|
||||||
echo "$_parset_name" |
|
echo "$_parset_NAME" |
|
||||||
perl -ne 'chomp;for (split /[, ]/) {
|
perl -ne 'chomp;for (split /[, ]/) {
|
||||||
# Allow: var_32 var[3]
|
# Allow: var_32 var[3]
|
||||||
if(not /^[a-zA-Z_][a-zA-Z_0-9]*(\[\d+\])?$/) {
|
if(not /^[a-zA-Z_][a-zA-Z_0-9]*(\[\d+\])?$/) {
|
||||||
|
@ -333,25 +340,30 @@ _parset_main() {
|
||||||
}
|
}
|
||||||
exit $exitval;
|
exit $exitval;
|
||||||
' || return 255
|
' || return 255
|
||||||
if perl -e 'exit not grep /,| /, @ARGV' "$_parset_name" ; then
|
_exit_FILE=`_make_TEMP`
|
||||||
# $_parset_name 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
|
# Split on , or space to get the names
|
||||||
eval "`
|
eval "$(
|
||||||
# Compute results into files
|
# Compute results into files
|
||||||
$_parset_parallel_prg --files -k "$@" |
|
($_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 -q echo {2}='\`cat {1}; rm {1}\`' :::: - :::+ \`
|
parallel -q echo {2}='`cat {1}; rm {1}`' :::: - :::+ $(
|
||||||
echo "$_parset_name" |
|
echo "$_parset_NAME" | perl -pe 's/,/ /g'
|
||||||
perl -pe 's/,/ /g'
|
)
|
||||||
\`
|
);
|
||||||
`"
|
"
|
||||||
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 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
|
||||||
eval "$_parset_name=( $( $_parset_parallel_prg --files -k "$@" |
|
eval "$_parset_NAME=( $(
|
||||||
perl -pe 'chop;$_="\"\`cat $_; rm $_\`\" "' ) )"
|
# Compute results into files. Save exit value
|
||||||
|
($_parset_PARALLEL_PRG --files -k "$@"; echo $? > "$_exit_FILE") |
|
||||||
|
perl -pe 'chop;$_="\"\`cat $_; rm $_\`\" "'
|
||||||
|
) )"
|
||||||
fi
|
fi
|
||||||
|
return `cat "$_exit_FILE"; rm "$_exit_FILE"`
|
||||||
}
|
}
|
||||||
|
|
|
@ -300,12 +300,12 @@ env_parallel() {
|
||||||
}
|
}
|
||||||
|
|
||||||
parset() {
|
parset() {
|
||||||
_parset_parallel_prg=parallel
|
_parset_PARALLEL_PRG=parallel
|
||||||
_parset_main "$@"
|
_parset_main "$@"
|
||||||
}
|
}
|
||||||
|
|
||||||
env_parset() {
|
env_parset() {
|
||||||
_parset_parallel_prg=env_parallel
|
_parset_PARALLEL_PRG=env_parallel
|
||||||
_parset_main "$@"
|
_parset_main "$@"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -328,15 +328,22 @@ _parset_main() {
|
||||||
# parset "var_a4 var_b4 var_c4" echo ::: {1..3}
|
# parset "var_a4 var_b4 var_c4" echo ::: {1..3}
|
||||||
# echo $var_c4
|
# echo $var_c4
|
||||||
|
|
||||||
_parset_name="$1"
|
_make_TEMP() {
|
||||||
if [ "$_parset_name" = "" ] ; then
|
# mktemp does not exist on some OS
|
||||||
|
perl -e 'use File::Temp qw(tempfile);
|
||||||
|
$ENV{"TMPDIR"} ||= "/tmp";
|
||||||
|
print((tempfile(DIR=>$ENV{"TMPDIR"}, TEMPLATE => "parXXXXX"))[1])'
|
||||||
|
}
|
||||||
|
|
||||||
|
_parset_NAME="$1"
|
||||||
|
if [ "$_parset_NAME" = "" ] ; then
|
||||||
echo parset: Error: No destination variable given. >&2
|
echo parset: Error: No destination variable given. >&2
|
||||||
echo parset: Error: Try: >&2
|
echo parset: Error: Try: >&2
|
||||||
echo parset: Error: ' ' parset myarray echo ::: foo bar >&2
|
echo parset: Error: ' ' parset myarray echo ::: foo bar >&2
|
||||||
return 255
|
return 255
|
||||||
fi
|
fi
|
||||||
shift
|
shift
|
||||||
echo "$_parset_name" |
|
echo "$_parset_NAME" |
|
||||||
perl -ne 'chomp;for (split /[, ]/) {
|
perl -ne 'chomp;for (split /[, ]/) {
|
||||||
# Allow: var_32 var[3]
|
# Allow: var_32 var[3]
|
||||||
if(not /^[a-zA-Z_][a-zA-Z_0-9]*(\[\d+\])?$/) {
|
if(not /^[a-zA-Z_][a-zA-Z_0-9]*(\[\d+\])?$/) {
|
||||||
|
@ -347,25 +354,30 @@ _parset_main() {
|
||||||
}
|
}
|
||||||
exit $exitval;
|
exit $exitval;
|
||||||
' || return 255
|
' || return 255
|
||||||
if perl -e 'exit not grep /,| /, @ARGV' "$_parset_name" ; then
|
_exit_FILE=`_make_TEMP`
|
||||||
# $_parset_name 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
|
# Split on , or space to get the names
|
||||||
eval "`
|
eval "`
|
||||||
# Compute results into files
|
# Compute results into files
|
||||||
$_parset_parallel_prg --files -k "$@" |
|
($_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 -q echo {2}='\`cat {1}; rm {1}\`' :::: - :::+ \`
|
parallel -q echo {2}='\`cat {1}; rm {1}\`' :::: - :::+ \`
|
||||||
echo "$_parset_name" |
|
echo "$_parset_NAME" |
|
||||||
perl -pe 's/,/ /g'
|
perl -pe 's/,/ /g'
|
||||||
\`
|
\`
|
||||||
`"
|
`"
|
||||||
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 zsh ksh
|
# Supported in: bash zsh ksh mksh
|
||||||
# Arrays do not work in: ash dash
|
# Arrays do not work in: sh ash dash
|
||||||
eval "$_parset_name=( $( $_parset_parallel_prg --files -k "$@" |
|
eval "$_parset_NAME=( $(
|
||||||
perl -pe 'chop;$_="\"\`cat $_; rm $_\`\" "' ) )"
|
# Compute results into files. Save exit value
|
||||||
|
($_parset_PARALLEL_PRG --files -k "$@"; echo $? > "$_exit_FILE") |
|
||||||
|
perl -pe 'chop;$_="\"\`cat $_; rm $_\`\" "'
|
||||||
|
) )"
|
||||||
fi
|
fi
|
||||||
|
return `cat "$_exit_FILE"; rm "$_exit_FILE"`
|
||||||
}
|
}
|
||||||
|
|
|
@ -277,12 +277,12 @@ env_parallel() {
|
||||||
}
|
}
|
||||||
|
|
||||||
parset() {
|
parset() {
|
||||||
_parset_parallel_prg=parallel
|
_parset_PARALLEL_PRG=parallel
|
||||||
_parset_main "$@"
|
_parset_main "$@"
|
||||||
}
|
}
|
||||||
|
|
||||||
env_parset() {
|
env_parset() {
|
||||||
_parset_parallel_prg=env_parallel
|
_parset_PARALLEL_PRG=env_parallel
|
||||||
_parset_main "$@"
|
_parset_main "$@"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -305,15 +305,22 @@ _parset_main() {
|
||||||
# parset "var_a4 var_b4 var_c4" echo ::: {1..3}
|
# parset "var_a4 var_b4 var_c4" echo ::: {1..3}
|
||||||
# echo $var_c4
|
# echo $var_c4
|
||||||
|
|
||||||
_parset_name="$1"
|
_make_TEMP() {
|
||||||
if [ "$_parset_name" = "" ] ; then
|
# mktemp does not exist on some OS
|
||||||
|
perl -e 'use File::Temp qw(tempfile);
|
||||||
|
$ENV{"TMPDIR"} ||= "/tmp";
|
||||||
|
print((tempfile(DIR=>$ENV{"TMPDIR"}, TEMPLATE => "parXXXXX"))[1])'
|
||||||
|
}
|
||||||
|
|
||||||
|
_parset_NAME="$1"
|
||||||
|
if [ "$_parset_NAME" = "" ] ; then
|
||||||
echo parset: Error: No destination variable given. >&2
|
echo parset: Error: No destination variable given. >&2
|
||||||
echo parset: Error: Try: >&2
|
echo parset: Error: Try: >&2
|
||||||
echo parset: Error: ' ' parset myarray echo ::: foo bar >&2
|
echo parset: Error: ' ' parset myarray echo ::: foo bar >&2
|
||||||
return 255
|
return 255
|
||||||
fi
|
fi
|
||||||
shift
|
shift
|
||||||
echo "$_parset_name" |
|
echo "$_parset_NAME" |
|
||||||
perl -ne 'chomp;for (split /[, ]/) {
|
perl -ne 'chomp;for (split /[, ]/) {
|
||||||
# Allow: var_32 var[3]
|
# Allow: var_32 var[3]
|
||||||
if(not /^[a-zA-Z_][a-zA-Z_0-9]*(\[\d+\])?$/) {
|
if(not /^[a-zA-Z_][a-zA-Z_0-9]*(\[\d+\])?$/) {
|
||||||
|
@ -324,25 +331,30 @@ _parset_main() {
|
||||||
}
|
}
|
||||||
exit $exitval;
|
exit $exitval;
|
||||||
' || return 255
|
' || return 255
|
||||||
if perl -e 'exit not grep /,| /, @ARGV' "$_parset_name" ; then
|
_exit_FILE=`_make_TEMP`
|
||||||
# $_parset_name 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
|
# Split on , or space to get the names
|
||||||
eval "`
|
eval "$(
|
||||||
# Compute results into files
|
# Compute results into files
|
||||||
$_parset_parallel_prg --files -k "$@" |
|
($_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 -q echo {2}='\`cat {1}; rm {1}\`' :::: - :::+ \`
|
parallel -q echo {2}='`cat {1}; rm {1}`' :::: - :::+ $(
|
||||||
echo "$_parset_name" |
|
echo "$_parset_NAME" | perl -pe 's/,/ /g'
|
||||||
perl -pe 's/,/ /g'
|
)
|
||||||
\`
|
);
|
||||||
`"
|
"
|
||||||
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 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
|
||||||
eval "$_parset_name=( $( $_parset_parallel_prg --files -k "$@" |
|
eval "$_parset_NAME=( $(
|
||||||
perl -pe 'chop;$_="\"\`cat $_; rm $_\`\" "' ) )"
|
# Compute results into files. Save exit value
|
||||||
|
($_parset_PARALLEL_PRG --files -k "$@"; echo $? > "$_exit_FILE") |
|
||||||
|
perl -pe 'chop;$_="\"\`cat $_; rm $_\`\" "'
|
||||||
|
) )"
|
||||||
fi
|
fi
|
||||||
|
return `cat "$_exit_FILE"; rm "$_exit_FILE"`
|
||||||
}
|
}
|
||||||
|
|
|
@ -36,7 +36,10 @@ run 1 second, suspend (3.00-1.00) seconds, run 1 second, suspend
|
||||||
|
|
||||||
=item B<--battery>
|
=item B<--battery>
|
||||||
|
|
||||||
Suspend if the system is running on battery. Shorthand for: -l -1 --sensor 'cat /sys/class/power_supply/BAT0/status /proc/acpi/battery/BAT0/state 2>/dev/null |grep -i -q discharging; echo $?'
|
Suspend if the system is running on battery. Shorthand for:
|
||||||
|
-l -1 --sensor 'cat /sys/class/power_supply/BAT0/status
|
||||||
|
/proc/acpi/battery/BAT0/state 2>/dev/null | grep -i -q discharging;
|
||||||
|
echo $?'
|
||||||
|
|
||||||
|
|
||||||
=item B<-f> I<FACTOR>
|
=item B<-f> I<FACTOR>
|
||||||
|
@ -62,7 +65,7 @@ under the limits. The default is B<--soft>.
|
||||||
Limit for I/O. The amount of disk I/O will be computed as a value 0 -
|
Limit for I/O. The amount of disk I/O will be computed as a value 0 -
|
||||||
10, where 0 is no I/O and 10 is at least one disk is 100% saturated.
|
10, where 0 is no I/O and 10 is at least one disk is 100% saturated.
|
||||||
|
|
||||||
B<--io> will set both B<--start-io> and B<run-io>.
|
B<--io> will set both B<--start-io> and B<--run-io>.
|
||||||
|
|
||||||
|
|
||||||
=item B<--load> I<loadlimit>
|
=item B<--load> I<loadlimit>
|
||||||
|
@ -71,7 +74,7 @@ B<--io> will set both B<--start-io> and B<run-io>.
|
||||||
|
|
||||||
Limit for load average.
|
Limit for load average.
|
||||||
|
|
||||||
B<--load> will set both B<--start-load> and B<run-load>.
|
B<--load> will set both B<--start-load> and B<--run-load>.
|
||||||
|
|
||||||
|
|
||||||
=item B<--mem> I<memlimit>
|
=item B<--mem> I<memlimit>
|
||||||
|
@ -87,7 +90,7 @@ I<memlimit> can be postfixed with K, M, G, T, or P which would
|
||||||
multiply the size with 1024, 1048576, 1073741824, or 1099511627776
|
multiply the size with 1024, 1048576, 1073741824, or 1099511627776
|
||||||
respectively.
|
respectively.
|
||||||
|
|
||||||
B<--mem> will set both B<--start-mem> and B<run-mem>.
|
B<--mem> will set both B<--start-mem> and B<--run-mem>.
|
||||||
|
|
||||||
|
|
||||||
=item B<--noswap>
|
=item B<--noswap>
|
||||||
|
@ -99,7 +102,7 @@ indication that the system is memory stressed.
|
||||||
|
|
||||||
B<--noswap> is over limit if the system is swapping both in and out.
|
B<--noswap> is over limit if the system is swapping both in and out.
|
||||||
|
|
||||||
B<--noswap> will set both B<--start-noswap> and B<run-noswap>.
|
B<--noswap> will set both B<--start-noswap> and B<--run-noswap>.
|
||||||
|
|
||||||
|
|
||||||
=item B<--net>
|
=item B<--net>
|
||||||
|
@ -251,18 +254,19 @@ CPU. When the load rises to 1.0 the process is suspended.
|
||||||
|
|
||||||
=head1 EXAMPLE: Run updatedb
|
=head1 EXAMPLE: Run updatedb
|
||||||
|
|
||||||
Running updatedb can often starve the system for disk I/O and thus result in a high load.
|
Running B<updatedb> can often starve the system for disk I/O and thus result in a high load.
|
||||||
|
|
||||||
Run updatedb but suspend updatedb if the load is above 2.00:
|
Run B<updatedb> but suspend B<updatedb> if the load is above 2.00:
|
||||||
|
|
||||||
B<niceload -L 2 updatedb>
|
B<niceload -L 2 updatedb>
|
||||||
|
|
||||||
|
|
||||||
=head1 EXAMPLE: Run rsync
|
=head1 EXAMPLE: Run rsync
|
||||||
|
|
||||||
rsync can just like updatedb starve the system for disk I/O and thus result in a high load.
|
B<rsync> can, just like B<updatedb>, starve the system for disk I/O
|
||||||
|
and thus result in a high load.
|
||||||
|
|
||||||
Run rsync but keep load below 3.4. If load reaches 7 sleep for
|
Run B<rsync> but keep load below 3.4. If load reaches 7 sleep for
|
||||||
(7-3.4)*12 seconds:
|
(7-3.4)*12 seconds:
|
||||||
|
|
||||||
B<niceload -L 3.4 -f 12 rsync -Ha /home/ /backup/home/>
|
B<niceload -L 3.4 -f 12 rsync -Ha /home/ /backup/home/>
|
||||||
|
|
10
src/parallel
10
src/parallel
|
@ -1891,7 +1891,7 @@ sub open_joblog {
|
||||||
$/ = "\0";
|
$/ = "\0";
|
||||||
}
|
}
|
||||||
# Replace \0 with '\n' as used in print_joblog()
|
# Replace \0 with '\n' as used in print_joblog()
|
||||||
print $outfh map { s/\0/\n/g; $_,$/ } @group;
|
print $outfh map { s/\0/\n/g; $_,$/ } map { $_ } @group;
|
||||||
seek $outfh, 0, 0;
|
seek $outfh, 0, 0;
|
||||||
exit_if_disk_full();
|
exit_if_disk_full();
|
||||||
# Set filehandle to -a
|
# Set filehandle to -a
|
||||||
|
@ -6760,9 +6760,10 @@ sub sct_aix() {
|
||||||
close $in_fh;
|
close $in_fh;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
$cpu->{'sockets'} ||= $cpu->{'cores'};
|
|
||||||
|
|
||||||
if(grep { /\d/ } values %$cpu) {
|
if(grep { /\d/ } values %$cpu) {
|
||||||
|
# BUG It is not not known how to calculate this
|
||||||
|
$cpu->{'sockets'} = 1;
|
||||||
return $cpu;
|
return $cpu;
|
||||||
} else {
|
} else {
|
||||||
return undef;
|
return undef;
|
||||||
|
@ -6779,10 +6780,13 @@ sub sct_hpux() {
|
||||||
my $cpu;
|
my $cpu;
|
||||||
$cpu->{'cores'} =
|
$cpu->{'cores'} =
|
||||||
::qqx(qq{ /usr/bin/mpsched -s 2>&1 | grep 'Locality Domain Count' | awk '{ print \$4 }'});
|
::qqx(qq{ /usr/bin/mpsched -s 2>&1 | grep 'Locality Domain Count' | awk '{ print \$4 }'});
|
||||||
|
chomp($cpu->{'cores'});
|
||||||
$cpu->{'threads'} =
|
$cpu->{'threads'} =
|
||||||
::qqx(qq{ /usr/bin/mpsched -s 2>&1 | perl -ne '/Processor Count\\D+(\\d+)/ and print "\$1\n"'});
|
::qqx(qq{ /usr/bin/mpsched -s 2>&1 | perl -ne '/Processor Count\\D+(\\d+)/ and print "\$1"'});
|
||||||
|
|
||||||
if(grep { /\d/ } values %$cpu) {
|
if(grep { /\d/ } values %$cpu) {
|
||||||
|
# BUG It is not not known how to calculate this
|
||||||
|
$cpu->{'sockets'} = 1;
|
||||||
return $cpu;
|
return $cpu;
|
||||||
} else {
|
} else {
|
||||||
return undef;
|
return undef;
|
||||||
|
|
|
@ -4,21 +4,23 @@
|
||||||
|
|
||||||
=head1 NAME
|
=head1 NAME
|
||||||
|
|
||||||
parallel - build and execute shell command lines from standard input in parallel
|
parallel - build and execute shell command lines from standard input
|
||||||
|
in parallel
|
||||||
|
|
||||||
|
|
||||||
=head1 SYNOPSIS
|
=head1 SYNOPSIS
|
||||||
|
|
||||||
B<parallel> [options] [I<command> [arguments]] < list_of_arguments
|
B<parallel> [options] [I<command> [arguments]] < list_of_arguments
|
||||||
|
|
||||||
B<parallel> [options] [I<command> [arguments]] ( B<:::> arguments | B<:::+> arguments |
|
B<parallel> [options] [I<command> [arguments]] ( B<:::> arguments |
|
||||||
B<::::> argfile(s) | B<::::+> argfile(s) ) ...
|
B<:::+> arguments | B<::::> argfile(s) | B<::::+> argfile(s) ) ...
|
||||||
|
|
||||||
B<parallel> --semaphore [options] I<command>
|
B<parallel> --semaphore [options] I<command>
|
||||||
|
|
||||||
B<#!/usr/bin/parallel> --shebang [options] [I<command> [arguments]]
|
B<#!/usr/bin/parallel> --shebang [options] [I<command> [arguments]]
|
||||||
|
|
||||||
B<#!/usr/bin/parallel> --shebang-wrap [options] [I<command> [arguments]]
|
B<#!/usr/bin/parallel> --shebang-wrap [options] [I<command>
|
||||||
|
[arguments]]
|
||||||
|
|
||||||
|
|
||||||
=head1 DESCRIPTION
|
=head1 DESCRIPTION
|
||||||
|
@ -118,7 +120,7 @@ replacement string; then the string is not quoted.
|
||||||
|
|
||||||
Input line without extension. This replacement string will be replaced
|
Input line without extension. This replacement string will be replaced
|
||||||
by the input with the extension removed. If the input line contains
|
by the input with the extension removed. If the input line contains
|
||||||
B<.> after the last B</> the last B<.> till the end of the string will
|
B<.> after the last B</>, the last B<.> until the end of the string will
|
||||||
be removed and B<{.}> will be replaced with the
|
be removed and B<{.}> will be replaced with the
|
||||||
remaining. E.g. I<foo.jpg> becomes I<foo>, I<subdir/foo.jpg> becomes
|
remaining. E.g. I<foo.jpg> becomes I<foo>, I<subdir/foo.jpg> becomes
|
||||||
I<subdir/foo>, I<sub.dir/foo.jpg> becomes I<sub.dir/foo>,
|
I<subdir/foo>, I<sub.dir/foo.jpg> becomes I<sub.dir/foo>,
|
||||||
|
@ -659,7 +661,7 @@ equivalent: B<--delay 100000> and B<--delay 1d3.5h16.6m4s>.
|
||||||
Print the job to run on stdout (standard output), but do not run the
|
Print the job to run on stdout (standard output), but do not run the
|
||||||
job. Use B<-v -v> to include the wrapping that GNU Parallel generates
|
job. Use B<-v -v> to include the wrapping that GNU Parallel generates
|
||||||
(for remote jobs, B<--tmux>, B<--nice>, B<--pipe>, B<--pipepart>,
|
(for remote jobs, B<--tmux>, B<--nice>, B<--pipe>, B<--pipepart>,
|
||||||
B<--fifo> and B<--cat>). Do not count on this literaly, though, as the
|
B<--fifo> and B<--cat>). Do not count on this literally, though, as the
|
||||||
job may be scheduled on another computer or the local computer if : is
|
job may be scheduled on another computer or the local computer if : is
|
||||||
in the list.
|
in the list.
|
||||||
|
|
||||||
|
@ -773,7 +775,7 @@ may not be used. B<--gnu> is kept for compatibility.
|
||||||
=item B<--group>
|
=item B<--group>
|
||||||
|
|
||||||
Group output. Output from each job is grouped together and is only
|
Group output. Output from each job is grouped together and is only
|
||||||
printed when the command is finished. stdout (standard output) first
|
printed when the command is finished. Stdout (standard output) first
|
||||||
followed by stderr (standard error).
|
followed by stderr (standard error).
|
||||||
|
|
||||||
This takes in the order of 0.5ms per job and depends on the speed of
|
This takes in the order of 0.5ms per job and depends on the speed of
|
||||||
|
@ -855,7 +857,7 @@ exit when 3% of the jobs have finished. Kill running jobs.
|
||||||
|
|
||||||
=back
|
=back
|
||||||
|
|
||||||
For backwards compability these also work:
|
For backwards compatibility these also work:
|
||||||
|
|
||||||
=over 12
|
=over 12
|
||||||
|
|
||||||
|
@ -3052,11 +3054,11 @@ B<{=> and B<=}> mark a perl expression. B<pQ> perl-quotes the
|
||||||
string. B<date +%FT%T> is the date in ISO8601 with time.
|
string. B<date +%FT%T> is the date in ISO8601 with time.
|
||||||
|
|
||||||
|
|
||||||
=head1 EXAMPLE: Digtal clock with "blinking" :
|
=head1 EXAMPLE: Digital clock with "blinking" :
|
||||||
|
|
||||||
The : in a digital clock blinks. To make every other line have a ':'
|
The : in a digital clock blinks. To make every other line have a ':'
|
||||||
and the rest a ' ' a perl expression is used to look at the 3rd input
|
and the rest a ' ' a perl expression is used to look at the 3rd input
|
||||||
source. If the value modudo 2 is 1: Use ":" otherwise use " ":
|
source. If the value modulo 2 is 1: Use ":" otherwise use " ":
|
||||||
|
|
||||||
parallel -k echo {1}'{=3 $_=$_%2?":":" "=}'{2}{3} \
|
parallel -k echo {1}'{=3 $_=$_%2?":":" "=}'{2}{3} \
|
||||||
::: {0..12} ::: {0..5} ::: {0..9}
|
::: {0..12} ::: {0..5} ::: {0..9}
|
||||||
|
|
|
@ -205,7 +205,7 @@ composed commands and redirection require using B<bash -c>.
|
||||||
ls | parallel "wc {} >{}.wc"
|
ls | parallel "wc {} >{}.wc"
|
||||||
ls | parallel "echo {}; ls {}|wc"
|
ls | parallel "echo {}; ls {}|wc"
|
||||||
|
|
||||||
becomes (assuming you have 8 cores and that none of the file names
|
becomes (assuming you have 8 cores and that none of the filenames
|
||||||
contain space, " or ').
|
contain space, " or ').
|
||||||
|
|
||||||
ls | xargs -d "\n" -P8 -I {} bash -c "wc {} >{}.wc"
|
ls | xargs -d "\n" -P8 -I {} bash -c "wc {} >{}.wc"
|
||||||
|
@ -216,9 +216,9 @@ https://www.gnu.org/software/findutils/
|
||||||
|
|
||||||
=head2 DIFFERENCES BETWEEN find -exec AND GNU Parallel
|
=head2 DIFFERENCES BETWEEN find -exec AND GNU Parallel
|
||||||
|
|
||||||
B<find -exec> offer some of the same possibilities as GNU B<parallel>.
|
B<find -exec> offers some of the same possibilities as GNU B<parallel>.
|
||||||
|
|
||||||
B<find -exec> only works on files. So processing other input (such as
|
B<find -exec> only works on files. Processing other input (such as
|
||||||
hosts or URLs) will require creating these inputs as files. B<find
|
hosts or URLs) will require creating these inputs as files. B<find
|
||||||
-exec> has no support for running commands in parallel.
|
-exec> has no support for running commands in parallel.
|
||||||
|
|
||||||
|
@ -228,13 +228,13 @@ https://www.gnu.org/software/findutils/
|
||||||
=head2 DIFFERENCES BETWEEN make -j AND GNU Parallel
|
=head2 DIFFERENCES BETWEEN make -j AND GNU Parallel
|
||||||
|
|
||||||
B<make -j> can run jobs in parallel, but requires a crafted Makefile
|
B<make -j> can run jobs in parallel, but requires a crafted Makefile
|
||||||
to do this. That results in extra quoting to get filename containing
|
to do this. That results in extra quoting to get filenames containing
|
||||||
newline to work correctly.
|
newlines to work correctly.
|
||||||
|
|
||||||
B<make -j> computes a dependency graph before running jobs. Jobs run
|
B<make -j> computes a dependency graph before running jobs. Jobs run
|
||||||
by GNU B<parallel> does not depend on eachother.
|
by GNU B<parallel> does not depend on each other.
|
||||||
|
|
||||||
(Very early versions of GNU B<parallel> were coincidently implemented
|
(Very early versions of GNU B<parallel> were coincidentally implemented
|
||||||
using B<make -j>).
|
using B<make -j>).
|
||||||
|
|
||||||
https://www.gnu.org/software/make/
|
https://www.gnu.org/software/make/
|
||||||
|
@ -250,10 +250,10 @@ into files.
|
||||||
|
|
||||||
The argument replace string ($ITEM) cannot be changed. Arguments must
|
The argument replace string ($ITEM) cannot be changed. Arguments must
|
||||||
be quoted - thus arguments containing special characters (space '"&!*)
|
be quoted - thus arguments containing special characters (space '"&!*)
|
||||||
may cause problems. More than one argument is not supported. File
|
may cause problems. More than one argument is not supported. Filenames
|
||||||
names containing newlines are not processed correctly. When reading
|
containing newlines are not processed correctly. When reading input
|
||||||
input from a file null cannot be used as a terminator. B<ppss> needs
|
from a file null cannot be used as a terminator. B<ppss> needs to read
|
||||||
to read the whole input file before starting any jobs.
|
the whole input file before starting any jobs.
|
||||||
|
|
||||||
Output and status information is stored in ppss_dir and thus requires
|
Output and status information is stored in ppss_dir and thus requires
|
||||||
cleanup when completed. If the dir is not removed before running
|
cleanup when completed. If the dir is not removed before running
|
||||||
|
@ -615,7 +615,7 @@ https://github.com/cheusov/paexec
|
||||||
B<map> sees it as a feature to have less features and in doing so it
|
B<map> sees it as a feature to have less features and in doing so it
|
||||||
also handles corner cases incorrectly. A lot of GNU B<parallel>'s code
|
also handles corner cases incorrectly. A lot of GNU B<parallel>'s code
|
||||||
is to handle corner cases correctly on every platform, so you will not
|
is to handle corner cases correctly on every platform, so you will not
|
||||||
get a nasty surprise if a user for example saves a file called: I<My
|
get a nasty surprise if a user, for example, saves a file called: I<My
|
||||||
brother's 12" records.txt>
|
brother's 12" records.txt>
|
||||||
|
|
||||||
B<map>'s example showing how to deal with special characters fails on
|
B<map>'s example showing how to deal with special characters fails on
|
||||||
|
@ -756,7 +756,7 @@ B<jobflow> can run multiple jobs in parallel.
|
||||||
Just like B<xargs> output from B<jobflow> jobs running in parallel mix
|
Just like B<xargs> output from B<jobflow> jobs running in parallel mix
|
||||||
together by default. B<jobflow> can buffer into files (placed in
|
together by default. B<jobflow> can buffer into files (placed in
|
||||||
/run/shm), but these are not cleaned up - not even if B<jobflow> dies
|
/run/shm), but these are not cleaned up - not even if B<jobflow> dies
|
||||||
unexpectently. If the total output is big (in the order of RAM+swap)
|
unexpectedly. If the total output is big (in the order of RAM+swap)
|
||||||
it can cause the system to run out of memory.
|
it can cause the system to run out of memory.
|
||||||
|
|
||||||
B<jobflow> gives no error if the command is unknown, and like B<xargs>
|
B<jobflow> gives no error if the command is unknown, and like B<xargs>
|
||||||
|
@ -897,7 +897,7 @@ These do something different from GNU B<parallel>
|
||||||
Rust parallel has no remote facilities.
|
Rust parallel has no remote facilities.
|
||||||
|
|
||||||
It uses /tmp/parallel for tmp files and does not clean up if
|
It uses /tmp/parallel for tmp files and does not clean up if
|
||||||
terminated abrubtly. If another user on the system uses Rust parallel,
|
terminated abruptly. If another user on the system uses Rust parallel,
|
||||||
then /tmp/parallel will have the wrong permissions and Rust parallel
|
then /tmp/parallel will have the wrong permissions and Rust parallel
|
||||||
will fail. A malicious user can setup the right permissions and
|
will fail. A malicious user can setup the right permissions and
|
||||||
symlink the output file to one of the user's files and next time the
|
symlink the output file to one of the user's files and next time the
|
||||||
|
@ -1112,7 +1112,7 @@ B<15. Interrupt jobs by `Ctrl-C`, rush will stop unfinished commands and exit.>
|
||||||
^C
|
^C
|
||||||
|
|
||||||
B<16. Continue/resume jobs (`-c`). When some jobs failed (by
|
B<16. Continue/resume jobs (`-c`). When some jobs failed (by
|
||||||
execution failure, timeout, or cancelling by user with `Ctrl + C`),
|
execution failure, timeout, or canceling by user with `Ctrl + C`),
|
||||||
please switch flag `-c/--continue` on and run again, so that `rush`
|
please switch flag `-c/--continue` on and run again, so that `rush`
|
||||||
can save successful commands and ignore them in I<NEXT> run.>
|
can save successful commands and ignore them in I<NEXT> run.>
|
||||||
|
|
||||||
|
@ -1144,7 +1144,7 @@ Multi-line jobs:
|
||||||
|
|
||||||
B<17. A comprehensive example: downloading 1K+ pages given by
|
B<17. A comprehensive example: downloading 1K+ pages given by
|
||||||
three URL list files using `phantomjs save_page.js` (some page
|
three URL list files using `phantomjs save_page.js` (some page
|
||||||
contents are dynamicly generated by Javascript, so `wget` does not
|
contents are dynamically generated by Javascript, so `wget` does not
|
||||||
work). Here I set max jobs number (`-j`) as `20`, each job has a max
|
work). Here I set max jobs number (`-j`) as `20`, each job has a max
|
||||||
running time (`-t`) of `60` seconds and `3` retry changes
|
running time (`-t`) of `60` seconds and `3` retry changes
|
||||||
(`-r`). Continue flag `-c` is also switched on, so we can continue
|
(`-r`). Continue flag `-c` is also switched on, so we can continue
|
||||||
|
@ -1298,7 +1298,7 @@ double space, ' and ":
|
||||||
=item * Commands of multi-lines
|
=item * Commands of multi-lines
|
||||||
|
|
||||||
While you I<can> use multi-lined commands in GNU B<parallel>, to
|
While you I<can> use multi-lined commands in GNU B<parallel>, to
|
||||||
improve readibilty GNU B<parallel> discourages the use of multi-line
|
improve readability GNU B<parallel> discourages the use of multi-line
|
||||||
commands. In most cases it can be written as a function:
|
commands. In most cases it can be written as a function:
|
||||||
|
|
||||||
seq 1 3 |
|
seq 1 3 |
|
||||||
|
@ -1376,7 +1376,7 @@ It can be emulated with GNU B<parallel> using this Bash function:
|
||||||
parallel $(_cmds "$@")'|| echo exit status $?' ::: */
|
parallel $(_cmds "$@")'|| echo exit status $?' ::: */
|
||||||
}
|
}
|
||||||
|
|
||||||
This works execpt for the B<--exclude> option.
|
This works except for the B<--exclude> option.
|
||||||
|
|
||||||
|
|
||||||
=head2 DIFFERENCES BETWEEN pyargs AND GNU Parallel
|
=head2 DIFFERENCES BETWEEN pyargs AND GNU Parallel
|
||||||
|
@ -1432,7 +1432,7 @@ The output is prepended with the job number, and may be incomplete:
|
||||||
7165
|
7165
|
||||||
|
|
||||||
When pretty printing it caches output in memory. Output mixes by using
|
When pretty printing it caches output in memory. Output mixes by using
|
||||||
test MIX below wether or not output is cached.
|
test MIX below whether or not output is cached.
|
||||||
|
|
||||||
There seems to be no way of making a template command and have
|
There seems to be no way of making a template command and have
|
||||||
B<concurrently> fill that with different args. The full commands must
|
B<concurrently> fill that with different args. The full commands must
|
||||||
|
@ -1457,7 +1457,7 @@ B<map> itself, the output also mixes:
|
||||||
|
|
||||||
seq 10 | map i 'echo start-$i && sleep 0.$i && echo end-$i &'
|
seq 10 | map i 'echo start-$i && sleep 0.$i && echo end-$i &'
|
||||||
|
|
||||||
The major difference is that GNU B<parallel> is build for parallelization
|
The major difference is that GNU B<parallel> is built for parallelization
|
||||||
and map is not. So GNU B<parallel> has lots of ways of dealing with the
|
and map is not. So GNU B<parallel> has lots of ways of dealing with the
|
||||||
issues that parallelization raises:
|
issues that parallelization raises:
|
||||||
|
|
||||||
|
@ -1490,7 +1490,7 @@ Here are the 5 examples converted to GNU Parallel:
|
||||||
|
|
||||||
4$ printf "1\n1\n1\n" | map t 'sleep $t && say done'
|
4$ printf "1\n1\n1\n" | map t 'sleep $t && say done'
|
||||||
4$ printf "1\n1\n1\n" | parallel 'sleep {} && say done'
|
4$ printf "1\n1\n1\n" | parallel 'sleep {} && say done'
|
||||||
4$ paralllel 'sleep {} && say done' ::: 1 1 1
|
4$ parallel 'sleep {} && say done' ::: 1 1 1
|
||||||
|
|
||||||
5$ printf "1\n1\n1\n" | map t 'sleep $t && say done &'
|
5$ printf "1\n1\n1\n" | map t 'sleep $t && say done &'
|
||||||
5$ printf "1\n1\n1\n" | parallel -j0 'sleep {} && say done'
|
5$ printf "1\n1\n1\n" | parallel -j0 'sleep {} && say done'
|
||||||
|
|
|
@ -15,7 +15,7 @@ situations, and to avoid overloading you with information, the most
|
||||||
used features are presented first.
|
used features are presented first.
|
||||||
|
|
||||||
All the examples are tested in Bash, and most will work in other
|
All the examples are tested in Bash, and most will work in other
|
||||||
shells, too, but there are a few exceptions. So you are recommened to
|
shells, too, but there are a few exceptions. So you are recommended to
|
||||||
use Bash while testing out the examples.
|
use Bash while testing out the examples.
|
||||||
|
|
||||||
|
|
||||||
|
@ -209,8 +209,8 @@ If the input is B<mydir/mysubdir/myfile.myext> then:
|
||||||
{#} = the sequence number of the job
|
{#} = the sequence number of the job
|
||||||
{%} = the job slot number
|
{%} = the job slot number
|
||||||
|
|
||||||
When a job is started it gets sequence number that starts at 1 and
|
When a job is started it gets a sequence number that starts at 1 and
|
||||||
increases with 1 for each new job. The job also gets assigned a slot
|
increases by 1 for each new job. The job also gets assigned a slot
|
||||||
number. This number is from 1 to the number of jobs running in
|
number. This number is from 1 to the number of jobs running in
|
||||||
parallel. It is unique between the running jobs, but is re-used as
|
parallel. It is unique between the running jobs, but is re-used as
|
||||||
soon as a job finishes.
|
soon as a job finishes.
|
||||||
|
@ -349,7 +349,7 @@ A shorthand for B<--transfer --return {} --cleanup> is B<--trc {}>.
|
||||||
|
|
||||||
=head1 Advanced usage
|
=head1 Advanced usage
|
||||||
|
|
||||||
parset fifo, cmd substtition, arrayelements, array with var names and cmds, env_parset
|
parset fifo, cmd substitution, arrayelements, array with var names and cmds, env_parset
|
||||||
|
|
||||||
|
|
||||||
env_parallel
|
env_parallel
|
||||||
|
@ -384,7 +384,7 @@ Interfacing with HTML/?
|
||||||
|
|
||||||
seq 10 | parallel --sshlogin 'ssh -i "key.pem" a@b.com' echo
|
seq 10 | parallel --sshlogin 'ssh -i "key.pem" a@b.com' echo
|
||||||
|
|
||||||
seq 10 | PARALLLEL_SSH='ssh -i "key.pem"' parallel --sshlogin a@b.com echo
|
seq 10 | PARALLEL_SSH='ssh -i "key.pem"' parallel --sshlogin a@b.com echo
|
||||||
|
|
||||||
seq 10 | parallel --ssh 'ssh -i "key.pem"' --sshlogin a@b.com echo
|
seq 10 | parallel --ssh 'ssh -i "key.pem"' --sshlogin a@b.com echo
|
||||||
|
|
||||||
|
|
|
@ -213,10 +213,10 @@ error (stderr).
|
||||||
|
|
||||||
GNU B<parallel> pipes output from the command run into the compression
|
GNU B<parallel> pipes output from the command run into the compression
|
||||||
program which saves to a tmpfile. GNU B<parallel> records the pid of
|
program which saves to a tmpfile. GNU B<parallel> records the pid of
|
||||||
the compress program. At the same time a small perl script (called
|
the compress program. At the same time a small Perl script (called
|
||||||
B<cattail> above) is started: It basically does B<cat> followed by
|
B<cattail> above) is started: It basically does B<cat> followed by
|
||||||
B<tail -f>, but it also removes the tmpfile as soon as the first byte
|
B<tail -f>, but it also removes the tmpfile as soon as the first byte
|
||||||
is read, and it continously checks if the pid of the compression
|
is read, and it continuously checks if the pid of the compression
|
||||||
program is dead. If the compress program is dead, B<cattail> reads the
|
program is dead. If the compress program is dead, B<cattail> reads the
|
||||||
rest of tmpfile and exits.
|
rest of tmpfile and exits.
|
||||||
|
|
||||||
|
@ -539,7 +539,7 @@ needs to know how to read the function.
|
||||||
|
|
||||||
From version 20150122 GNU B<parallel> tries both the ()-version and
|
From version 20150122 GNU B<parallel> tries both the ()-version and
|
||||||
the %%-version, and the function definition works on both pre- and
|
the %%-version, and the function definition works on both pre- and
|
||||||
post-shellshock versions of B<bash>.
|
post-shell shock versions of B<bash>.
|
||||||
|
|
||||||
|
|
||||||
=head2 The remote system wrapper
|
=head2 The remote system wrapper
|
||||||
|
@ -1183,7 +1183,7 @@ software, username, password, host, port, database, and table in a
|
||||||
single string.
|
single string.
|
||||||
|
|
||||||
The DBURL must point to a table name. The table will be dropped and
|
The DBURL must point to a table name. The table will be dropped and
|
||||||
created. The reason for not reusing an exising table is that the user
|
created. The reason for not reusing an existing table is that the user
|
||||||
may have added more input sources which would require more columns in
|
may have added more input sources which would require more columns in
|
||||||
the table. By prepending '+' to the DBURL the table will not be
|
the table. By prepending '+' to the DBURL the table will not be
|
||||||
dropped.
|
dropped.
|
||||||
|
@ -1239,7 +1239,7 @@ instead? See a list in: B<man parallel_alternatives>.
|
||||||
=head2 Multiple processes working together
|
=head2 Multiple processes working together
|
||||||
|
|
||||||
Open3 is slow. Printing is slow. It would be good if they did not tie
|
Open3 is slow. Printing is slow. It would be good if they did not tie
|
||||||
up ressources, but were run in separate threads.
|
up resources, but were run in separate threads.
|
||||||
|
|
||||||
|
|
||||||
=head2 --rrs on remote using a perl wrapper
|
=head2 --rrs on remote using a perl wrapper
|
||||||
|
|
|
@ -2906,7 +2906,7 @@ Output:
|
||||||
=head2 Timeout
|
=head2 Timeout
|
||||||
|
|
||||||
With B<--semaphoretimeout> you can force running the command anyway after
|
With B<--semaphoretimeout> you can force running the command anyway after
|
||||||
a period (postive number) or give up (negative number):
|
a period (positive number) or give up (negative number):
|
||||||
|
|
||||||
sem --id foo -u 'echo Slow started; sleep 5; echo Slow ended' &&
|
sem --id foo -u 'echo Slow started; sleep 5; echo Slow ended' &&
|
||||||
sem --id foo --semaphoretimeout 1 'echo Forced running after 1 sec' &&
|
sem --id foo --semaphoretimeout 1 'echo Forced running after 1 sec' &&
|
||||||
|
|
|
@ -9,6 +9,9 @@ ping -c 1 freebsd7.tange.dk >/dev/null 2>&1
|
||||||
ssh freebsd7.tange.dk touch .parallel/will-cite
|
ssh freebsd7.tange.dk touch .parallel/will-cite
|
||||||
scp -q .*/src/{parallel,sem,sql,niceload,env_parallel*} freebsd7.tange.dk:bin/
|
scp -q .*/src/{parallel,sem,sql,niceload,env_parallel*} freebsd7.tange.dk:bin/
|
||||||
|
|
||||||
|
. `which env_parallel.bash`
|
||||||
|
env_parallel --session
|
||||||
|
|
||||||
par_no_more_procs() {
|
par_no_more_procs() {
|
||||||
echo 'bug #40136: FreeBSD: No more processes'
|
echo 'bug #40136: FreeBSD: No more processes'
|
||||||
sem --jobs 3 --id my_id -u 'echo First started; sleep 10; echo The first finished;echo' &&
|
sem --jobs 3 --id my_id -u 'echo First started; sleep 10; echo The first finished;echo' &&
|
||||||
|
@ -59,17 +62,17 @@ par_shebang() {
|
||||||
}
|
}
|
||||||
|
|
||||||
par_shellshock_bug() {
|
par_shellshock_bug() {
|
||||||
bash -c 'echo bug \#43358: shellshock breaks exporting functions using --env _;
|
bash -c 'echo bug \#43358: shellshock breaks exporting functions using --env name;
|
||||||
echo Non-shellshock-hardened to non-shellshock-hardened;
|
echo Non-shellshock-hardened to non-shellshock-hardened;
|
||||||
funky() { echo Function $1; };
|
funky() { echo Function $1; };
|
||||||
export -f funky;
|
export -f funky;
|
||||||
PARALLEL_SHELL=bash parallel --env funky -S localhost funky ::: non-shellshock-hardened'
|
PARALLEL_SHELL=bash parallel --env funky -S localhost funky ::: non-shellshock-hardened'
|
||||||
|
|
||||||
bash -c 'echo bug \#43358: shellshock breaks exporting functions using --env _;
|
bash -c 'echo bug \#43358: shellshock breaks exporting functions using --env name;
|
||||||
echo Non-shellshock-hardened to shellshock-hardened;
|
echo Non-shellshock-hardened to shellshock-hardened;
|
||||||
funky() { echo Function $1; };
|
funky() { echo Function $1; };
|
||||||
export -f funky;
|
export -f funky;
|
||||||
parallel --env funky -S parallel@192.168.1.72 funky ::: shellshock-hardened'
|
PARALLEL_SHELL=bash parallel --env funky -S parallel@192.168.1.72 funky ::: shellshock-hardened'
|
||||||
}
|
}
|
||||||
|
|
||||||
par_load() {
|
par_load() {
|
||||||
|
@ -104,7 +107,7 @@ unset TMPDIR
|
||||||
# we get 'shopt'-errors and 'declare'-errors.
|
# we get 'shopt'-errors and 'declare'-errors.
|
||||||
# We can safely ignore those.
|
# We can safely ignore those.
|
||||||
|
|
||||||
env_parallel --env _ -vj9 -k --joblog /tmp/jl-`basename $0` --retries 3 \
|
PARALLEL_SHELL=sh env_parallel --env _ -vj9 -k --joblog /tmp/jl-`basename $0` --retries 3 \
|
||||||
-S freebsd7.tange.dk --tag '{} 2>&1' \
|
-S freebsd7.tange.dk --tag '{} 2>&1' \
|
||||||
::: $(compgen -A function | grep par_ | sort) \
|
::: $(compgen -A function | grep par_ | sort) \
|
||||||
2> >(grep -Ev 'shopt: not found|declare: not found')
|
2> >(grep -Ev 'shopt: not found|declare: not found')
|
||||||
|
|
|
@ -24,6 +24,7 @@ par_exit_code() {
|
||||||
OK="ash bash csh dash fish mksh posh rc sash sh static-sh tcsh"
|
OK="ash bash csh dash fish mksh posh rc sash sh static-sh tcsh"
|
||||||
BAD="fdsh fizsh ksh ksh93 yash zsh"
|
BAD="fdsh fizsh ksh ksh93 yash zsh"
|
||||||
s=100
|
s=100
|
||||||
|
rm -f /tmp/mysleep
|
||||||
cp /bin/sleep /tmp/mysleep
|
cp /bin/sleep /tmp/mysleep
|
||||||
|
|
||||||
echo '# Ideally the command should return the same'
|
echo '# Ideally the command should return the same'
|
||||||
|
|
|
@ -197,13 +197,13 @@ par_parcat_mixing() {
|
||||||
slow_output() {
|
slow_output() {
|
||||||
string=$1
|
string=$1
|
||||||
perl -e 'print "'$string'"x9000,"start\n"'
|
perl -e 'print "'$string'"x9000,"start\n"'
|
||||||
sleep 4
|
sleep 6
|
||||||
perl -e 'print "'$string'"x9000,"end\n"'
|
perl -e 'print "'$string'"x9000,"end\n"'
|
||||||
}
|
}
|
||||||
tmp1=$(mktmpfifo)
|
tmp1=$(mktmpfifo)
|
||||||
tmp2=$(mktmpfifo)
|
tmp2=$(mktmpfifo)
|
||||||
slow_output a > $tmp1 &
|
slow_output a > $tmp1 &
|
||||||
sleep 2
|
sleep 3
|
||||||
slow_output b > $tmp2 &
|
slow_output b > $tmp2 &
|
||||||
parcat $tmp1 $tmp2 | tr -s ab
|
parcat $tmp1 $tmp2 | tr -s ab
|
||||||
}
|
}
|
||||||
|
|
|
@ -120,8 +120,11 @@ par_empty() {
|
||||||
true;
|
true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
hostname=`hostname`
|
||||||
export -f $(compgen -A function | egrep 'p_|par_')
|
export -f $(compgen -A function | egrep 'p_|par_')
|
||||||
# Tested that -j0 in parallel is fastest (up to 15 jobs)
|
# Tested that -j0 in parallel is fastest (up to 15 jobs)
|
||||||
compgen -A function | grep par_ | sort |
|
compgen -A function | grep par_ | sort |
|
||||||
stdout parallel -vj5 -k --tag --joblog /tmp/jl-`basename $0` p_wrapper \
|
stdout parallel -vj5 -k --tag --joblog /tmp/jl-`basename $0` p_wrapper \
|
||||||
:::: - ::: \$MYSQL \$PG \$SQLITE | perl -pe 's/tbl\d+/TBL99999/gi'
|
:::: - ::: \$MYSQL \$PG \$SQLITE | perl -pe 's/tbl\d+/TBL99999/gi;' |
|
||||||
|
perl -pe 's/(from TBL99999 order) .*/$1/g' |
|
||||||
|
perl -pe "s/$hostname/hostname/g"
|
||||||
|
|
|
@ -2032,6 +2032,10 @@ par_ash_parset() {
|
||||||
# env_parset 'myarray[6],myarray[5],myarray[4]' myfun ::: baz bar foo
|
# env_parset 'myarray[6],myarray[5],myarray[4]' myfun ::: baz bar foo
|
||||||
# echo "${myarray[*]}"
|
# echo "${myarray[*]}"
|
||||||
# echo "${myarray[4]} ${myarray[5]} ${myarray[6]}"
|
# echo "${myarray[4]} ${myarray[5]} ${myarray[6]}"
|
||||||
|
parset a,b,c 'echo {};exit {}' ::: 0 1 1 0
|
||||||
|
echo Exit value 2 = $?
|
||||||
|
env_parset a,b,c 'echo {};exit {}' ::: 0 1 1 0
|
||||||
|
echo Exit value 2 = $?
|
||||||
_EOF
|
_EOF
|
||||||
)
|
)
|
||||||
ssh ash@lo "$myscript"
|
ssh ash@lo "$myscript"
|
||||||
|
@ -2086,6 +2090,10 @@ par_bash_parset() {
|
||||||
env_parset 'myarray[6],myarray[5],myarray[4]' myfun ::: baz bar foo
|
env_parset 'myarray[6],myarray[5],myarray[4]' myfun ::: baz bar foo
|
||||||
echo "${myarray[*]}"
|
echo "${myarray[*]}"
|
||||||
echo "${myarray[4]} ${myarray[5]} ${myarray[6]}"
|
echo "${myarray[4]} ${myarray[5]} ${myarray[6]}"
|
||||||
|
parset a,b,c 'echo {};exit {}' ::: 0 1 1 0
|
||||||
|
echo Exit value 2 = $?
|
||||||
|
env_parset a,b,c 'echo {};exit {}' ::: 0 1 1 0
|
||||||
|
echo Exit value 2 = $?
|
||||||
_EOF
|
_EOF
|
||||||
)
|
)
|
||||||
ssh bash@lo "$myscript"
|
ssh bash@lo "$myscript"
|
||||||
|
@ -2149,6 +2157,10 @@ par_dash_parset() {
|
||||||
# env_parset 'myarray[6],myarray[5],myarray[4]' myfun ::: baz bar foo
|
# env_parset 'myarray[6],myarray[5],myarray[4]' myfun ::: baz bar foo
|
||||||
# echo "${myarray[*]}"
|
# echo "${myarray[*]}"
|
||||||
# echo "${myarray[4]} ${myarray[5]} ${myarray[6]}"
|
# echo "${myarray[4]} ${myarray[5]} ${myarray[6]}"
|
||||||
|
parset a,b,c 'echo {};exit {}' ::: 0 1 1 0
|
||||||
|
echo Exit value 2 = $?
|
||||||
|
env_parset a,b,c 'echo {};exit {}' ::: 0 1 1 0
|
||||||
|
echo Exit value 2 = $?
|
||||||
_EOF
|
_EOF
|
||||||
)
|
)
|
||||||
ssh dash@lo "$myscript"
|
ssh dash@lo "$myscript"
|
||||||
|
@ -2207,6 +2219,10 @@ par_ksh_parset() {
|
||||||
env_parset 'myarray[6],myarray[5],myarray[4]' myfun ::: baz bar foo
|
env_parset 'myarray[6],myarray[5],myarray[4]' myfun ::: baz bar foo
|
||||||
echo "${myarray[*]}"
|
echo "${myarray[*]}"
|
||||||
echo "${myarray[4]} ${myarray[5]} ${myarray[6]}"
|
echo "${myarray[4]} ${myarray[5]} ${myarray[6]}"
|
||||||
|
parset a,b,c 'echo {};exit {}' ::: 0 1 1 0
|
||||||
|
echo Exit value 2 = $?
|
||||||
|
env_parset a,b,c 'echo {};exit {}' ::: 0 1 1 0
|
||||||
|
echo Exit value 2 = $?
|
||||||
_EOF
|
_EOF
|
||||||
)
|
)
|
||||||
ssh ksh@lo "$myscript"
|
ssh ksh@lo "$myscript"
|
||||||
|
@ -2261,6 +2277,10 @@ par_mksh_parset() {
|
||||||
env_parset 'myarray[6],myarray[5],myarray[4]' myfun ::: baz bar foo
|
env_parset 'myarray[6],myarray[5],myarray[4]' myfun ::: baz bar foo
|
||||||
echo "${myarray[*]}"
|
echo "${myarray[*]}"
|
||||||
echo "${myarray[4]} ${myarray[5]} ${myarray[6]}"
|
echo "${myarray[4]} ${myarray[5]} ${myarray[6]}"
|
||||||
|
parset a,b,c 'echo {};exit {}' ::: 0 1 1 0
|
||||||
|
echo Exit value 2 = $?
|
||||||
|
env_parset a,b,c 'echo {};exit {}' ::: 0 1 1 0
|
||||||
|
echo Exit value 2 = $?
|
||||||
_EOF
|
_EOF
|
||||||
)
|
)
|
||||||
ssh mksh@lo "$myscript"
|
ssh mksh@lo "$myscript"
|
||||||
|
@ -2343,6 +2363,10 @@ par_sh_parset() {
|
||||||
# env_parset 'myarray[6],myarray[5],myarray[4]' myfun ::: baz bar foo
|
# env_parset 'myarray[6],myarray[5],myarray[4]' myfun ::: baz bar foo
|
||||||
# echo "${myarray[*]}"
|
# echo "${myarray[*]}"
|
||||||
# echo "${myarray[4]} ${myarray[5]} ${myarray[6]}"
|
# echo "${myarray[4]} ${myarray[5]} ${myarray[6]}"
|
||||||
|
parset a,b,c 'echo {};exit {}' ::: 0 1 1 0
|
||||||
|
echo Exit value 2 = $?
|
||||||
|
env_parset a,b,c 'echo {};exit {}' ::: 0 1 1 0
|
||||||
|
echo Exit value 2 = $?
|
||||||
_EOF
|
_EOF
|
||||||
)
|
)
|
||||||
ssh sh@lo "$myscript"
|
ssh sh@lo "$myscript"
|
||||||
|
@ -2409,6 +2433,10 @@ par_zsh_parset() {
|
||||||
env_parset 'myarray[6],myarray[5],myarray[4]' myfun ::: baz bar foo
|
env_parset 'myarray[6],myarray[5],myarray[4]' myfun ::: baz bar foo
|
||||||
echo "${myarray[*]}"
|
echo "${myarray[*]}"
|
||||||
echo "${myarray[4]} ${myarray[5]} ${myarray[6]}"
|
echo "${myarray[4]} ${myarray[5]} ${myarray[6]}"
|
||||||
|
parset a,b,c 'echo {};exit {}' ::: 0 1 1 0
|
||||||
|
echo Exit value 2 = $?
|
||||||
|
env_parset a,b,c 'echo {};exit {}' ::: 0 1 1 0
|
||||||
|
echo Exit value 2 = $?
|
||||||
_EOS`"
|
_EOS`"
|
||||||
_EOF
|
_EOF
|
||||||
)
|
)
|
||||||
|
|
|
@ -5,24 +5,21 @@ unset TIMEOUT
|
||||||
. `which env_parallel.bash`
|
. `which env_parallel.bash`
|
||||||
env_parallel --session
|
env_parallel --session
|
||||||
|
|
||||||
|
P_ALL="qnx pidora alpha tru64 hpux-ia64 syllable raspbian solaris openindiana aix hpux debian-ppc suse solaris-x86 mandriva ubuntu scosysv unixware centos miros macosx redhat netbsd openbsd freebsd debian dragonfly vax ultrix minix irix hurd beaglebone cubieboard2"
|
||||||
|
# P_NOTWORKING="vax alpha openstep"
|
||||||
|
# P_NOTWORKING_YET="ultrix irix"
|
||||||
|
#
|
||||||
|
# P_WORKING="openbsd tru64 debian freebsd redhat netbsd macosx miros centos unixware pidora ubuntu scosysv raspbian solaris-x86 aix mandriva debian-ppc suse solaris hpux openindiana hpux-ia64"
|
||||||
|
# P_WORKING="openbsd tru64 debian redhat netbsd macosx miros centos unixware pidora scosysv raspbian solaris-x86 aix mandriva debian-ppc suse solaris hpux hurd freebsd ubuntu openindiana"
|
||||||
|
# P_TEMPORARILY_BROKEN="minix dragonfly hpux-ia64 beaglebone cubieboard2"
|
||||||
|
|
||||||
P_ALL="alpha tru64 hpux-ia64 syllable pidora raspbian solaris openindiana aix hpux qnx debian-ppc suse solaris-x86 mandriva ubuntu scosysv unixware centos miros macosx redhat netbsd openbsd freebsd debian dragonfly vax ultrix minix irix hurd beaglebone cubieboard2"
|
P="$P_ALL"
|
||||||
P_NOTWORKING="vax alpha openstep"
|
|
||||||
P_NOTWORKING_YET="ultrix irix"
|
|
||||||
|
|
||||||
P_WORKING="openbsd tru64 debian freebsd redhat netbsd macosx miros centos unixware pidora ubuntu scosysv raspbian solaris-x86 aix mandriva debian-ppc suse solaris hpux openindiana hpux-ia64"
|
|
||||||
P_WORKING="openbsd tru64 debian redhat netbsd macosx miros centos unixware pidora scosysv raspbian solaris-x86 aix mandriva debian-ppc suse solaris hpux hurd freebsd ubuntu openindiana"
|
|
||||||
P_TEMPORARILY_BROKEN="minix dragonfly hpux-ia64 beaglebone cubieboard2"
|
|
||||||
|
|
||||||
P="$P_WORKING"
|
|
||||||
POLAR=`parallel -k echo {}.polarhome.com ::: $P`
|
|
||||||
S_POLAR=`parallel -k echo -S 1/{}.polarhome.com ::: $P`
|
|
||||||
|
|
||||||
# 2018-04-22 MAXTIME=20
|
# 2018-04-22 MAXTIME=20
|
||||||
MAXTIME=25
|
MAXTIME=25
|
||||||
RETRIES=4
|
RETRIES=4
|
||||||
|
|
||||||
parallel --retries $RETRIES rsync -a /usr/local/bin/{parallel,env_parallel,env_parallel.*,parcat} ::: redhat.polarhome.com:bin/
|
parallel --retries $RETRIES rsync -a /usr/local/bin/{parallel,env_parallel,env_parallel.*,parcat} ::: ubuntu.polarhome.com:bin/
|
||||||
|
|
||||||
doit() {
|
doit() {
|
||||||
# Avoid the stupid /etc/issue.net banner at Polarhome: -oLogLevel=quiet
|
# Avoid the stupid /etc/issue.net banner at Polarhome: -oLogLevel=quiet
|
||||||
|
@ -30,8 +27,13 @@ doit() {
|
||||||
export PARALLEL_SSH
|
export PARALLEL_SSH
|
||||||
export MAXTIME
|
export MAXTIME
|
||||||
export RETRIES
|
export RETRIES
|
||||||
|
|
||||||
echo MAXTIME=$MAXTIME RETRIES=$RETRIES
|
echo MAXTIME=$MAXTIME RETRIES=$RETRIES
|
||||||
|
|
||||||
|
echo '### Filter out working servers'
|
||||||
|
POLAR="`bin/parallel -j0 -k --retries $RETRIES --timeout $MAXTIME $PARALLEL_SSH {} echo {} ::: $P`"
|
||||||
|
S_POLAR=`bin/parallel -j0 -k --retries $RETRIES --timeout $MAXTIME echo -S 1/{} ::: $POLAR`
|
||||||
|
|
||||||
copy() {
|
copy() {
|
||||||
# scp, but atomic (avoid half files if disconnected)
|
# scp, but atomic (avoid half files if disconnected)
|
||||||
host=$1
|
host=$1
|
||||||
|
@ -43,19 +45,24 @@ doit() {
|
||||||
export -f copy
|
export -f copy
|
||||||
|
|
||||||
par_nonall() {
|
par_nonall() {
|
||||||
parallel -j15 -k --retries $RETRIES --timeout $MAXTIME --delay 0.1 --tag \
|
parallel -j150 -k --retries $RETRIES --timeout $MAXTIME --delay 0.1 --tag \
|
||||||
--nonall $S_POLAR --argsep ,:- \
|
--nonall $S_POLAR --argsep ,:- \
|
||||||
'source setupenv >&/dev/null || . `pwd`/setupenv;' "$@"
|
'source setupenv >&/dev/null || . `pwd`/setupenv;' "$@"
|
||||||
}
|
}
|
||||||
export -f par_nonall
|
export -f par_nonall
|
||||||
|
|
||||||
echo '### Copy commands to servers'
|
echo '### Copy commands to servers'
|
||||||
parallel -vkj15 --retries $RETRIES --timeout $MAXTIME --delay 0.03 --tag \
|
parallel -vkj150 --retries $RETRIES --timeout $MAXTIME --delay 0.03 --tag \
|
||||||
copy {2} {1} {1/} \
|
copy {2} {1} {1/} \
|
||||||
::: bin/{parallel,env_parallel,env_parallel.*,parcat,stdout} \
|
::: bin/{parallel,env_parallel,env_parallel.*[^~],parcat,stdout} \
|
||||||
::: $POLAR
|
::: $POLAR
|
||||||
echo Done copying
|
echo Done copying
|
||||||
|
|
||||||
|
echo
|
||||||
|
echo '### Works on ...'
|
||||||
|
echo
|
||||||
|
par_nonall parallel echo Works on {} ::: '`hostname`' 2>&1
|
||||||
|
|
||||||
# Test empty command
|
# Test empty command
|
||||||
test_empty_cmd() {
|
test_empty_cmd() {
|
||||||
echo '### Test if empty command in process list causes problems'
|
echo '### Test if empty command in process list causes problems'
|
||||||
|
@ -65,7 +72,9 @@ doit() {
|
||||||
export -f test_empty_cmd
|
export -f test_empty_cmd
|
||||||
PARALLEL='--env test_empty_cmd' par_nonall test_empty_cmd 2>&1
|
PARALLEL='--env test_empty_cmd' par_nonall test_empty_cmd 2>&1
|
||||||
|
|
||||||
par_nonall parallel echo Works on {} ::: '`hostname`' 2>&1
|
echo
|
||||||
|
echo '### Fails if tmpdir is R/O'
|
||||||
|
echo
|
||||||
par_nonall "stdout parallel --tmpdir / echo ::: test read-only tmp |" \
|
par_nonall "stdout parallel --tmpdir / echo ::: test read-only tmp |" \
|
||||||
"perl -pe '\$exit += s:/[a-z0-9_]+.arg:/XXXXXXXX.arg:gi; \$exit += s/[0-9][0-9][0-9][0-9]/0000/gi; END { exit not \$exit }' &&" \
|
"perl -pe '\$exit += s:/[a-z0-9_]+.arg:/XXXXXXXX.arg:gi; \$exit += s/[0-9][0-9][0-9][0-9]/0000/gi; END { exit not \$exit }' &&" \
|
||||||
"echo OK readonly tmp" 2>&1
|
"echo OK readonly tmp" 2>&1
|
||||||
|
@ -96,7 +105,7 @@ doit() {
|
||||||
|
|
||||||
echo
|
echo
|
||||||
echo '### env_parallel echo :::: <(echo OK)'
|
echo '### env_parallel echo :::: <(echo OK)'
|
||||||
echo '(bash ksh zsh only)'
|
echo '(bash ksh mksh zsh only)'
|
||||||
echo
|
echo
|
||||||
par_nonall 'bin/env_parallel --install && echo install-OK' 2>&1
|
par_nonall 'bin/env_parallel --install && echo install-OK' 2>&1
|
||||||
par_nonall 'env_parallel echo env_parallel ::: run-OK' 2>&1
|
par_nonall 'env_parallel echo env_parallel ::: run-OK' 2>&1
|
||||||
|
@ -106,7 +115,7 @@ doit() {
|
||||||
|
|
||||||
echo
|
echo
|
||||||
echo '### parset arr seq ::: 2 3 4'
|
echo '### parset arr seq ::: 2 3 4'
|
||||||
echo '(bash ksh zsh only)'
|
echo '(bash ksh mksh zsh only)'
|
||||||
echo
|
echo
|
||||||
par_nonall 'parset arr seq ::: 2 3 4; echo ${arr[*]}' 2>&1
|
par_nonall 'parset arr seq ::: 2 3 4; echo ${arr[*]}' 2>&1
|
||||||
echo '### env_parset arr seq ::: 2 3 4'
|
echo '### env_parset arr seq ::: 2 3 4'
|
||||||
|
@ -114,14 +123,14 @@ doit() {
|
||||||
|
|
||||||
echo
|
echo
|
||||||
echo '### parset var1,var2,var3 seq ::: 2 3 4'
|
echo '### parset var1,var2,var3 seq ::: 2 3 4'
|
||||||
echo '(bash ksh zsh ash dash only)'
|
echo '(bash ksh mksh zsh ash dash only)'
|
||||||
echo
|
echo
|
||||||
par_nonall 'parset var1,var2,var3 seq ::: 2 3 4; echo $var1,$var2,$var3' 2>&1
|
par_nonall 'parset var1,var2,var3 seq ::: 2 3 4; echo $var1,$var2,$var3' 2>&1
|
||||||
echo '### env_parset var1,var2,var3 seq ::: 2 3 4'
|
echo '### env_parset var1,var2,var3 seq ::: 2 3 4'
|
||||||
par_nonall 'start=2; env_parset var1,var2,var3 seq \$start ::: 2 3 4; echo $var1,$var2,$var3' 2>&1
|
par_nonall 'start=2; env_parset var1,var2,var3 seq \$start ::: 2 3 4; echo $var1,$var2,$var3' 2>&1
|
||||||
}
|
}
|
||||||
|
|
||||||
env_parallel -u -Sredhat.polarhome.com doit ::: 1
|
env_parallel -u -Subuntu.polarhome.com doit ::: 1
|
||||||
|
|
||||||
# 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
|
||||||
|
|
|
@ -123,7 +123,7 @@ stdout ssh $SSHLOGIN1 ls 'tmp/parallel.file*' || echo OK
|
||||||
stdout ssh $SSHLOGIN2 ls 'tmp/parallel.file*' || echo OK
|
stdout ssh $SSHLOGIN2 ls 'tmp/parallel.file*' || echo OK
|
||||||
echo 'Input for ssh'
|
echo 'Input for ssh'
|
||||||
cat /tmp/myssh1-run /tmp/myssh2-run | perl -pe 's/(PID.)\d+/${1}00000/g;s/(SEQ[ =]|line)\d/$1X/g;' |
|
cat /tmp/myssh1-run /tmp/myssh2-run | perl -pe 's/(PID.)\d+/${1}00000/g;s/(SEQ[ =]|line)\d/$1X/g;' |
|
||||||
perl -pe 's/\S*parallel-server\S*/one-server/;s:[a-zA-Z0-9/\\+=]{500,}:base64:;'
|
perl -pe 's/\S*parallel-server\S*/one-server/;s:\S[a-zA-Z0-9/\\+=]{500,}\S:base64:;'
|
||||||
rm /tmp/myssh1-run /tmp/myssh2-run
|
rm /tmp/myssh1-run /tmp/myssh2-run
|
||||||
|
|
||||||
rm -rf /tmp/parallel.file*
|
rm -rf /tmp/parallel.file*
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
SERVER1=parallel-server1
|
SERVER1=parallel-server1
|
||||||
SERVER2=parallel-server2
|
SERVER2=parallel-server2
|
||||||
|
|
||||||
cat <<'EOF' | sed -e s/\$SERVER1/$SERVER1/\;s/\$SERVER2/$SERVER2/ | parallel -vj10 -k --joblog /tmp/jl-`basename $0` -L1
|
cat <<'EOF' | sed -e s/\$SERVER1/$SERVER1/\;s/\$SERVER2/$SERVER2/ | parallel -vj10 -k --joblog /tmp/jl-`basename $0` -L1 | perl -pe 's/(PARALLEL_PID....)\d+/$1XXXXX/g'
|
||||||
echo '### Test --return of weirdly named file'
|
echo '### Test --return of weirdly named file'
|
||||||
stdout parallel --return {} -vv -S parallel\@$SERVER1 echo '>'{} ::: 'aa<${#}" b' |
|
stdout parallel --return {} -vv -S parallel\@$SERVER1 echo '>'{} ::: 'aa<${#}" b' |
|
||||||
perl -pe 's/\S*parallel-server\S*/one-server/;s:[a-z+=/\\0-9]{500,}:base64:i;'; rm 'aa<${#}" b'
|
perl -pe 's/\S*parallel-server\S*/one-server/;s:[a-z+=/\\0-9]{500,}:base64:i;'; rm 'aa<${#}" b'
|
||||||
|
|
|
@ -64,10 +64,9 @@ par_shebang with
|
||||||
par_shebang /usr/bin/perl -w ./shebang-wrap-opt options
|
par_shebang /usr/bin/perl -w ./shebang-wrap-opt options
|
||||||
par_shebang options
|
par_shebang options
|
||||||
par_shellshock_bug par_shellshock_bug 2>&1
|
par_shellshock_bug par_shellshock_bug 2>&1
|
||||||
par_shellshock_bug bug #43358: shellshock breaks exporting functions using --env _
|
par_shellshock_bug bug #43358: shellshock breaks exporting functions using --env name
|
||||||
par_shellshock_bug Non-shellshock-hardened to non-shellshock-hardened
|
par_shellshock_bug Non-shellshock-hardened to non-shellshock-hardened
|
||||||
par_shellshock_bug Function non-shellshock-hardened
|
par_shellshock_bug Function non-shellshock-hardened
|
||||||
par_shellshock_bug bug #43358: shellshock breaks exporting functions using --env _
|
par_shellshock_bug bug #43358: shellshock breaks exporting functions using --env name
|
||||||
par_shellshock_bug Non-shellshock-hardened to shellshock-hardened
|
par_shellshock_bug Non-shellshock-hardened to shellshock-hardened
|
||||||
par_shellshock_bug parallel: Warning: Shell functions may not be supported in /bin/sh.
|
|
||||||
par_shellshock_bug Function shellshock-hardened
|
par_shellshock_bug Function shellshock-hardened
|
||||||
|
|
|
@ -1,503 +0,0 @@
|
||||||
### Test installation missing pod2*
|
|
||||||
make[0]: Entering directory '~/privat/parallel'
|
|
||||||
make dist-gzip am__post_remove_distdir='@:'
|
|
||||||
make[0]: Entering directory '~/privat/parallel'
|
|
||||||
if test -d "parallel-00000000"; then find "parallel-00000000" -type d ! -perm -200 -exec chmod u+w {} ';' && rm -rf "parallel-00000000" || { sleep 5 && rm -rf "parallel-00000000"; }; else :; fi
|
|
||||||
test -d "parallel-00000000" || mkdir "parallel-00000000"
|
|
||||||
(cd src && make top_distdir=../parallel-00000000 distdir=../parallel-00000000/src \
|
|
||||||
am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)
|
|
||||||
make[0]: Entering directory '~/privat/parallel/src'
|
|
||||||
pod2man --release='00000000' --center='parallel' \
|
|
||||||
--section=7 ./parallel_design.pod > ./parallel_design.7n \
|
|
||||||
&& mv ./parallel_design.7n ./parallel_design.7 \
|
|
||||||
|| echo "Warning: pod2man not found. Using old parallel_design.7"
|
|
||||||
/bin/bash: pod2man: command not found
|
|
||||||
Warning: pod2man not found. Using old parallel_design.7
|
|
||||||
make[0]: Leaving directory '~/privat/parallel/src'
|
|
||||||
test -n "" \
|
|
||||||
|| find "parallel-00000000" -type d ! -perm -755 \
|
|
||||||
-exec chmod u+rwx,go+rx {} \; -o \
|
|
||||||
! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \
|
|
||||||
! -type d ! -perm -400 -exec chmod a+r {} \; -o \
|
|
||||||
! -type d ! -perm -444 -exec /bin/bash ~/privat/parallel/install-sh -c -m a+r {} {} \; \
|
|
||||||
|| chmod -R a+r "parallel-00000000"
|
|
||||||
tardir=parallel-00000000 && ${TAR-tar} chof - "$tardir" | GZIP=--best gzip -c >parallel-00000000.tar.gz
|
|
||||||
make[0]: Leaving directory '~/privat/parallel'
|
|
||||||
if test -d "parallel-00000000"; then find "parallel-00000000" -type d ! -perm -200 -exec chmod u+w {} ';' && rm -rf "parallel-00000000" || { sleep 5 && rm -rf "parallel-00000000"; }; else :; fi
|
|
||||||
make[0]: Leaving directory '~/privat/parallel'
|
|
||||||
checking for a BSD-compatible install... /usr/bin/install -c
|
|
||||||
checking whether build environment is sane... yes
|
|
||||||
checking for a thread-safe mkdir -p... /bin/mkdir -p
|
|
||||||
checking for gawk... gawk
|
|
||||||
checking whether make sets $(MAKE)... yes
|
|
||||||
checking whether make supports nested variables... yes
|
|
||||||
checking whether ln -s works... yes
|
|
||||||
checking that generated files are newer than configure... done
|
|
||||||
configure: creating ./config.status
|
|
||||||
config.status: creating Makefile
|
|
||||||
config.status: creating src/Makefile
|
|
||||||
config.status: creating config.h
|
|
||||||
Making install in src
|
|
||||||
make[0]: Entering directory '/tmp/parallel-00000000/src'
|
|
||||||
pod2man --release='00000000' --center='parallel' \
|
|
||||||
--section=1 ./parallel.pod > ./parallel.1n \
|
|
||||||
&& mv ./parallel.1n ./parallel.1 \
|
|
||||||
|| echo "Warning: pod2man not found. Using old parallel.1"
|
|
||||||
/bin/bash: pod2man: command not found
|
|
||||||
Warning: pod2man not found. Using old parallel.1
|
|
||||||
pod2man --release='00000000' --center='parallel' \
|
|
||||||
--section=1 ./env_parallel.pod > ./env_parallel.1n \
|
|
||||||
&& mv ./env_parallel.1n ./env_parallel.1 \
|
|
||||||
|| echo "Warning: pod2man not found. Using old env_parallel.1"
|
|
||||||
/bin/bash: pod2man: command not found
|
|
||||||
Warning: pod2man not found. Using old env_parallel.1
|
|
||||||
pod2man --release='00000000' --center='parallel' \
|
|
||||||
--section=1 ./sem.pod > ./sem.1n \
|
|
||||||
&& mv ./sem.1n ./sem.1 \
|
|
||||||
|| echo "Warning: pod2man not found. Using old sem.1"
|
|
||||||
/bin/bash: pod2man: command not found
|
|
||||||
Warning: pod2man not found. Using old sem.1
|
|
||||||
pod2man --release='00000000' --center='parallel' \
|
|
||||||
--section=1 ./sql > ./sql.1n \
|
|
||||||
&& mv ./sql.1n ./sql.1 \
|
|
||||||
|| echo "Warning: pod2man not found. Using old sql.1"
|
|
||||||
/bin/bash: pod2man: command not found
|
|
||||||
Warning: pod2man not found. Using old sql.1
|
|
||||||
pod2man --release='00000000' --center='parallel' \
|
|
||||||
--section=1 ./niceload.pod > ./niceload.1n \
|
|
||||||
&& mv ./niceload.1n ./niceload.1 \
|
|
||||||
|| echo "Warning: pod2man not found. Using old niceload.1"
|
|
||||||
/bin/bash: pod2man: command not found
|
|
||||||
Warning: pod2man not found. Using old niceload.1
|
|
||||||
pod2man --release='00000000' --center='parallel' \
|
|
||||||
--section=7 ./parallel_tutorial.pod > ./parallel_tutorial.7n \
|
|
||||||
&& mv ./parallel_tutorial.7n ./parallel_tutorial.7 \
|
|
||||||
|| echo "Warning: pod2man not found. Using old parallel_tutorial.7"
|
|
||||||
/bin/bash: pod2man: command not found
|
|
||||||
Warning: pod2man not found. Using old parallel_tutorial.7
|
|
||||||
pod2man --release='00000000' --center='parallel' \
|
|
||||||
--section=7 ./parallel_book.pod > ./parallel_book.7n \
|
|
||||||
&& mv ./parallel_book.7n ./parallel_book.7 \
|
|
||||||
|| echo "Warning: pod2man not found. Using old parallel_book.7"
|
|
||||||
/bin/bash: pod2man: command not found
|
|
||||||
Warning: pod2man not found. Using old parallel_book.7
|
|
||||||
pod2man --release='00000000' --center='parallel' \
|
|
||||||
--section=7 ./parallel_design.pod > ./parallel_design.7n \
|
|
||||||
&& mv ./parallel_design.7n ./parallel_design.7 \
|
|
||||||
|| echo "Warning: pod2man not found. Using old parallel_design.7"
|
|
||||||
/bin/bash: pod2man: command not found
|
|
||||||
Warning: pod2man not found. Using old parallel_design.7
|
|
||||||
pod2man --release='00000000' --center='parallel' \
|
|
||||||
--section=7 ./parallel_alternatives.pod > ./parallel_alternatives.7n \
|
|
||||||
&& mv ./parallel_alternatives.7n ./parallel_alternatives.7 \
|
|
||||||
|| echo "Warning: pod2man not found. Using old parallel_alternatives.7"
|
|
||||||
/bin/bash: pod2man: command not found
|
|
||||||
Warning: pod2man not found. Using old parallel_alternatives.7
|
|
||||||
pod2man --release='00000000' --center='parallel' \
|
|
||||||
--section=1 ./parcat.pod > ./parcat.1n \
|
|
||||||
&& mv ./parcat.1n ./parcat.1 \
|
|
||||||
|| echo "Warning: pod2man not found. Using old parcat.1"
|
|
||||||
/bin/bash: pod2man: command not found
|
|
||||||
Warning: pod2man not found. Using old parcat.1
|
|
||||||
pod2man --release='00000000' --center='parallel' \
|
|
||||||
--section=1 ./parset.pod > ./parset.1n \
|
|
||||||
&& mv ./parset.1n ./parset.1 \
|
|
||||||
|| echo "Warning: pod2man not found. Using old parset.1"
|
|
||||||
/bin/bash: pod2man: command not found
|
|
||||||
Warning: pod2man not found. Using old parset.1
|
|
||||||
pod2html --title "GNU Parallel" ./parallel.pod > ./parallel.htmln \
|
|
||||||
&& mv ./parallel.htmln ./parallel.html \
|
|
||||||
|| echo "Warning: pod2html not found. Using old parallel.html"
|
|
||||||
/bin/bash: pod2html: command not found
|
|
||||||
Warning: pod2html not found. Using old parallel.html
|
|
||||||
rm -f ./pod2htm*
|
|
||||||
pod2html --title "GNU Parallel with environment" ./env_parallel.pod > ./env_parallel.htmln \
|
|
||||||
&& mv ./env_parallel.htmln ./env_parallel.html \
|
|
||||||
|| echo "Warning: pod2html not found. Using old env_parallel.html"
|
|
||||||
/bin/bash: pod2html: command not found
|
|
||||||
Warning: pod2html not found. Using old env_parallel.html
|
|
||||||
rm -f ./pod2htm*
|
|
||||||
pod2html --title "GNU Parallel tutorial" ./parallel_tutorial.pod > ./parallel_tutorial.htmln \
|
|
||||||
&& mv ./parallel_tutorial.htmln ./parallel_tutorial.html \
|
|
||||||
|| echo "Warning: pod2html not found. Using old parallel_tutorial.html"
|
|
||||||
/bin/bash: pod2html: command not found
|
|
||||||
Warning: pod2html not found. Using old parallel_tutorial.html
|
|
||||||
rm -f ./pod2htm*
|
|
||||||
pod2html --title "GNU Parallel book" ./parallel_book.pod > ./parallel_book.htmln \
|
|
||||||
&& mv ./parallel_book.htmln ./parallel_book.html \
|
|
||||||
|| echo "Warning: pod2html not found. Using old parallel_book.html"
|
|
||||||
/bin/bash: pod2html: command not found
|
|
||||||
Warning: pod2html not found. Using old parallel_book.html
|
|
||||||
rm -f ./pod2htm*
|
|
||||||
pod2html --title "GNU Parallel design" ./parallel_design.pod > ./parallel_design.htmln \
|
|
||||||
&& mv ./parallel_design.htmln ./parallel_design.html \
|
|
||||||
|| echo "Warning: pod2html not found. Using old parallel_design.html"
|
|
||||||
/bin/bash: pod2html: command not found
|
|
||||||
Warning: pod2html not found. Using old parallel_design.html
|
|
||||||
rm -f ./pod2htm*
|
|
||||||
pod2html --title "GNU Parallel alternatives" ./parallel_alternatives.pod > ./parallel_alternatives.htmln \
|
|
||||||
&& mv ./parallel_alternatives.htmln ./parallel_alternatives.html \
|
|
||||||
|| echo "Warning: pod2html not found. Using old parallel_alternatives.html"
|
|
||||||
/bin/bash: pod2html: command not found
|
|
||||||
Warning: pod2html not found. Using old parallel_alternatives.html
|
|
||||||
rm -f ./pod2htm*
|
|
||||||
pod2html --title "sem (GNU Parallel)" ./sem.pod > ./sem.htmln \
|
|
||||||
&& mv ./sem.htmln ./sem.html \
|
|
||||||
|| echo "Warning: pod2html not found. Using old sem.html"
|
|
||||||
/bin/bash: pod2html: command not found
|
|
||||||
Warning: pod2html not found. Using old sem.html
|
|
||||||
rm -f ./pod2htm*
|
|
||||||
pod2html --title "GNU SQL" ./sql > ./sql.htmln \
|
|
||||||
&& mv ./sql.htmln ./sql.html \
|
|
||||||
|| echo "Warning: pod2html not found. Using old sql.html"
|
|
||||||
/bin/bash: pod2html: command not found
|
|
||||||
Warning: pod2html not found. Using old sql.html
|
|
||||||
rm -f ./pod2htm*
|
|
||||||
pod2html --title "GNU niceload" ./niceload.pod > ./niceload.htmln \
|
|
||||||
&& mv ./niceload.htmln ./niceload.html \
|
|
||||||
|| echo "Warning: pod2html not found. Using old niceload.html"
|
|
||||||
/bin/bash: pod2html: command not found
|
|
||||||
Warning: pod2html not found. Using old niceload.html
|
|
||||||
rm -f ./pod2htm*
|
|
||||||
pod2html --title "GNU parcat" ./parcat.pod > ./parcat.htmln \
|
|
||||||
&& mv ./parcat.htmln ./parcat.html \
|
|
||||||
|| echo "Warning: pod2html not found. Using old parcat.html"
|
|
||||||
/bin/bash: pod2html: command not found
|
|
||||||
Warning: pod2html not found. Using old parcat.html
|
|
||||||
rm -f ./pod2htm*
|
|
||||||
pod2html --title "GNU parset" ./parset.pod > ./parset.htmln \
|
|
||||||
&& mv ./parset.htmln ./parset.html \
|
|
||||||
|| echo "Warning: pod2html not found. Using old parset.html"
|
|
||||||
/bin/bash: pod2html: command not found
|
|
||||||
Warning: pod2html not found. Using old parset.html
|
|
||||||
rm -f ./pod2htm*
|
|
||||||
pod2texi --output=./parallel.texi ./parallel.pod \
|
|
||||||
|| echo "Warning: pod2texi not found. Using old parallel.texi"
|
|
||||||
/bin/bash: pod2texi: command not found
|
|
||||||
Warning: pod2texi not found. Using old parallel.texi
|
|
||||||
pod2texi --output=./env_parallel.texi ./env_parallel.pod \
|
|
||||||
|| echo "Warning: pod2texi not found. Using old env_parallel.texi"
|
|
||||||
/bin/bash: pod2texi: command not found
|
|
||||||
Warning: pod2texi not found. Using old env_parallel.texi
|
|
||||||
pod2texi --output=./sem.texi ./sem.pod \
|
|
||||||
|| echo "Warning: pod2texi not found. Using old sem.texi"
|
|
||||||
/bin/bash: pod2texi: command not found
|
|
||||||
Warning: pod2texi not found. Using old sem.texi
|
|
||||||
pod2texi --output=./sql.texi ./sql \
|
|
||||||
|| echo "Warning: pod2texi not found. Using old sql.texi"
|
|
||||||
/bin/bash: pod2texi: command not found
|
|
||||||
Warning: pod2texi not found. Using old sql.texi
|
|
||||||
pod2texi --output=./niceload.texi ./niceload.pod \
|
|
||||||
|| echo "Warning: pod2texi not found. Using old niceload.texi"
|
|
||||||
/bin/bash: pod2texi: command not found
|
|
||||||
Warning: pod2texi not found. Using old niceload.texi
|
|
||||||
pod2texi --output=./parallel_tutorial.texi ./parallel_tutorial.pod \
|
|
||||||
|| echo "Warning: pod2texi not found. Using old parallel_tutorial.texi"
|
|
||||||
/bin/bash: pod2texi: command not found
|
|
||||||
Warning: pod2texi not found. Using old parallel_tutorial.texi
|
|
||||||
pod2texi --output=./parallel_book.texi ./parallel_book.pod \
|
|
||||||
|| echo "Warning: pod2texi not found. Using old parallel_book.texi"
|
|
||||||
/bin/bash: pod2texi: command not found
|
|
||||||
Warning: pod2texi not found. Using old parallel_book.texi
|
|
||||||
pod2texi --output=./parallel_design.texi ./parallel_design.pod \
|
|
||||||
|| echo "Warning: pod2texi not found. Using old parallel_design.texi"
|
|
||||||
/bin/bash: pod2texi: command not found
|
|
||||||
Warning: pod2texi not found. Using old parallel_design.texi
|
|
||||||
pod2texi --output=./parallel_alternatives.texi ./parallel_alternatives.pod \
|
|
||||||
|| echo "Warning: pod2texi not found. Using old parallel_alternatives.texi"
|
|
||||||
/bin/bash: pod2texi: command not found
|
|
||||||
Warning: pod2texi not found. Using old parallel_alternatives.texi
|
|
||||||
pod2texi --output=./parcat.texi ./parcat.pod \
|
|
||||||
|| echo "Warning: pod2texi not found. Using old parcat.texi"
|
|
||||||
/bin/bash: pod2texi: command not found
|
|
||||||
Warning: pod2texi not found. Using old parcat.texi
|
|
||||||
pod2texi --output=./parset.texi ./parset.pod \
|
|
||||||
|| echo "Warning: pod2texi not found. Using old parset.texi"
|
|
||||||
/bin/bash: pod2texi: command not found
|
|
||||||
Warning: pod2texi not found. Using old parset.texi
|
|
||||||
pod2pdf --output-file ./parallel.pdf ./parallel.pod --title "GNU Parallel" \
|
|
||||||
|| echo "Warning: pod2pdf not found. Using old parallel.pdf"
|
|
||||||
/bin/bash: pod2pdf: command not found
|
|
||||||
Warning: pod2pdf not found. Using old parallel.pdf
|
|
||||||
pod2pdf --output-file ./env_parallel.pdf ./env_parallel.pod --title "GNU Parallel with environment" \
|
|
||||||
|| echo "Warning: pod2pdf not found. Using old env_parallel.pdf"
|
|
||||||
/bin/bash: pod2pdf: command not found
|
|
||||||
Warning: pod2pdf not found. Using old env_parallel.pdf
|
|
||||||
pod2pdf --output-file ./sem.pdf ./sem.pod --title "GNU sem" \
|
|
||||||
|| echo "Warning: pod2pdf not found. Using old sem.pdf"
|
|
||||||
/bin/bash: pod2pdf: command not found
|
|
||||||
Warning: pod2pdf not found. Using old sem.pdf
|
|
||||||
pod2pdf --output-file ./sql.pdf ./sql --title "GNU SQL" \
|
|
||||||
|| echo "Warning: pod2pdf not found. Using old sql.pdf"
|
|
||||||
/bin/bash: pod2pdf: command not found
|
|
||||||
Warning: pod2pdf not found. Using old sql.pdf
|
|
||||||
pod2pdf --output-file ./niceload.pdf ./niceload.pod --title "GNU niceload" \
|
|
||||||
|| echo "Warning: pod2pdf not found. Using old niceload.pdf"
|
|
||||||
/bin/bash: pod2pdf: command not found
|
|
||||||
Warning: pod2pdf not found. Using old niceload.pdf
|
|
||||||
pod2pdf --output-file ./parallel_tutorial.pdf ./parallel_tutorial.pod --title "GNU Parallel Tutorial" \
|
|
||||||
|| echo "Warning: pod2pdf not found. Using old parallel_tutorial.pdf"
|
|
||||||
/bin/bash: pod2pdf: command not found
|
|
||||||
Warning: pod2pdf not found. Using old parallel_tutorial.pdf
|
|
||||||
pod2pdf --output-file ./parallel_book.pdf ./parallel_book.pod --title "GNU Parallel Book" \
|
|
||||||
|| echo "Warning: pod2pdf not found. Using old parallel_book.pdf"
|
|
||||||
/bin/bash: pod2pdf: command not found
|
|
||||||
Warning: pod2pdf not found. Using old parallel_book.pdf
|
|
||||||
pod2pdf --output-file ./parallel_design.pdf ./parallel_design.pod --title "GNU Parallel Design" \
|
|
||||||
|| echo "Warning: pod2pdf not found. Using old parallel_design.pdf"
|
|
||||||
/bin/bash: pod2pdf: command not found
|
|
||||||
Warning: pod2pdf not found. Using old parallel_design.pdf
|
|
||||||
pod2pdf --output-file ./parallel_alternatives.pdf ./parallel_alternatives.pod --title "GNU Parallel alternatives" \
|
|
||||||
|| echo "Warning: pod2pdf not found. Using old parallel_alternatives.pdf"
|
|
||||||
/bin/bash: pod2pdf: command not found
|
|
||||||
Warning: pod2pdf not found. Using old parallel_alternatives.pdf
|
|
||||||
pod2pdf --output-file ./parcat.pdf ./parcat.pod --title "GNU parcat" \
|
|
||||||
|| echo "Warning: pod2pdf not found. Using old parcat.pdf"
|
|
||||||
/bin/bash: pod2pdf: command not found
|
|
||||||
Warning: pod2pdf not found. Using old parcat.pdf
|
|
||||||
pod2pdf --output-file ./parset.pdf ./parset.pod --title "GNU parset" \
|
|
||||||
|| echo "Warning: pod2pdf not found. Using old parset.pdf"
|
|
||||||
/bin/bash: pod2pdf: command not found
|
|
||||||
Warning: pod2pdf not found. Using old parset.pdf
|
|
||||||
make[0]: Entering directory '/tmp/parallel-00000000/src'
|
|
||||||
/bin/mkdir -p '/usr/local/bin'
|
|
||||||
/usr/bin/install -c parallel sql niceload parcat parset env_parallel env_parallel.ash env_parallel.bash env_parallel.csh env_parallel.dash env_parallel.fish env_parallel.ksh env_parallel.pdksh env_parallel.sh env_parallel.tcsh env_parallel.zsh '/usr/local/bin'
|
|
||||||
make install-exec-hook
|
|
||||||
make[0]: Entering directory '/tmp/parallel-00000000/src'
|
|
||||||
rm /usr/local/bin/sem || true
|
|
||||||
ln -s parallel /usr/local/bin/sem
|
|
||||||
make[0]: Leaving directory '/tmp/parallel-00000000/src'
|
|
||||||
pod2html --title "GNU Parallel" ./parallel.pod > ./parallel.htmln \
|
|
||||||
&& mv ./parallel.htmln ./parallel.html \
|
|
||||||
|| echo "Warning: pod2html not found. Using old parallel.html"
|
|
||||||
/bin/bash: pod2html: command not found
|
|
||||||
Warning: pod2html not found. Using old parallel.html
|
|
||||||
rm -f ./pod2htm*
|
|
||||||
pod2html --title "GNU Parallel with environment" ./env_parallel.pod > ./env_parallel.htmln \
|
|
||||||
&& mv ./env_parallel.htmln ./env_parallel.html \
|
|
||||||
|| echo "Warning: pod2html not found. Using old env_parallel.html"
|
|
||||||
/bin/bash: pod2html: command not found
|
|
||||||
Warning: pod2html not found. Using old env_parallel.html
|
|
||||||
rm -f ./pod2htm*
|
|
||||||
pod2html --title "GNU Parallel tutorial" ./parallel_tutorial.pod > ./parallel_tutorial.htmln \
|
|
||||||
&& mv ./parallel_tutorial.htmln ./parallel_tutorial.html \
|
|
||||||
|| echo "Warning: pod2html not found. Using old parallel_tutorial.html"
|
|
||||||
/bin/bash: pod2html: command not found
|
|
||||||
Warning: pod2html not found. Using old parallel_tutorial.html
|
|
||||||
rm -f ./pod2htm*
|
|
||||||
pod2html --title "GNU Parallel book" ./parallel_book.pod > ./parallel_book.htmln \
|
|
||||||
&& mv ./parallel_book.htmln ./parallel_book.html \
|
|
||||||
|| echo "Warning: pod2html not found. Using old parallel_book.html"
|
|
||||||
/bin/bash: pod2html: command not found
|
|
||||||
Warning: pod2html not found. Using old parallel_book.html
|
|
||||||
rm -f ./pod2htm*
|
|
||||||
pod2html --title "GNU Parallel design" ./parallel_design.pod > ./parallel_design.htmln \
|
|
||||||
&& mv ./parallel_design.htmln ./parallel_design.html \
|
|
||||||
|| echo "Warning: pod2html not found. Using old parallel_design.html"
|
|
||||||
/bin/bash: pod2html: command not found
|
|
||||||
Warning: pod2html not found. Using old parallel_design.html
|
|
||||||
rm -f ./pod2htm*
|
|
||||||
pod2html --title "GNU Parallel alternatives" ./parallel_alternatives.pod > ./parallel_alternatives.htmln \
|
|
||||||
&& mv ./parallel_alternatives.htmln ./parallel_alternatives.html \
|
|
||||||
|| echo "Warning: pod2html not found. Using old parallel_alternatives.html"
|
|
||||||
/bin/bash: pod2html: command not found
|
|
||||||
Warning: pod2html not found. Using old parallel_alternatives.html
|
|
||||||
rm -f ./pod2htm*
|
|
||||||
pod2html --title "sem (GNU Parallel)" ./sem.pod > ./sem.htmln \
|
|
||||||
&& mv ./sem.htmln ./sem.html \
|
|
||||||
|| echo "Warning: pod2html not found. Using old sem.html"
|
|
||||||
/bin/bash: pod2html: command not found
|
|
||||||
Warning: pod2html not found. Using old sem.html
|
|
||||||
rm -f ./pod2htm*
|
|
||||||
pod2html --title "GNU SQL" ./sql > ./sql.htmln \
|
|
||||||
&& mv ./sql.htmln ./sql.html \
|
|
||||||
|| echo "Warning: pod2html not found. Using old sql.html"
|
|
||||||
/bin/bash: pod2html: command not found
|
|
||||||
Warning: pod2html not found. Using old sql.html
|
|
||||||
rm -f ./pod2htm*
|
|
||||||
pod2html --title "GNU niceload" ./niceload.pod > ./niceload.htmln \
|
|
||||||
&& mv ./niceload.htmln ./niceload.html \
|
|
||||||
|| echo "Warning: pod2html not found. Using old niceload.html"
|
|
||||||
/bin/bash: pod2html: command not found
|
|
||||||
Warning: pod2html not found. Using old niceload.html
|
|
||||||
rm -f ./pod2htm*
|
|
||||||
pod2html --title "GNU parcat" ./parcat.pod > ./parcat.htmln \
|
|
||||||
&& mv ./parcat.htmln ./parcat.html \
|
|
||||||
|| echo "Warning: pod2html not found. Using old parcat.html"
|
|
||||||
/bin/bash: pod2html: command not found
|
|
||||||
Warning: pod2html not found. Using old parcat.html
|
|
||||||
rm -f ./pod2htm*
|
|
||||||
pod2html --title "GNU parset" ./parset.pod > ./parset.htmln \
|
|
||||||
&& mv ./parset.htmln ./parset.html \
|
|
||||||
|| echo "Warning: pod2html not found. Using old parset.html"
|
|
||||||
/bin/bash: pod2html: command not found
|
|
||||||
Warning: pod2html not found. Using old parset.html
|
|
||||||
rm -f ./pod2htm*
|
|
||||||
pod2texi --output=./parallel.texi ./parallel.pod \
|
|
||||||
|| echo "Warning: pod2texi not found. Using old parallel.texi"
|
|
||||||
/bin/bash: pod2texi: command not found
|
|
||||||
Warning: pod2texi not found. Using old parallel.texi
|
|
||||||
pod2texi --output=./env_parallel.texi ./env_parallel.pod \
|
|
||||||
|| echo "Warning: pod2texi not found. Using old env_parallel.texi"
|
|
||||||
/bin/bash: pod2texi: command not found
|
|
||||||
Warning: pod2texi not found. Using old env_parallel.texi
|
|
||||||
pod2texi --output=./sem.texi ./sem.pod \
|
|
||||||
|| echo "Warning: pod2texi not found. Using old sem.texi"
|
|
||||||
/bin/bash: pod2texi: command not found
|
|
||||||
Warning: pod2texi not found. Using old sem.texi
|
|
||||||
pod2texi --output=./sql.texi ./sql \
|
|
||||||
|| echo "Warning: pod2texi not found. Using old sql.texi"
|
|
||||||
/bin/bash: pod2texi: command not found
|
|
||||||
Warning: pod2texi not found. Using old sql.texi
|
|
||||||
pod2texi --output=./niceload.texi ./niceload.pod \
|
|
||||||
|| echo "Warning: pod2texi not found. Using old niceload.texi"
|
|
||||||
/bin/bash: pod2texi: command not found
|
|
||||||
Warning: pod2texi not found. Using old niceload.texi
|
|
||||||
pod2texi --output=./parallel_tutorial.texi ./parallel_tutorial.pod \
|
|
||||||
|| echo "Warning: pod2texi not found. Using old parallel_tutorial.texi"
|
|
||||||
/bin/bash: pod2texi: command not found
|
|
||||||
Warning: pod2texi not found. Using old parallel_tutorial.texi
|
|
||||||
pod2texi --output=./parallel_book.texi ./parallel_book.pod \
|
|
||||||
|| echo "Warning: pod2texi not found. Using old parallel_book.texi"
|
|
||||||
/bin/bash: pod2texi: command not found
|
|
||||||
Warning: pod2texi not found. Using old parallel_book.texi
|
|
||||||
pod2texi --output=./parallel_design.texi ./parallel_design.pod \
|
|
||||||
|| echo "Warning: pod2texi not found. Using old parallel_design.texi"
|
|
||||||
/bin/bash: pod2texi: command not found
|
|
||||||
Warning: pod2texi not found. Using old parallel_design.texi
|
|
||||||
pod2texi --output=./parallel_alternatives.texi ./parallel_alternatives.pod \
|
|
||||||
|| echo "Warning: pod2texi not found. Using old parallel_alternatives.texi"
|
|
||||||
/bin/bash: pod2texi: command not found
|
|
||||||
Warning: pod2texi not found. Using old parallel_alternatives.texi
|
|
||||||
pod2texi --output=./parcat.texi ./parcat.pod \
|
|
||||||
|| echo "Warning: pod2texi not found. Using old parcat.texi"
|
|
||||||
/bin/bash: pod2texi: command not found
|
|
||||||
Warning: pod2texi not found. Using old parcat.texi
|
|
||||||
pod2texi --output=./parset.texi ./parset.pod \
|
|
||||||
|| echo "Warning: pod2texi not found. Using old parset.texi"
|
|
||||||
/bin/bash: pod2texi: command not found
|
|
||||||
Warning: pod2texi not found. Using old parset.texi
|
|
||||||
pod2pdf --output-file ./parallel.pdf ./parallel.pod --title "GNU Parallel" \
|
|
||||||
|| echo "Warning: pod2pdf not found. Using old parallel.pdf"
|
|
||||||
/bin/bash: pod2pdf: command not found
|
|
||||||
Warning: pod2pdf not found. Using old parallel.pdf
|
|
||||||
pod2pdf --output-file ./env_parallel.pdf ./env_parallel.pod --title "GNU Parallel with environment" \
|
|
||||||
|| echo "Warning: pod2pdf not found. Using old env_parallel.pdf"
|
|
||||||
/bin/bash: pod2pdf: command not found
|
|
||||||
Warning: pod2pdf not found. Using old env_parallel.pdf
|
|
||||||
pod2pdf --output-file ./sem.pdf ./sem.pod --title "GNU sem" \
|
|
||||||
|| echo "Warning: pod2pdf not found. Using old sem.pdf"
|
|
||||||
/bin/bash: pod2pdf: command not found
|
|
||||||
Warning: pod2pdf not found. Using old sem.pdf
|
|
||||||
pod2pdf --output-file ./sql.pdf ./sql --title "GNU SQL" \
|
|
||||||
|| echo "Warning: pod2pdf not found. Using old sql.pdf"
|
|
||||||
/bin/bash: pod2pdf: command not found
|
|
||||||
Warning: pod2pdf not found. Using old sql.pdf
|
|
||||||
pod2pdf --output-file ./niceload.pdf ./niceload.pod --title "GNU niceload" \
|
|
||||||
|| echo "Warning: pod2pdf not found. Using old niceload.pdf"
|
|
||||||
/bin/bash: pod2pdf: command not found
|
|
||||||
Warning: pod2pdf not found. Using old niceload.pdf
|
|
||||||
pod2pdf --output-file ./parallel_tutorial.pdf ./parallel_tutorial.pod --title "GNU Parallel Tutorial" \
|
|
||||||
|| echo "Warning: pod2pdf not found. Using old parallel_tutorial.pdf"
|
|
||||||
/bin/bash: pod2pdf: command not found
|
|
||||||
Warning: pod2pdf not found. Using old parallel_tutorial.pdf
|
|
||||||
pod2pdf --output-file ./parallel_book.pdf ./parallel_book.pod --title "GNU Parallel Book" \
|
|
||||||
|| echo "Warning: pod2pdf not found. Using old parallel_book.pdf"
|
|
||||||
/bin/bash: pod2pdf: command not found
|
|
||||||
Warning: pod2pdf not found. Using old parallel_book.pdf
|
|
||||||
pod2pdf --output-file ./parallel_design.pdf ./parallel_design.pod --title "GNU Parallel Design" \
|
|
||||||
|| echo "Warning: pod2pdf not found. Using old parallel_design.pdf"
|
|
||||||
/bin/bash: pod2pdf: command not found
|
|
||||||
Warning: pod2pdf not found. Using old parallel_design.pdf
|
|
||||||
pod2pdf --output-file ./parallel_alternatives.pdf ./parallel_alternatives.pod --title "GNU Parallel alternatives" \
|
|
||||||
|| echo "Warning: pod2pdf not found. Using old parallel_alternatives.pdf"
|
|
||||||
/bin/bash: pod2pdf: command not found
|
|
||||||
Warning: pod2pdf not found. Using old parallel_alternatives.pdf
|
|
||||||
pod2pdf --output-file ./parcat.pdf ./parcat.pod --title "GNU parcat" \
|
|
||||||
|| echo "Warning: pod2pdf not found. Using old parcat.pdf"
|
|
||||||
/bin/bash: pod2pdf: command not found
|
|
||||||
Warning: pod2pdf not found. Using old parcat.pdf
|
|
||||||
pod2pdf --output-file ./parset.pdf ./parset.pod --title "GNU parset" \
|
|
||||||
|| echo "Warning: pod2pdf not found. Using old parset.pdf"
|
|
||||||
/bin/bash: pod2pdf: command not found
|
|
||||||
Warning: pod2pdf not found. Using old parset.pdf
|
|
||||||
/bin/mkdir -p '/usr/local/share/doc/parallel'
|
|
||||||
/usr/bin/install -c -m 644 parallel.html env_parallel.html sem.html sql.html niceload.html parallel_tutorial.html parallel_book.html parallel_design.html parallel_alternatives.html parcat.html parset.html parallel.texi env_parallel.texi sem.texi sql.texi niceload.texi parallel_tutorial.texi parallel_book.texi parallel_design.texi parallel_alternatives.texi parcat.texi parset.texi parallel.pdf env_parallel.pdf sem.pdf sql.pdf niceload.pdf parallel_tutorial.pdf parallel_book.pdf parallel_design.pdf parallel_alternatives.pdf parcat.pdf parset.pdf '/usr/local/share/doc/parallel'
|
|
||||||
pod2man --release='00000000' --center='parallel' \
|
|
||||||
--section=1 ./parallel.pod > ./parallel.1n \
|
|
||||||
&& mv ./parallel.1n ./parallel.1 \
|
|
||||||
|| echo "Warning: pod2man not found. Using old parallel.1"
|
|
||||||
/bin/bash: pod2man: command not found
|
|
||||||
Warning: pod2man not found. Using old parallel.1
|
|
||||||
pod2man --release='00000000' --center='parallel' \
|
|
||||||
--section=1 ./env_parallel.pod > ./env_parallel.1n \
|
|
||||||
&& mv ./env_parallel.1n ./env_parallel.1 \
|
|
||||||
|| echo "Warning: pod2man not found. Using old env_parallel.1"
|
|
||||||
/bin/bash: pod2man: command not found
|
|
||||||
Warning: pod2man not found. Using old env_parallel.1
|
|
||||||
pod2man --release='00000000' --center='parallel' \
|
|
||||||
--section=1 ./sem.pod > ./sem.1n \
|
|
||||||
&& mv ./sem.1n ./sem.1 \
|
|
||||||
|| echo "Warning: pod2man not found. Using old sem.1"
|
|
||||||
/bin/bash: pod2man: command not found
|
|
||||||
Warning: pod2man not found. Using old sem.1
|
|
||||||
pod2man --release='00000000' --center='parallel' \
|
|
||||||
--section=1 ./sql > ./sql.1n \
|
|
||||||
&& mv ./sql.1n ./sql.1 \
|
|
||||||
|| echo "Warning: pod2man not found. Using old sql.1"
|
|
||||||
/bin/bash: pod2man: command not found
|
|
||||||
Warning: pod2man not found. Using old sql.1
|
|
||||||
pod2man --release='00000000' --center='parallel' \
|
|
||||||
--section=1 ./niceload.pod > ./niceload.1n \
|
|
||||||
&& mv ./niceload.1n ./niceload.1 \
|
|
||||||
|| echo "Warning: pod2man not found. Using old niceload.1"
|
|
||||||
/bin/bash: pod2man: command not found
|
|
||||||
Warning: pod2man not found. Using old niceload.1
|
|
||||||
pod2man --release='00000000' --center='parallel' \
|
|
||||||
--section=7 ./parallel_tutorial.pod > ./parallel_tutorial.7n \
|
|
||||||
&& mv ./parallel_tutorial.7n ./parallel_tutorial.7 \
|
|
||||||
|| echo "Warning: pod2man not found. Using old parallel_tutorial.7"
|
|
||||||
/bin/bash: pod2man: command not found
|
|
||||||
Warning: pod2man not found. Using old parallel_tutorial.7
|
|
||||||
pod2man --release='00000000' --center='parallel' \
|
|
||||||
--section=7 ./parallel_book.pod > ./parallel_book.7n \
|
|
||||||
&& mv ./parallel_book.7n ./parallel_book.7 \
|
|
||||||
|| echo "Warning: pod2man not found. Using old parallel_book.7"
|
|
||||||
/bin/bash: pod2man: command not found
|
|
||||||
Warning: pod2man not found. Using old parallel_book.7
|
|
||||||
pod2man --release='00000000' --center='parallel' \
|
|
||||||
--section=7 ./parallel_design.pod > ./parallel_design.7n \
|
|
||||||
&& mv ./parallel_design.7n ./parallel_design.7 \
|
|
||||||
|| echo "Warning: pod2man not found. Using old parallel_design.7"
|
|
||||||
/bin/bash: pod2man: command not found
|
|
||||||
Warning: pod2man not found. Using old parallel_design.7
|
|
||||||
pod2man --release='00000000' --center='parallel' \
|
|
||||||
--section=7 ./parallel_alternatives.pod > ./parallel_alternatives.7n \
|
|
||||||
&& mv ./parallel_alternatives.7n ./parallel_alternatives.7 \
|
|
||||||
|| echo "Warning: pod2man not found. Using old parallel_alternatives.7"
|
|
||||||
/bin/bash: pod2man: command not found
|
|
||||||
Warning: pod2man not found. Using old parallel_alternatives.7
|
|
||||||
pod2man --release='00000000' --center='parallel' \
|
|
||||||
--section=1 ./parcat.pod > ./parcat.1n \
|
|
||||||
&& mv ./parcat.1n ./parcat.1 \
|
|
||||||
|| echo "Warning: pod2man not found. Using old parcat.1"
|
|
||||||
/bin/bash: pod2man: command not found
|
|
||||||
Warning: pod2man not found. Using old parcat.1
|
|
||||||
pod2man --release='00000000' --center='parallel' \
|
|
||||||
--section=1 ./parset.pod > ./parset.1n \
|
|
||||||
&& mv ./parset.1n ./parset.1 \
|
|
||||||
|| echo "Warning: pod2man not found. Using old parset.1"
|
|
||||||
/bin/bash: pod2man: command not found
|
|
||||||
Warning: pod2man not found. Using old parset.1
|
|
||||||
/bin/mkdir -p '/usr/local/share/man/man1'
|
|
||||||
/usr/bin/install -c -m 644 parallel.1 env_parallel.1 sem.1 sql.1 niceload.1 parcat.1 parset.1 '/usr/local/share/man/man1'
|
|
||||||
/bin/mkdir -p '/usr/local/share/man/man7'
|
|
||||||
/usr/bin/install -c -m 644 parallel_tutorial.7 parallel_book.7 parallel_design.7 parallel_alternatives.7 '/usr/local/share/man/man7'
|
|
||||||
make[0]: Leaving directory '/tmp/parallel-00000000/src'
|
|
||||||
make[0]: Leaving directory '/tmp/parallel-00000000/src'
|
|
||||||
make[0]: Entering directory '/tmp/parallel-00000000'
|
|
||||||
make[0]: Entering directory '/tmp/parallel-00000000'
|
|
||||||
make[0]: Nothing to be done for 'install-exec-am'.
|
|
||||||
make[0]: Nothing to be done for 'install-data-am'.
|
|
||||||
make[0]: Leaving directory '/tmp/parallel-00000000'
|
|
||||||
make[0]: Leaving directory '/tmp/parallel-00000000'
|
|
|
@ -46,12 +46,12 @@ par_exit_code dash parallel --halt-on-error now,done=1 "true;exit" ::: 100 100
|
||||||
par_exit_code fish /tmp/mysleep 100 137
|
par_exit_code fish /tmp/mysleep 100 137
|
||||||
par_exit_code fish parallel --halt-on-error now,fail=1 /tmp/mysleep ::: 100 137
|
par_exit_code fish parallel --halt-on-error now,fail=1 /tmp/mysleep ::: 100 137
|
||||||
par_exit_code fish parallel --halt-on-error now,done=1 /tmp/mysleep ::: 100 137
|
par_exit_code fish parallel --halt-on-error now,done=1 /tmp/mysleep ::: 100 137
|
||||||
par_exit_code fish parallel --halt-on-error now,done=1 true ::: 100 1
|
par_exit_code fish parallel --halt-on-error now,done=1 true ::: 100 0
|
||||||
par_exit_code fish parallel --halt-on-error now,done=1 exit ::: 100 100
|
par_exit_code fish parallel --halt-on-error now,done=1 exit ::: 100 100
|
||||||
par_exit_code fish true;/tmp/mysleep 100 137
|
par_exit_code fish true;/tmp/mysleep 100 137
|
||||||
par_exit_code fish parallel --halt-on-error now,fail=1 "true;/tmp/mysleep" ::: 100 137
|
par_exit_code fish parallel --halt-on-error now,fail=1 "true;/tmp/mysleep" ::: 100 137
|
||||||
par_exit_code fish parallel --halt-on-error now,done=1 "true;/tmp/mysleep" ::: 100 137
|
par_exit_code fish parallel --halt-on-error now,done=1 "true;/tmp/mysleep" ::: 100 137
|
||||||
par_exit_code fish parallel --halt-on-error now,done=1 "true;true" ::: 100 1
|
par_exit_code fish parallel --halt-on-error now,done=1 "true;true" ::: 100 0
|
||||||
par_exit_code fish parallel --halt-on-error now,done=1 "true;exit" ::: 100 100
|
par_exit_code fish parallel --halt-on-error now,done=1 "true;exit" ::: 100 100
|
||||||
par_exit_code mksh /tmp/mysleep 100 0
|
par_exit_code mksh /tmp/mysleep 100 0
|
||||||
par_exit_code mksh parallel --halt-on-error now,fail=1 /tmp/mysleep ::: 100 137
|
par_exit_code mksh parallel --halt-on-error now,fail=1 /tmp/mysleep ::: 100 137
|
||||||
|
|
|
@ -338,10 +338,10 @@ par_results_compress 0
|
||||||
par_results_compress 1
|
par_results_compress 1
|
||||||
par_results_csv bug #: --results csv
|
par_results_csv bug #: --results csv
|
||||||
par_results_csv --header : --tag --files --compress Seq,Host,Starttime,JobRuntime,Send,Receive,Exitval,Signal,Command,H2,H1,Stdout,Stderr
|
par_results_csv --header : --tag --files --compress Seq,Host,Starttime,JobRuntime,Send,Receive,Exitval,Signal,Command,H2,H1,Stdout,Stderr
|
||||||
par_results_csv --header : --tag --files --compress 1,:,999.999,999.999,0,31,0,0,"echo 22 11",22,11,"22 11 /tmp/parallel-local-10s-tmpdir/tmpfile",
|
par_results_csv --header : --tag --files --compress 1,:,999.999,999.999,0,15,0,0,"echo 22 11",22,11,"22 11 /tmp/parallel-local-10s-tmpdir/tmpfile",
|
||||||
par_results_csv --header : --tag --files --compress 2,:,999.999,999.999,0,31,0,0,"echo 22 12",22,12,"22 12 /tmp/parallel-local-10s-tmpdir/tmpfile",
|
par_results_csv --header : --tag --files --compress 2,:,999.999,999.999,0,15,0,0,"echo 22 12",22,12,"22 12 /tmp/parallel-local-10s-tmpdir/tmpfile",
|
||||||
par_results_csv --header : --tag --files --compress 3,:,999.999,999.999,0,31,0,0,"echo 23 11",23,11,"23 11 /tmp/parallel-local-10s-tmpdir/tmpfile",
|
par_results_csv --header : --tag --files --compress 3,:,999.999,999.999,0,15,0,0,"echo 23 11",23,11,"23 11 /tmp/parallel-local-10s-tmpdir/tmpfile",
|
||||||
par_results_csv --header : --tag --files --compress 4,:,999.999,999.999,0,31,0,0,"echo 23 12",23,12,"23 12 /tmp/parallel-local-10s-tmpdir/tmpfile",
|
par_results_csv --header : --tag --files --compress 4,:,999.999,999.999,0,15,0,0,"echo 23 12",23,12,"23 12 /tmp/parallel-local-10s-tmpdir/tmpfile",
|
||||||
par_results_csv --header : --tag --files Seq,Host,Starttime,JobRuntime,Send,Receive,Exitval,Signal,Command,H2,H1,Stdout,Stderr
|
par_results_csv --header : --tag --files Seq,Host,Starttime,JobRuntime,Send,Receive,Exitval,Signal,Command,H2,H1,Stdout,Stderr
|
||||||
par_results_csv --header : --tag --files 1,:,999.999,999.999,0,6,0,0,"echo 22 11",22,11,"22 11 /tmp/parallel-local-10s-tmpdir/tmpfile",
|
par_results_csv --header : --tag --files 1,:,999.999,999.999,0,6,0,0,"echo 22 11",22,11,"22 11 /tmp/parallel-local-10s-tmpdir/tmpfile",
|
||||||
par_results_csv --header : --tag --files 2,:,999.999,999.999,0,6,0,0,"echo 22 12",22,12,"22 12 /tmp/parallel-local-10s-tmpdir/tmpfile",
|
par_results_csv --header : --tag --files 2,:,999.999,999.999,0,6,0,0,"echo 22 12",22,12,"22 12 /tmp/parallel-local-10s-tmpdir/tmpfile",
|
||||||
|
@ -366,10 +366,10 @@ par_results_csv --header : --tag ",
|
||||||
par_results_csv --header : --tag 4,:,999.999,999.999,0,6,0,0,"echo 23 12",23,12,"23 12 23 12
|
par_results_csv --header : --tag 4,:,999.999,999.999,0,6,0,0,"echo 23 12",23,12,"23 12 23 12
|
||||||
par_results_csv --header : --tag ",
|
par_results_csv --header : --tag ",
|
||||||
par_results_csv --header : --files --compress Seq,Host,Starttime,JobRuntime,Send,Receive,Exitval,Signal,Command,H2,H1,Stdout,Stderr
|
par_results_csv --header : --files --compress Seq,Host,Starttime,JobRuntime,Send,Receive,Exitval,Signal,Command,H2,H1,Stdout,Stderr
|
||||||
par_results_csv --header : --files --compress 1,:,999.999,999.999,0,31,0,0,"echo 22 11",22,11,/tmp/parallel-local-10s-tmpdir/tmpfile,
|
par_results_csv --header : --files --compress 1,:,999.999,999.999,0,15,0,0,"echo 22 11",22,11,/tmp/parallel-local-10s-tmpdir/tmpfile,
|
||||||
par_results_csv --header : --files --compress 2,:,999.999,999.999,0,31,0,0,"echo 22 12",22,12,/tmp/parallel-local-10s-tmpdir/tmpfile,
|
par_results_csv --header : --files --compress 2,:,999.999,999.999,0,15,0,0,"echo 22 12",22,12,/tmp/parallel-local-10s-tmpdir/tmpfile,
|
||||||
par_results_csv --header : --files --compress 3,:,999.999,999.999,0,31,0,0,"echo 23 11",23,11,/tmp/parallel-local-10s-tmpdir/tmpfile,
|
par_results_csv --header : --files --compress 3,:,999.999,999.999,0,15,0,0,"echo 23 11",23,11,/tmp/parallel-local-10s-tmpdir/tmpfile,
|
||||||
par_results_csv --header : --files --compress 4,:,999.999,999.999,0,31,0,0,"echo 23 12",23,12,/tmp/parallel-local-10s-tmpdir/tmpfile,
|
par_results_csv --header : --files --compress 4,:,999.999,999.999,0,15,0,0,"echo 23 12",23,12,/tmp/parallel-local-10s-tmpdir/tmpfile,
|
||||||
par_results_csv --header : --files Seq,Host,Starttime,JobRuntime,Send,Receive,Exitval,Signal,Command,H2,H1,Stdout,Stderr
|
par_results_csv --header : --files Seq,Host,Starttime,JobRuntime,Send,Receive,Exitval,Signal,Command,H2,H1,Stdout,Stderr
|
||||||
par_results_csv --header : --files 1,:,999.999,999.999,0,6,0,0,"echo 22 11",22,11,/tmp/parallel-local-10s-tmpdir/tmpfile,
|
par_results_csv --header : --files 1,:,999.999,999.999,0,6,0,0,"echo 22 11",22,11,/tmp/parallel-local-10s-tmpdir/tmpfile,
|
||||||
par_results_csv --header : --files 2,:,999.999,999.999,0,6,0,0,"echo 22 12",22,12,/tmp/parallel-local-10s-tmpdir/tmpfile,
|
par_results_csv --header : --files 2,:,999.999,999.999,0,6,0,0,"echo 22 12",22,12,/tmp/parallel-local-10s-tmpdir/tmpfile,
|
||||||
|
@ -394,15 +394,15 @@ par_results_csv --header : ",
|
||||||
par_results_csv --header : 4,:,999.999,999.999,0,6,0,0,"echo 23 12",23,12,"23 12
|
par_results_csv --header : 4,:,999.999,999.999,0,6,0,0,"echo 23 12",23,12,"23 12
|
||||||
par_results_csv --header : ",
|
par_results_csv --header : ",
|
||||||
par_results_csv --tag --files --compress Seq,Host,Starttime,JobRuntime,Send,Receive,Exitval,Signal,Command,V1,V2,Stdout,Stderr
|
par_results_csv --tag --files --compress Seq,Host,Starttime,JobRuntime,Send,Receive,Exitval,Signal,Command,V1,V2,Stdout,Stderr
|
||||||
par_results_csv --tag --files --compress 1,:,999.999,999.999,0,31,0,0,"echo H2 H1",H2,H1,"H2 H1 /tmp/parallel-local-10s-tmpdir/tmpfile",
|
par_results_csv --tag --files --compress 1,:,999.999,999.999,0,15,0,0,"echo H2 H1",H2,H1,"H2 H1 /tmp/parallel-local-10s-tmpdir/tmpfile",
|
||||||
par_results_csv --tag --files --compress 2,:,999.999,999.999,0,31,0,0,"echo H2 11",H2,11,"H2 11 /tmp/parallel-local-10s-tmpdir/tmpfile",
|
par_results_csv --tag --files --compress 2,:,999.999,999.999,0,15,0,0,"echo H2 11",H2,11,"H2 11 /tmp/parallel-local-10s-tmpdir/tmpfile",
|
||||||
par_results_csv --tag --files --compress 3,:,999.999,999.999,0,31,0,0,"echo H2 12",H2,12,"H2 12 /tmp/parallel-local-10s-tmpdir/tmpfile",
|
par_results_csv --tag --files --compress 3,:,999.999,999.999,0,15,0,0,"echo H2 12",H2,12,"H2 12 /tmp/parallel-local-10s-tmpdir/tmpfile",
|
||||||
par_results_csv --tag --files --compress 4,:,999.999,999.999,0,31,0,0,"echo 22 H1",22,H1,"22 H1 /tmp/parallel-local-10s-tmpdir/tmpfile",
|
par_results_csv --tag --files --compress 4,:,999.999,999.999,0,15,0,0,"echo 22 H1",22,H1,"22 H1 /tmp/parallel-local-10s-tmpdir/tmpfile",
|
||||||
par_results_csv --tag --files --compress 5,:,999.999,999.999,0,31,0,0,"echo 22 11",22,11,"22 11 /tmp/parallel-local-10s-tmpdir/tmpfile",
|
par_results_csv --tag --files --compress 5,:,999.999,999.999,0,15,0,0,"echo 22 11",22,11,"22 11 /tmp/parallel-local-10s-tmpdir/tmpfile",
|
||||||
par_results_csv --tag --files --compress 6,:,999.999,999.999,0,31,0,0,"echo 22 12",22,12,"22 12 /tmp/parallel-local-10s-tmpdir/tmpfile",
|
par_results_csv --tag --files --compress 6,:,999.999,999.999,0,15,0,0,"echo 22 12",22,12,"22 12 /tmp/parallel-local-10s-tmpdir/tmpfile",
|
||||||
par_results_csv --tag --files --compress 7,:,999.999,999.999,0,31,0,0,"echo 23 H1",23,H1,"23 H1 /tmp/parallel-local-10s-tmpdir/tmpfile",
|
par_results_csv --tag --files --compress 7,:,999.999,999.999,0,15,0,0,"echo 23 H1",23,H1,"23 H1 /tmp/parallel-local-10s-tmpdir/tmpfile",
|
||||||
par_results_csv --tag --files --compress 8,:,999.999,999.999,0,31,0,0,"echo 23 11",23,11,"23 11 /tmp/parallel-local-10s-tmpdir/tmpfile",
|
par_results_csv --tag --files --compress 8,:,999.999,999.999,0,15,0,0,"echo 23 11",23,11,"23 11 /tmp/parallel-local-10s-tmpdir/tmpfile",
|
||||||
par_results_csv --tag --files --compress 9,:,999.999,999.999,0,31,0,0,"echo 23 12",23,12,"23 12 /tmp/parallel-local-10s-tmpdir/tmpfile",
|
par_results_csv --tag --files --compress 9,:,999.999,999.999,0,15,0,0,"echo 23 12",23,12,"23 12 /tmp/parallel-local-10s-tmpdir/tmpfile",
|
||||||
par_results_csv --tag --files Seq,Host,Starttime,JobRuntime,Send,Receive,Exitval,Signal,Command,V1,V2,Stdout,Stderr
|
par_results_csv --tag --files Seq,Host,Starttime,JobRuntime,Send,Receive,Exitval,Signal,Command,V1,V2,Stdout,Stderr
|
||||||
par_results_csv --tag --files 1,:,999.999,999.999,0,6,0,0,"echo H2 H1",H2,H1,"H2 H1 /tmp/parallel-local-10s-tmpdir/tmpfile",
|
par_results_csv --tag --files 1,:,999.999,999.999,0,6,0,0,"echo H2 H1",H2,H1,"H2 H1 /tmp/parallel-local-10s-tmpdir/tmpfile",
|
||||||
par_results_csv --tag --files 2,:,999.999,999.999,0,6,0,0,"echo H2 11",H2,11,"H2 11 /tmp/parallel-local-10s-tmpdir/tmpfile",
|
par_results_csv --tag --files 2,:,999.999,999.999,0,6,0,0,"echo H2 11",H2,11,"H2 11 /tmp/parallel-local-10s-tmpdir/tmpfile",
|
||||||
|
@ -452,15 +452,15 @@ par_results_csv --tag ",
|
||||||
par_results_csv --tag 9,:,999.999,999.999,0,6,0,0,"echo 23 12",23,12,"23 12 23 12
|
par_results_csv --tag 9,:,999.999,999.999,0,6,0,0,"echo 23 12",23,12,"23 12 23 12
|
||||||
par_results_csv --tag ",
|
par_results_csv --tag ",
|
||||||
par_results_csv --files --compress Seq,Host,Starttime,JobRuntime,Send,Receive,Exitval,Signal,Command,V1,V2,Stdout,Stderr
|
par_results_csv --files --compress Seq,Host,Starttime,JobRuntime,Send,Receive,Exitval,Signal,Command,V1,V2,Stdout,Stderr
|
||||||
par_results_csv --files --compress 1,:,999.999,999.999,0,31,0,0,"echo H2 H1",H2,H1,/tmp/parallel-local-10s-tmpdir/tmpfile,
|
par_results_csv --files --compress 1,:,999.999,999.999,0,15,0,0,"echo H2 H1",H2,H1,/tmp/parallel-local-10s-tmpdir/tmpfile,
|
||||||
par_results_csv --files --compress 2,:,999.999,999.999,0,31,0,0,"echo H2 11",H2,11,/tmp/parallel-local-10s-tmpdir/tmpfile,
|
par_results_csv --files --compress 2,:,999.999,999.999,0,15,0,0,"echo H2 11",H2,11,/tmp/parallel-local-10s-tmpdir/tmpfile,
|
||||||
par_results_csv --files --compress 3,:,999.999,999.999,0,31,0,0,"echo H2 12",H2,12,/tmp/parallel-local-10s-tmpdir/tmpfile,
|
par_results_csv --files --compress 3,:,999.999,999.999,0,15,0,0,"echo H2 12",H2,12,/tmp/parallel-local-10s-tmpdir/tmpfile,
|
||||||
par_results_csv --files --compress 4,:,999.999,999.999,0,31,0,0,"echo 22 H1",22,H1,/tmp/parallel-local-10s-tmpdir/tmpfile,
|
par_results_csv --files --compress 4,:,999.999,999.999,0,15,0,0,"echo 22 H1",22,H1,/tmp/parallel-local-10s-tmpdir/tmpfile,
|
||||||
par_results_csv --files --compress 5,:,999.999,999.999,0,31,0,0,"echo 22 11",22,11,/tmp/parallel-local-10s-tmpdir/tmpfile,
|
par_results_csv --files --compress 5,:,999.999,999.999,0,15,0,0,"echo 22 11",22,11,/tmp/parallel-local-10s-tmpdir/tmpfile,
|
||||||
par_results_csv --files --compress 6,:,999.999,999.999,0,31,0,0,"echo 22 12",22,12,/tmp/parallel-local-10s-tmpdir/tmpfile,
|
par_results_csv --files --compress 6,:,999.999,999.999,0,15,0,0,"echo 22 12",22,12,/tmp/parallel-local-10s-tmpdir/tmpfile,
|
||||||
par_results_csv --files --compress 7,:,999.999,999.999,0,31,0,0,"echo 23 H1",23,H1,/tmp/parallel-local-10s-tmpdir/tmpfile,
|
par_results_csv --files --compress 7,:,999.999,999.999,0,15,0,0,"echo 23 H1",23,H1,/tmp/parallel-local-10s-tmpdir/tmpfile,
|
||||||
par_results_csv --files --compress 8,:,999.999,999.999,0,31,0,0,"echo 23 11",23,11,/tmp/parallel-local-10s-tmpdir/tmpfile,
|
par_results_csv --files --compress 8,:,999.999,999.999,0,15,0,0,"echo 23 11",23,11,/tmp/parallel-local-10s-tmpdir/tmpfile,
|
||||||
par_results_csv --files --compress 9,:,999.999,999.999,0,31,0,0,"echo 23 12",23,12,/tmp/parallel-local-10s-tmpdir/tmpfile,
|
par_results_csv --files --compress 9,:,999.999,999.999,0,15,0,0,"echo 23 12",23,12,/tmp/parallel-local-10s-tmpdir/tmpfile,
|
||||||
par_results_csv --files Seq,Host,Starttime,JobRuntime,Send,Receive,Exitval,Signal,Command,V1,V2,Stdout,Stderr
|
par_results_csv --files Seq,Host,Starttime,JobRuntime,Send,Receive,Exitval,Signal,Command,V1,V2,Stdout,Stderr
|
||||||
par_results_csv --files 1,:,999.999,999.999,0,6,0,0,"echo H2 H1",H2,H1,/tmp/parallel-local-10s-tmpdir/tmpfile,
|
par_results_csv --files 1,:,999.999,999.999,0,6,0,0,"echo H2 H1",H2,H1,/tmp/parallel-local-10s-tmpdir/tmpfile,
|
||||||
par_results_csv --files 2,:,999.999,999.999,0,6,0,0,"echo H2 11",H2,11,/tmp/parallel-local-10s-tmpdir/tmpfile,
|
par_results_csv --files 2,:,999.999,999.999,0,6,0,0,"echo H2 11",H2,11,/tmp/parallel-local-10s-tmpdir/tmpfile,
|
||||||
|
@ -528,9 +528,9 @@ par_slow_total_jobs 2
|
||||||
par_slow_total_jobs parallel: Warning: Reading X arguments took longer than XX seconds.
|
par_slow_total_jobs parallel: Warning: Reading X arguments took longer than XX seconds.
|
||||||
par_sockets_cores_threads ### Test --number-of-sockets/cores/threads
|
par_sockets_cores_threads ### Test --number-of-sockets/cores/threads
|
||||||
par_sockets_cores_threads 1
|
par_sockets_cores_threads 1
|
||||||
par_sockets_cores_threads 2
|
par_sockets_cores_threads 4
|
||||||
par_sockets_cores_threads 2
|
par_sockets_cores_threads 8
|
||||||
par_sockets_cores_threads 2
|
par_sockets_cores_threads 4
|
||||||
par_sockets_cores_threads ### Test --use-sockets-instead-of-threads
|
par_sockets_cores_threads ### Test --use-sockets-instead-of-threads
|
||||||
par_sockets_cores_threads threads done
|
par_sockets_cores_threads threads done
|
||||||
par_sockets_cores_threads sockets done
|
par_sockets_cores_threads sockets done
|
||||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -90,14 +90,14 @@ par_tee_ssh 2
|
||||||
par_tee_ssh 3
|
par_tee_ssh 3
|
||||||
par_tee_ssh 3
|
par_tee_ssh 3
|
||||||
par_wd_no_such_dir ### --wd no-such-dir - csh
|
par_wd_no_such_dir ### --wd no-such-dir - csh
|
||||||
par_wd_no_such_dir mkdir: cannot create directory ‘/no-such-dir’: Permission denied
|
par_wd_no_such_dir mkdir: cannot create directory '/no-such-dir': Permission denied
|
||||||
par_wd_no_such_dir parallel: Cannot chdir to /no-such-dir
|
par_wd_no_such_dir parallel: Cannot chdir to /no-such-dir
|
||||||
par_wd_no_such_dir Exit code 1
|
par_wd_no_such_dir Exit code 1
|
||||||
par_wd_no_such_dir ### --wd no-such-dir - tcsh
|
par_wd_no_such_dir ### --wd no-such-dir - tcsh
|
||||||
par_wd_no_such_dir mkdir: cannot create directory ‘/no-such-dir’: Permission denied
|
par_wd_no_such_dir mkdir: cannot create directory '/no-such-dir': Permission denied
|
||||||
par_wd_no_such_dir parallel: Cannot chdir to /no-such-dir
|
par_wd_no_such_dir parallel: Cannot chdir to /no-such-dir
|
||||||
par_wd_no_such_dir Exit code 1
|
par_wd_no_such_dir Exit code 1
|
||||||
par_wd_no_such_dir ### --wd no-such-dir - bash
|
par_wd_no_such_dir ### --wd no-such-dir - bash
|
||||||
par_wd_no_such_dir mkdir: cannot create directory ‘/no-such-dir’: Permission denied
|
par_wd_no_such_dir mkdir: cannot create directory '/no-such-dir': Permission denied
|
||||||
par_wd_no_such_dir parallel: Cannot chdir to /no-such-dir
|
par_wd_no_such_dir parallel: Cannot chdir to /no-such-dir
|
||||||
par_wd_no_such_dir Exit code 1
|
par_wd_no_such_dir Exit code 1
|
||||||
|
|
|
@ -54,7 +54,7 @@ par_autossh AUTOSSH_DEBUG - turn logging to maximum verbosity and log
|
||||||
par_autossh stderr
|
par_autossh stderr
|
||||||
par_autossh
|
par_autossh
|
||||||
par_autossh rsync: connection unexpectedly closed (0 bytes received so far) [sender]
|
par_autossh rsync: connection unexpectedly closed (0 bytes received so far) [sender]
|
||||||
par_autossh rsync error: error in rsync protocol data stream (code 12) at io.c(235) [sender=3.1.2]
|
par_autossh rsync error: error in rsync protocol data stream (code 12) at io.c(226) [sender=3.1.1]
|
||||||
par_autossh /usr/lib/autossh/autossh: invalid option -- '-'
|
par_autossh /usr/lib/autossh/autossh: invalid option -- '-'
|
||||||
par_autossh usage: autossh [-V] [-M monitor_port[:echo_port]] [-f] [SSH_OPTIONS]
|
par_autossh usage: autossh [-V] [-M monitor_port[:echo_port]] [-f] [SSH_OPTIONS]
|
||||||
par_autossh
|
par_autossh
|
||||||
|
@ -86,4 +86,4 @@ par_autossh AUTOSSH_DEBUG - turn logging to maximum verbosity and log
|
||||||
par_autossh stderr
|
par_autossh stderr
|
||||||
par_autossh
|
par_autossh
|
||||||
par_autossh rsync: connection unexpectedly closed (0 bytes received so far) [Receiver]
|
par_autossh rsync: connection unexpectedly closed (0 bytes received so far) [Receiver]
|
||||||
par_autossh rsync error: error in rsync protocol data stream (code 12) at io.c(235) [Receiver=3.1.2]
|
par_autossh rsync error: error in rsync protocol data stream (code 12) at io.c(226) [Receiver=3.1.1]
|
||||||
|
|
|
@ -66,6 +66,8 @@ par_zsh_parset 2
|
||||||
par_zsh_parset 3
|
par_zsh_parset 3
|
||||||
par_zsh_parset myecho myvar myarr 0 myfun foo myecho myvar myarr 0 myfun bar myecho myvar myarr 0 myfun baz
|
par_zsh_parset myecho myvar myarr 0 myfun foo myecho myvar myarr 0 myfun bar myecho myvar myarr 0 myfun baz
|
||||||
par_zsh_parset myecho myvar myarr 0 myfun foo myecho myvar myarr 0 myfun bar myecho myvar myarr 0 myfun baz
|
par_zsh_parset myecho myvar myarr 0 myfun foo myecho myvar myarr 0 myfun bar myecho myvar myarr 0 myfun baz
|
||||||
|
par_zsh_parset Exit value 2 = 2
|
||||||
|
par_zsh_parset Exit value 2 = 2
|
||||||
par_zsh_man ### zsh
|
par_zsh_man ### zsh
|
||||||
par_zsh_man ### From man env_parallel
|
par_zsh_man ### From man env_parallel
|
||||||
par_zsh_man aliases with = & " ! ' work
|
par_zsh_man aliases with = & " ! ' work
|
||||||
|
@ -368,7 +370,7 @@ par_tcsh_funky
|
||||||
par_tcsh_funky 3 arg alias_works
|
par_tcsh_funky 3 arg alias_works
|
||||||
par_tcsh_funky 3 arg alias_works_over_ssh
|
par_tcsh_funky 3 arg alias_works_over_ssh
|
||||||
par_tcsh_funky Funky-
!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€<7F>‚ƒ„…†‡ˆ‰Š‹Œ<E280B9>Ž<EFBFBD><C5BD>‘’“”•–—˜™š›œ<E280BA>žŸ ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ-funky alias_var_works
|
par_tcsh_funky Funky-
!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€<7F>‚ƒ„…†‡ˆ‰Š‹Œ<E280B9>Ž<EFBFBD><C5BD>‘’“”•–—˜™š›œ<E280BA>žŸ ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ-funky alias_var_works
|
||||||
par_tcsh_funky Funky-
!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~
¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ-funky alias_var_works_over_ssh
|
par_tcsh_funky Funky-
!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€<EFBFBD>‚ƒ„…†‡ˆ‰Š‹Œ<EFBFBD>Ž<EFBFBD><EFBFBD>‘’“”•–—˜™š›œ<EFBFBD>žŸ ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ-funky alias_var_works_over_ssh
|
||||||
par_tcsh_funky \\\\\\\\ \ \\\
\\\\\\\\\\\\\\ \!\"\#\$%\&\'\(\)\*+,-./0123456789:\;\<\=\>\?@ABCDEFGHIJKLMNOPQRSTUVWXYZ\[\\\]\^_\`abcdefghijklmnopqrstuvwxyz\{\|\}\~€<7F>\‚\ƒ\„\…\†\‡\ˆ\‰\Š\‹\Œ\<5C>\Ž\<5C>\<5C>\‘\’\“\”\•\–\—\˜\™\š\›\œ\<5C>\ž\Ÿ\ \¡\¢\£\¤\¥\¦\§\¨\©\ª\«\¬\\®\¯\°\±\²\³\´\µ\¶\·\¸\¹\º\»\¼\½\¾\¿\À\Á\Â\Ã\Ä\Å\Æ\Ç\È\É\Ê\Ë\Ì\Í\Î\Ï\Ð\Ñ\Ò\Ó\Ô\Õ\Ö\×\Ø\Ù\Ú\Û\Ü\Ý\Þ\ß\à\á\â\ã\ä\å\æ\ç\è\é\ê\ë\ì\í\î\ï\ð\ñ\ò\ó\ô\õ\ö\÷\ø\ù\ú\û\ü\ý\þ\ÿ
|
par_tcsh_funky \\\\\\\\ \ \\\
\\\\\\\\\\\\\\ \!\"\#\$%\&\'\(\)\*+,-./0123456789:\;\<\=\>\?@ABCDEFGHIJKLMNOPQRSTUVWXYZ\[\\\]\^_\`abcdefghijklmnopqrstuvwxyz\{\|\}\~€<7F>\‚\ƒ\„\…\†\‡\ˆ\‰\Š\‹\Œ\<5C>\Ž\<5C>\<5C>\‘\’\“\”\•\–\—\˜\™\š\›\œ\<5C>\ž\Ÿ\ \¡\¢\£\¤\¥\¦\§\¨\©\ª\«\¬\\®\¯\°\±\²\³\´\µ\¶\·\¸\¹\º\»\¼\½\¾\¿\À\Á\Â\Ã\Ä\Å\Æ\Ç\È\É\Ê\Ë\Ì\Í\Î\Ï\Ð\Ñ\Ò\Ó\Ô\Õ\Ö\×\Ø\Ù\Ú\Û\Ü\Ý\Þ\ß\à\á\â\ã\ä\å\æ\ç\è\é\ê\ë\ì\í\î\ï\ð\ñ\ò\ó\ô\õ\ö\÷\ø\ù\ú\û\ü\ý\þ\ÿ
|
||||||
par_tcsh_funky func_echo: Command not found.
|
par_tcsh_funky func_echo: Command not found.
|
||||||
par_tcsh_funky func_echo: Command not found.
|
par_tcsh_funky func_echo: Command not found.
|
||||||
|
@ -438,6 +440,8 @@ par_sh_parset newline2
|
||||||
par_sh_parset 1
|
par_sh_parset 1
|
||||||
par_sh_parset 2
|
par_sh_parset 2
|
||||||
par_sh_parset 3
|
par_sh_parset 3
|
||||||
|
par_sh_parset Exit value 2 = 2
|
||||||
|
par_sh_parset Exit value 2 = 2
|
||||||
par_sh_man ### sh
|
par_sh_man ### sh
|
||||||
par_sh_man ### From man env_parallel
|
par_sh_man ### From man env_parallel
|
||||||
par_sh_man aliases with = & " ! ' work
|
par_sh_man aliases with = & " ! ' work
|
||||||
|
@ -608,6 +612,8 @@ par_mksh_parset 2
|
||||||
par_mksh_parset 3
|
par_mksh_parset 3
|
||||||
par_mksh_parset myecho myvar myarr 1 myfun foo myecho myvar myarr 1 myfun bar myecho myvar myarr 1 myfun baz
|
par_mksh_parset myecho myvar myarr 1 myfun foo myecho myvar myarr 1 myfun bar myecho myvar myarr 1 myfun baz
|
||||||
par_mksh_parset myecho myvar myarr 1 myfun foo myecho myvar myarr 1 myfun bar myecho myvar myarr 1 myfun baz
|
par_mksh_parset myecho myvar myarr 1 myfun foo myecho myvar myarr 1 myfun bar myecho myvar myarr 1 myfun baz
|
||||||
|
par_mksh_parset Exit value 2 = 2
|
||||||
|
par_mksh_parset Exit value 2 = 2
|
||||||
par_mksh_man ### mksh
|
par_mksh_man ### mksh
|
||||||
par_mksh_man ### From man env_parallel
|
par_mksh_man ### From man env_parallel
|
||||||
par_mksh_man aliases with = & " ! ' work
|
par_mksh_man aliases with = & " ! ' work
|
||||||
|
@ -889,6 +895,8 @@ par_ksh_parset 2
|
||||||
par_ksh_parset 3
|
par_ksh_parset 3
|
||||||
par_ksh_parset myecho myvar myarr 1 myfun foo myecho myvar myarr 1 myfun bar myecho myvar myarr 1 myfun baz
|
par_ksh_parset myecho myvar myarr 1 myfun foo myecho myvar myarr 1 myfun bar myecho myvar myarr 1 myfun baz
|
||||||
par_ksh_parset myecho myvar myarr 1 myfun foo myecho myvar myarr 1 myfun bar myecho myvar myarr 1 myfun baz
|
par_ksh_parset myecho myvar myarr 1 myfun foo myecho myvar myarr 1 myfun bar myecho myvar myarr 1 myfun baz
|
||||||
|
par_ksh_parset Exit value 2 = 2
|
||||||
|
par_ksh_parset Exit value 2 = 2
|
||||||
par_ksh_man ### ksh
|
par_ksh_man ### ksh
|
||||||
par_ksh_man ### From man env_parallel
|
par_ksh_man ### From man env_parallel
|
||||||
par_ksh_man aliases with = & " ! ' work
|
par_ksh_man aliases with = & " ! ' work
|
||||||
|
@ -957,9 +965,9 @@ par_ksh_man work,
|
||||||
par_ksh_man too
|
par_ksh_man too
|
||||||
par_ksh_man This may never work
|
par_ksh_man This may never work
|
||||||
par_ksh_man https://unix.stackexchange.com/questions/457031/extract-full-function-definitions
|
par_ksh_man https://unix.stackexchange.com/questions/457031/extract-full-function-definitions
|
||||||
par_ksh_man /usr/bin/ksh: line 21: syntax error at line XXX: `{' unmatched
|
par_ksh_man /usr/bin/ksh: line 21: syntax error at line XXX: `(' unexpected
|
||||||
par_ksh_man /usr/bin/ksh: line 21: syntax error at line XXX: `{' unmatched
|
par_ksh_man /usr/bin/ksh: line 21: syntax error at line XXX: `(' unexpected
|
||||||
par_ksh_man /usr/bin/ksh: line 21: syntax error at line XXX: `{' unmatched
|
par_ksh_man /usr/bin/ksh: line 21: syntax error at line XXX: `(' unexpected
|
||||||
par_ksh_man exit value 2 should be 2
|
par_ksh_man exit value 2 should be 2
|
||||||
par_ksh_man Unknown option: no-such-option
|
par_ksh_man Unknown option: no-such-option
|
||||||
par_ksh_man exit value 255 should be 255
|
par_ksh_man exit value 255 should be 255
|
||||||
|
@ -1130,15 +1138,15 @@ par_fish_underscore aliases and arrays in functions work
|
||||||
par_fish_underscore aliases functions work
|
par_fish_underscore aliases functions work
|
||||||
par_fish_underscore aliases functions work
|
par_fish_underscore aliases functions work
|
||||||
par_fish_underscore ^
|
par_fish_underscore ^
|
||||||
par_fish_underscore in function “myfunc”
|
par_fish_underscore in function 'myfunc'
|
||||||
par_fish_underscore called on standard input
|
par_fish_underscore called on standard input
|
||||||
par_fish_underscore with parameter list “work”
|
par_fish_underscore with parameter list 'work'
|
||||||
par_fish_underscore
|
par_fish_underscore
|
||||||
par_fish_underscore OK if ^^^^^^^^^^^^^^^^^ no myecho
|
par_fish_underscore OK if ^^^^^^^^^^^^^^^^^ no myecho
|
||||||
par_fish_underscore ^
|
par_fish_underscore ^
|
||||||
par_fish_underscore in function “myfunc”
|
par_fish_underscore in function 'myfunc'
|
||||||
par_fish_underscore called on standard input
|
par_fish_underscore called on standard input
|
||||||
par_fish_underscore with parameter list “work”
|
par_fish_underscore with parameter list 'work'
|
||||||
par_fish_underscore
|
par_fish_underscore
|
||||||
par_fish_underscore OK if ^^^^^^^^^^^^^^^^^ no myecho
|
par_fish_underscore OK if ^^^^^^^^^^^^^^^^^ no myecho
|
||||||
par_fish_underscore ^
|
par_fish_underscore ^
|
||||||
|
@ -1277,6 +1285,8 @@ par_dash_parset newline2
|
||||||
par_dash_parset 1
|
par_dash_parset 1
|
||||||
par_dash_parset 2
|
par_dash_parset 2
|
||||||
par_dash_parset 3
|
par_dash_parset 3
|
||||||
|
par_dash_parset Exit value 2 = 2
|
||||||
|
par_dash_parset Exit value 2 = 2
|
||||||
par_dash_man ### dash
|
par_dash_man ### dash
|
||||||
par_dash_man ### From man env_parallel
|
par_dash_man ### From man env_parallel
|
||||||
par_dash_man aliases with = & " ! ' work
|
par_dash_man aliases with = & " ! ' work
|
||||||
|
@ -1553,6 +1563,8 @@ par_bash_parset 2
|
||||||
par_bash_parset 3
|
par_bash_parset 3
|
||||||
par_bash_parset myecho myvar myarr 1 myfun foo myecho myvar myarr 1 myfun bar myecho myvar myarr 1 myfun baz
|
par_bash_parset myecho myvar myarr 1 myfun foo myecho myvar myarr 1 myfun bar myecho myvar myarr 1 myfun baz
|
||||||
par_bash_parset myecho myvar myarr 1 myfun foo myecho myvar myarr 1 myfun bar myecho myvar myarr 1 myfun baz
|
par_bash_parset myecho myvar myarr 1 myfun foo myecho myvar myarr 1 myfun bar myecho myvar myarr 1 myfun baz
|
||||||
|
par_bash_parset Exit value 2 = 2
|
||||||
|
par_bash_parset Exit value 2 = 2
|
||||||
par_bash_man ### bash
|
par_bash_man ### bash
|
||||||
par_bash_man ### From man env_parallel
|
par_bash_man ### From man env_parallel
|
||||||
par_bash_man aliases with = & " ! ' work
|
par_bash_man aliases with = & " ! ' work
|
||||||
|
@ -1630,10 +1642,12 @@ par_bash_man exit value 2 should be 2
|
||||||
par_bash_man Unknown option: no-such-option
|
par_bash_man Unknown option: no-such-option
|
||||||
par_bash_man exit value 255 should be 255
|
par_bash_man exit value 255 should be 255
|
||||||
par_bash_funky
|
par_bash_funky
|
||||||
|
par_bash_funky
|
||||||
|
par_bash_funky
|
||||||
par_bash_funky
|
par_bash_funky
|
||||||
par_bash_funky
|
par_bash_funky
|
||||||
par_bash_funky -funkymultiline
|
par_bash_funky
|
||||||
par_bash_funky -funkymultiline
|
par_bash_funky
|
||||||
par_bash_funky space 6
|
par_bash_funky space 6
|
||||||
par_bash_funky space 6
|
par_bash_funky space 6
|
||||||
par_bash_funky ' '
|
par_bash_funky ' '
|
||||||
|
@ -1651,6 +1665,8 @@ par_bash_funky function_works
|
||||||
par_bash_funky function_works_over_ssh
|
par_bash_funky function_works_over_ssh
|
||||||
par_bash_funky myvar works
|
par_bash_funky myvar works
|
||||||
par_bash_funky myvar works
|
par_bash_funky myvar works
|
||||||
|
par_bash_funky -funkymultiline
|
||||||
|
par_bash_funky -funkymultiline
|
||||||
par_bash_environment_too_big bug #50815: env_parallel should warn if the environment is too big
|
par_bash_environment_too_big bug #50815: env_parallel should warn if the environment is too big
|
||||||
par_bash_environment_too_big OK_bigvar
|
par_bash_environment_too_big OK_bigvar
|
||||||
par_bash_environment_too_big OK_bigvar_remote
|
par_bash_environment_too_big OK_bigvar_remote
|
||||||
|
@ -1819,6 +1835,8 @@ par_ash_parset newline2
|
||||||
par_ash_parset 1
|
par_ash_parset 1
|
||||||
par_ash_parset 2
|
par_ash_parset 2
|
||||||
par_ash_parset 3
|
par_ash_parset 3
|
||||||
|
par_ash_parset Exit value 2 = 2
|
||||||
|
par_ash_parset Exit value 2 = 2
|
||||||
par_ash_man ### ash
|
par_ash_man ### ash
|
||||||
par_ash_man ### From man env_parallel
|
par_ash_man ### From man env_parallel
|
||||||
par_ash_man aliases with = & " ! ' work
|
par_ash_man aliases with = & " ! ' work
|
||||||
|
|
|
@ -39,7 +39,7 @@ https://www.gnu.org/software/parallel/parallel_design.html#Citation-notice
|
||||||
To silence this citation notice: run 'parallel --citation' once.
|
To silence this citation notice: run 'parallel --citation' once.
|
||||||
|
|
||||||
10 files to edit
|
10 files to edit
|
||||||
[?1049h[?1h=[1;24r[?12;25h[?12l[?25h[27m[23m[m[H[2J[?25l[24;1H"file1" [New File][2;1H[94m~ [3;1H~ [4;1H~ [5;1H~ [6;1H~ [7;1H~ [8;1H~ [9;1H~ [10;1H~ [11;1H~ [12;1H~ [13;1H~ [14;1H~ [15;1H~ [16;1H~ [17;1H~ [18;1H~ [19;1H~ [20;1H~ [21;1H~ [22;1H~ [23;1H~ [1;1H[?12l[?25h[?25l[m[24;1H[97m[41mE173: 9 more files to edit[1;1H[?12l[?25h[24;1H[m[24;1H[K[24;1H[?1l>[?1049lAcademic tradition requires you to cite works you base your article on.
|
[?1049h[?1h=[1;24r[?12;25h[?12l[?25h[27m[23m[m[H[2J[?25l[24;1H"file1" [New File][2;1H[1m[34m~ [3;1H~ [4;1H~ [5;1H~ [6;1H~ [7;1H~ [8;1H~ [9;1H~ [10;1H~ [11;1H~ [12;1H~ [13;1H~ [14;1H~ [15;1H~ [16;1H~ [17;1H~ [18;1H~ [19;1H~ [20;1H~ [21;1H~ [22;1H~ [23;1H~ [1;1H[?12l[?25h[?25l[m[24;1H[1m[37m[41mE173: 9 more files to edit[1;1H[?12l[?25h[24;1H[m[24;1H[K[24;1H[?1l>[?1049lAcademic tradition requires you to cite works you base your article on.
|
||||||
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:
|
||||||
|
|
||||||
|
|
|
@ -7,8 +7,6 @@ par_env_newline_backslash_bash 8
|
||||||
par_env_newline_backslash_csh ### Test --env for \n and \\ - single and double (*csh only) - no output is good but csh fails
|
par_env_newline_backslash_csh ### Test --env for \n and \\ - single and double (*csh only) - no output is good but csh fails
|
||||||
par_env_newline_backslash_csh 2 2\ \92V2=\ \92
|
par_env_newline_backslash_csh 2 2\ \92V2=\ \92
|
||||||
par_env_newline_backslash_csh 2 2\\ \92V2=\\ \92
|
par_env_newline_backslash_csh 2 2\\ \92V2=\\ \92
|
||||||
par_env_newline_backslash_csh 2 Unmatched ".
|
|
||||||
par_env_newline_backslash_csh 2 Unmatched '"'.
|
|
||||||
par_env_newline_backslash_onall_bash ### Test --env for \n and \\ - single and double --onall (bash only) - no output is good
|
par_env_newline_backslash_onall_bash ### Test --env for \n and \\ - single and double --onall (bash only) - no output is good
|
||||||
par_env_newline_backslash_onall_bash 16
|
par_env_newline_backslash_onall_bash 16
|
||||||
par_env_newline_backslash_onall_bash 16
|
par_env_newline_backslash_onall_bash 16
|
||||||
|
@ -17,6 +15,7 @@ par_env_newline_backslash_onall_bash 8 10
|
||||||
par_env_newline_backslash_onall_bash 8 10V2=
|
par_env_newline_backslash_onall_bash 8 10V2=
|
||||||
par_env_newline_backslash_onall_bash 8 2\\ \92V2=\\ \92
|
par_env_newline_backslash_onall_bash 8 2\\ \92V2=\\ \92
|
||||||
par_env_newline_backslash_onall_csh ### Test --env for \n and \\ - single and double --onall (*csh only) - no output is good but csh fails
|
par_env_newline_backslash_onall_csh ### Test --env for \n and \\ - single and double --onall (*csh only) - no output is good but csh fails
|
||||||
|
par_env_newline_backslash_onall_csh 8 Unmatched ".
|
||||||
par_space ### Test --env - https://savannah.gnu.org/bugs/?37351
|
par_space ### Test --env - https://savannah.gnu.org/bugs/?37351
|
||||||
par_space a 2 spaces b 1
|
par_space a 2 spaces b 1
|
||||||
par_space a 2 spaces b 1
|
par_space a 2 spaces b 1
|
||||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -208,7 +208,7 @@ Job 3 of 5
|
||||||
Job 4 of 5
|
Job 4 of 5
|
||||||
Job 5 of 5
|
Job 5 of 5
|
||||||
parallel echo {} shell quoted is {= '$_=Q($_)' =} ::: '*/!#$'
|
parallel echo {} shell quoted is {= '$_=Q($_)' =} ::: '*/!#$'
|
||||||
*/!#$ shell quoted is \*/\!\#\$
|
*/!#$ shell quoted is '*/!#$'
|
||||||
parallel echo {= 'if($_==3) { skip() }' =} ::: {1..5}
|
parallel echo {= 'if($_==3) { skip() }' =} ::: {1..5}
|
||||||
9
|
9
|
||||||
parallel echo {= 'if($arg[1]==$arg[2]) { skip() }' =} \
|
parallel echo {= 'if($arg[1]==$arg[2]) { skip() }' =} \
|
||||||
|
@ -783,6 +783,10 @@ 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: aliases, functions, variables, arrays
|
||||||
|
|
||||||
|
mksh: Put this in $HOME/.mkshrc: source `which env_parallel.mksh`
|
||||||
|
E.g. by doing: echo 'source `which env_parallel.mksh`' >> $HOME/.mkshrc
|
||||||
|
Supports: aliases, functions, variables, 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: aliases, functions, variables, arrays
|
||||||
|
@ -952,6 +956,10 @@ 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: aliases, functions, variables, arrays
|
||||||
|
|
||||||
|
mksh: Put this in $HOME/.mkshrc: source `which env_parallel.mksh`
|
||||||
|
E.g. by doing: echo 'source `which env_parallel.mksh`' >> $HOME/.mkshrc
|
||||||
|
Supports: aliases, functions, variables, 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: aliases, functions, variables, arrays
|
||||||
|
@ -987,7 +995,7 @@ For details: see man env_parallel
|
||||||
export -f my_func3
|
export -f my_func3
|
||||||
parallel -vv --workdir ... --nice 17 --env _ --trc {}.out \
|
parallel -vv --workdir ... --nice 17 --env _ --trc {}.out \
|
||||||
-S $SERVER1 my_func3 {} ::: abc-file
|
-S $SERVER1 my_func3 {} ::: abc-file
|
||||||
ssh -l parallel lo -- mkdir -p ./.TMPWORKDIR && rsync --protocol 30 -rlDzR -essh\ -l\ parallel ./abc-file lo:./.TMPWORKDIR;ssh -l parallel lo -- exec perl -e @GNU_Parallel\\\=split/_/,\\\"use_IPC::Open3\\\;_use_MIME::Base64\\\"\\\;eval\\\"@GNU_Parallel\\\"\\\;\\\$chld\\\=\\\$SIG\\\{CHLD\\\}\\\;\\\$SIG\\\{CHLD\\\}\\\=\\\"IGNORE\\\"\\\;my\\\$zip\\\=\\\(grep\\\{-x\\\$_\\\}\\\"/usr/local/bin/bzip2\\\"\\\)\\\[0\\\]\\\|\\\|\\\"bzip2\\\"\\\;open3\\\(\\\$in,\\\$out,\\\"\\\>\\\&STDERR\\\",\\\$zip,\\\"-dc\\\"\\\)\\\;if\\\(my\\\$perlpid\\\=fork\\\)\\\{close\\\$in\\\;\\\$eval\\\=join\\\"\\\",\\\<\\\$out\\\>\\\;close\\\$out\\\;\\\}else\\\{close\\\$out\\\;print\\\$in\\\(decode_base64\\\(join\\\"\\\",@ARGV\\\)\\\)\\\;close\\\$in\\\;exit\\\;\\\}wait\\\;\\\$SIG\\\{CHLD\\\}\\\=\\\$chld\\\;eval\\\$eval\\\; BASE64;_EXIT_status=$?; mkdir -p ./. && rsync --protocol 30 --rsync-path=cd\ ./.TMPWORKDIR/./.\;\ rsync -rlDzR -essh\ -l\ parallel lo:./abc-file.out ./.;ssh -l parallel lo -- rm\ -f\ ./.TMPWORKDIR/abc-file\;\ sh\ -c\ rmdir\\\ ./.TMPWORKDIR/\\\ ./.parallel/tmp/\\\ ./.parallel/\\\ 2\\\>/dev/null\\\;rm\\\ -rf\\\ ./.TMPWORKDIR\\\;;ssh -l parallel lo -- rm\ -f\ ./.TMPWORKDIR/abc-file.out\;\ sh\ -c\ rmdir\\\ ./.TMPWORKDIR/\\\ ./.parallel/tmp/\\\ ./.parallel/\\\ 2\\\>/dev/null\\\;rm\\\ -rf\\\ ./.TMPWORKDIR\\\;;ssh -l parallel lo -- rm -rf .TMPWORKDIR; exit $_EXIT_status;
|
ssh -l parallel lo -- mkdir -p ./.TMPWORKDIR && rsync --protocol 30 -rlDzR -e'ssh -l parallel' ./abc-file lo:./.TMPWORKDIR;ssh -l parallel lo -- exec perl -e "'"'@GNU_Parallel=split/_/,"use_IPC::Open3;_use_MIME::Base64";eval"@GNU_Parallel";$chld=$SIG{CHLD};$SIG{CHLD}="IGNORE";my$zip=(grep{-x$_}"/usr/local/bin/bzip2")[0]||"bzip2";open3($in,$out,">&STDERR",$zip,"-dc");if(my$perlpid=fork){close$in;$eval=join"",<$out>;close$out;}else{close$out;print$in(decode_base64(join"",@ARGV));close$in;exit;}wait;$SIG{CHLD}=$chld;eval$eval;'"'" "'"'BASE64'"'";_EXIT_status=$?; mkdir -p ./. && rsync --protocol 30 --rsync-path='cd ./.TMPWORKDIR/./.; rsync' -rlDzR -e'ssh -l parallel' lo:./abc-file.out ./.;ssh -l parallel lo -- 'rm -f ./.TMPWORKDIR/abc-file; sh -c '"'"'rmdir ./.TMPWORKDIR/ ./.parallel/tmp/ ./.parallel/ 2>/dev/null;'"'"''"'"'rm -rf ./.TMPWORKDIR;'"'";ssh -l parallel lo -- 'rm -f ./.TMPWORKDIR/abc-file.out; sh -c '"'"'rmdir ./.TMPWORKDIR/ ./.parallel/tmp/ ./.parallel/ 2>/dev/null;'"'"''"'"'rm -rf ./.TMPWORKDIR;'"'";ssh -l parallel lo -- rm -rf .TMPWORKDIR; exit $_EXIT_status;
|
||||||
parset myvar1,myvar2 echo ::: a b
|
parset myvar1,myvar2 echo ::: a b
|
||||||
echo $myvar1
|
echo $myvar1
|
||||||
echo $myvar2
|
echo $myvar2
|
||||||
|
@ -1015,6 +1023,10 @@ 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: aliases, functions, variables, arrays
|
||||||
|
|
||||||
|
mksh: Put this in $HOME/.mkshrc: source `which env_parallel.mksh`
|
||||||
|
E.g. by doing: echo 'source `which env_parallel.mksh`' >> $HOME/.mkshrc
|
||||||
|
Supports: aliases, functions, variables, 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: aliases, functions, variables, arrays
|
||||||
|
@ -1066,6 +1078,10 @@ 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: aliases, functions, variables, arrays
|
||||||
|
|
||||||
|
mksh: Put this in $HOME/.mkshrc: source `which env_parallel.mksh`
|
||||||
|
E.g. by doing: echo 'source `which env_parallel.mksh`' >> $HOME/.mkshrc
|
||||||
|
Supports: aliases, functions, variables, 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: aliases, functions, variables, arrays
|
||||||
|
@ -1115,6 +1131,10 @@ 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: aliases, functions, variables, arrays
|
||||||
|
|
||||||
|
mksh: Put this in $HOME/.mkshrc: source `which env_parallel.mksh`
|
||||||
|
E.g. by doing: echo 'source `which env_parallel.mksh`' >> $HOME/.mkshrc
|
||||||
|
Supports: aliases, functions, variables, 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: aliases, functions, variables, arrays
|
||||||
|
|
|
@ -115,10 +115,10 @@ OK
|
||||||
ls: /tmp/parallel.file*: No such file or directory
|
ls: /tmp/parallel.file*: No such file or directory
|
||||||
OK
|
OK
|
||||||
### --transfer --cleanup - multiple argument files
|
### --transfer --cleanup - multiple argument files
|
||||||
cat /tmp/parallel.file\>fire.file tmp/parallel.file\>fire.file
|
cat '/tmp/parallel.file>fire.file' 'tmp/parallel.file>fire.file'
|
||||||
file>fire
|
file>fire
|
||||||
file>fire
|
file>fire
|
||||||
cat /tmp/parallel.file\ :\ \&\ \)\ \\n\*.jpg.file tmp/parallel.file\ :\ \&\ \)\ \\n\*.jpg.file
|
cat '/tmp/parallel.file : & ) \n*.jpg.file' 'tmp/parallel.file : & ) \n*.jpg.file'
|
||||||
file : & ) \n*.jpg
|
file : & ) \n*.jpg
|
||||||
file : & ) \n*.jpg
|
file : & ) \n*.jpg
|
||||||
ls: /tmp/parallel.file*: No such file or directory
|
ls: /tmp/parallel.file*: No such file or directory
|
||||||
|
|
|
@ -77,27 +77,27 @@ OK
|
||||||
Input for ssh
|
Input for ssh
|
||||||
-l parallel one-server -- mkdir -p ./.
|
-l parallel one-server -- mkdir -p ./.
|
||||||
-l parallel one-server rsync --server -lDrRze.iLsfx . ./.
|
-l parallel one-server rsync --server -lDrRze.iLsfx . ./.
|
||||||
-l parallel one-server -- exec perl -e @GNU_Parallel\=split/_/,\"use_IPC::Open3\;_use_MIME::Base64\"\;eval\"@GNU_Parallel\"\;\$chld\=\$SIG\{CHLD\}\;\$SIG\{CHLD\}\=\"IGNORE\"\;my\$zip\=\(grep\{-x\$_\}\"/usr/local/bin/bzip2\"\)\[0\]\|\|\"bzip2\"\;open3\(\$in,\$out,\"\>\&STDERR\",\$zip,\"-dc\"\)\;if\(my\$perlpid\=fork\)\{close\$in\;\$eval\=join\"\",\<\$out\>\;close\$out\;\}else\{close\$out\;print\$in\(decode_base64\(join\"\",@ARGV\)\)\;close\$in\;exit\;\}wait\;\$SIG\{CHLD\}\=\$chld\;eval\$eval\; base64
|
-l parallel one-server -- exec perl -e '@GNU_Parallel=split/_/,"use_IPC::Open3;_use_MIME::Base64";eval"@GNU_Parallel";$chld=$SIG{CHLD};$SIG{CHLD}="IGNORE";my$zip=(grep{-x$_}"/usr/local/bin/bzip2")[0]||"bzip2";open3($in,$out,">&STDERR",$zip,"-dc");if(my$perlpid=fork){close$in;$eval=join"",<$out>;close$out;}else{close$out;print$in(decode_base64(join"",@ARGV));close$in;exit;}wait;$SIG{CHLD}=$chld;eval$eval;' base64
|
||||||
-l parallel one-server cd ././tmp; rsync --server --sender -lDrRze.iLsfx . ./parallel.file.'
|
-l parallel one-server cd ././tmp; rsync --server --sender -lDrRze.iLsfx . './parallel.file.
|
||||||
'newlineX.out
|
newlineX.out'
|
||||||
-l parallel one-server cd ././tmp; rsync --server --sender -lDrRze.iLsfx . ./parallel.file.'
|
-l parallel one-server cd ././tmp; rsync --server --sender -lDrRze.iLsfx . './parallel.file.
|
||||||
'newlineX.out2
|
newlineX.out2'
|
||||||
-l parallel one-server -- rm -f ./tmp/parallel.file.'
|
-l parallel one-server -- rm -f './tmp/parallel.file.
|
||||||
'newlineX; sh -c rmdir\ ./tmp/\ ./\ 2\>/dev/null\;
|
newlineX'; sh -c 'rmdir ./tmp/ ./ 2>/dev/null;'
|
||||||
-l parallel one-server -- rm -f ./tmp/parallel.file.'
|
-l parallel one-server -- rm -f './tmp/parallel.file.
|
||||||
'newlineX.out; sh -c rmdir\ ./tmp/\ ./\ 2\>/dev/null\;
|
newlineX.out'; sh -c 'rmdir ./tmp/ ./ 2>/dev/null;'
|
||||||
-l parallel one-server -- rm -f ./tmp/parallel.file.'
|
-l parallel one-server -- rm -f './tmp/parallel.file.
|
||||||
'newlineX.out2; sh -c rmdir\ ./tmp/\ ./\ 2\>/dev/null\;
|
newlineX.out2'; sh -c 'rmdir ./tmp/ ./ 2>/dev/null;'
|
||||||
-l parallel one-server -- mkdir -p ./.
|
-l parallel one-server -- mkdir -p ./.
|
||||||
-l parallel one-server rsync --server -lDrRze.iLsfx . ./.
|
-l parallel one-server rsync --server -lDrRze.iLsfx . ./.
|
||||||
-l parallel one-server -- exec perl -e @GNU_Parallel\=split/_/,\"use_IPC::Open3\;_use_MIME::Base64\"\;eval\"@GNU_Parallel\"\;\$chld\=\$SIG\{CHLD\}\;\$SIG\{CHLD\}\=\"IGNORE\"\;my\$zip\=\(grep\{-x\$_\}\"/usr/local/bin/bzip2\"\)\[0\]\|\|\"bzip2\"\;open3\(\$in,\$out,\"\>\&STDERR\",\$zip,\"-dc\"\)\;if\(my\$perlpid\=fork\)\{close\$in\;\$eval\=join\"\",\<\$out\>\;close\$out\;\}else\{close\$out\;print\$in\(decode_base64\(join\"\",@ARGV\)\)\;close\$in\;exit\;\}wait\;\$SIG\{CHLD\}\=\$chld\;eval\$eval\; base64
|
-l parallel one-server -- exec perl -e '@GNU_Parallel=split/_/,"use_IPC::Open3;_use_MIME::Base64";eval"@GNU_Parallel";$chld=$SIG{CHLD};$SIG{CHLD}="IGNORE";my$zip=(grep{-x$_}"/usr/local/bin/bzip2")[0]||"bzip2";open3($in,$out,">&STDERR",$zip,"-dc");if(my$perlpid=fork){close$in;$eval=join"",<$out>;close$out;}else{close$out;print$in(decode_base64(join"",@ARGV));close$in;exit;}wait;$SIG{CHLD}=$chld;eval$eval;' base64
|
||||||
-l parallel one-server cd ././tmp; rsync --server --sender -lDrRze.iLsfx . ./parallel.file.'
|
-l parallel one-server cd ././tmp; rsync --server --sender -lDrRze.iLsfx . './parallel.file.
|
||||||
'newlineX.out
|
newlineX.out'
|
||||||
-l parallel one-server cd ././tmp; rsync --server --sender -lDrRze.iLsfx . ./parallel.file.'
|
-l parallel one-server cd ././tmp; rsync --server --sender -lDrRze.iLsfx . './parallel.file.
|
||||||
'newlineX.out2
|
newlineX.out2'
|
||||||
-l parallel one-server -- rm -f ./tmp/parallel.file.'
|
-l parallel one-server -- rm -f './tmp/parallel.file.
|
||||||
'newlineX; sh -c rmdir\ ./tmp/\ ./\ 2\>/dev/null\;
|
newlineX'; sh -c 'rmdir ./tmp/ ./ 2>/dev/null;'
|
||||||
-l parallel one-server -- rm -f ./tmp/parallel.file.'
|
-l parallel one-server -- rm -f './tmp/parallel.file.
|
||||||
'newlineX.out; sh -c rmdir\ ./tmp/\ ./\ 2\>/dev/null\;
|
newlineX.out'; sh -c 'rmdir ./tmp/ ./ 2>/dev/null;'
|
||||||
-l parallel one-server -- rm -f ./tmp/parallel.file.'
|
-l parallel one-server -- rm -f './tmp/parallel.file.
|
||||||
'newlineX.out2; sh -c rmdir\ ./tmp/\ ./\ 2\>/dev/null\;
|
newlineX.out2'; sh -c 'rmdir ./tmp/ ./ 2>/dev/null;'
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
### Test $PARALLEL - single line
|
### Test $PARALLEL - single line
|
||||||
1
|
4
|
||||||
1
|
1
|
||||||
1
|
1
|
||||||
centos3.tange.dk
|
centos3.tange.dk
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
### Test --wd newtempdir/newdir/tmp/ with space dirs
|
### Test --wd newtempdir/newdir/tmp/ with space dirs
|
||||||
echo >./\ ab/c\"d/ef\ g.6
|
echo >'./ ab/c"d/ef g'.6
|
||||||
echo >\ ab/c\"d/efg.6
|
echo >' ab/c"d/efg'.6
|
||||||
echo >./b/bar.6
|
echo >./b/bar.6
|
||||||
echo >./b/foo.6
|
echo >./b/foo.6
|
||||||
echo >./\ ab\ /c\'\ d/\ ef\"g.6
|
echo >'./ ab /c'"'"' d/ ef"g'.6
|
||||||
echo >./2-col.txt.6
|
echo >./2-col.txt.6
|
||||||
echo >./a\ b/cd\ /\ ef/efg.6
|
echo >'./a b/cd / ef/efg'.6
|
||||||
./ ab /c' d/ ef"g.6
|
./ ab /c' d/ ef"g.6
|
||||||
./ ab/c"d/ef g.6
|
./ ab/c"d/ef g.6
|
||||||
./ ab/c"d/efg.6
|
./ ab/c"d/efg.6
|
||||||
|
@ -14,13 +14,13 @@ echo >./a\ b/cd\ /\ ef/efg.6
|
||||||
./b/bar.6
|
./b/bar.6
|
||||||
./b/foo.6
|
./b/foo.6
|
||||||
### Test --wd /tmp/newtempdir/newdir/tmp/ with space dirs
|
### Test --wd /tmp/newtempdir/newdir/tmp/ with space dirs
|
||||||
echo >./\ ab/c\"d/ef\ g.7
|
echo >'./ ab/c"d/ef g'.7
|
||||||
echo >\ ab/c\"d/efg.7
|
echo >' ab/c"d/efg'.7
|
||||||
echo >./b/bar.7
|
echo >./b/bar.7
|
||||||
echo >./b/foo.7
|
echo >./b/foo.7
|
||||||
echo >./\ ab\ /c\'\ d/\ ef\"g.7
|
echo >'./ ab /c'"'"' d/ ef"g'.7
|
||||||
echo >./2-col.txt.7
|
echo >./2-col.txt.7
|
||||||
echo >./a\ b/cd\ /\ ef/efg.7
|
echo >'./a b/cd / ef/efg'.7
|
||||||
./ ab /c' d/ ef"g.7
|
./ ab /c' d/ ef"g.7
|
||||||
./ ab/c"d/ef g.7
|
./ ab/c"d/ef g.7
|
||||||
./ ab/c"d/efg.7
|
./ ab/c"d/efg.7
|
||||||
|
@ -34,13 +34,13 @@ echo >./a\ b/cd\ /\ ef/efg.7
|
||||||
echo >2-col.txt.2
|
echo >2-col.txt.2
|
||||||
./2-col.txt.2
|
./2-col.txt.2
|
||||||
### Test --wd ... with space dirs
|
### Test --wd ... with space dirs
|
||||||
echo >./\ ab/c\"d/ef\ g.3
|
echo >'./ ab/c"d/ef g'.3
|
||||||
echo >\ ab/c\"d/efg.3
|
echo >' ab/c"d/efg'.3
|
||||||
echo >./b/bar.3
|
echo >./b/bar.3
|
||||||
echo >./b/foo.3
|
echo >./b/foo.3
|
||||||
echo >./\ ab\ /c\'\ d/\ ef\"g.3
|
echo >'./ ab /c'"'"' d/ ef"g'.3
|
||||||
echo >./2-col.txt.3
|
echo >./2-col.txt.3
|
||||||
echo >./a\ b/cd\ /\ ef/efg.3
|
echo >'./a b/cd / ef/efg'.3
|
||||||
./ ab /c' d/ ef"g.3
|
./ ab /c' d/ ef"g.3
|
||||||
./ ab/c"d/ef g.3
|
./ ab/c"d/ef g.3
|
||||||
./ ab/c"d/efg.3
|
./ ab/c"d/efg.3
|
||||||
|
@ -52,13 +52,13 @@ echo >./a\ b/cd\ /\ ef/efg.3
|
||||||
echo >2-col.txt.4
|
echo >2-col.txt.4
|
||||||
./2-col.txt.4
|
./2-col.txt.4
|
||||||
### Test --wd /tmp/ with space dirs
|
### Test --wd /tmp/ with space dirs
|
||||||
echo >./\ ab/c\"d/ef\ g.5
|
echo >'./ ab/c"d/ef g'.5
|
||||||
echo >\ ab/c\"d/efg.5
|
echo >' ab/c"d/efg'.5
|
||||||
echo >./b/bar.5
|
echo >./b/bar.5
|
||||||
echo >./b/foo.5
|
echo >./b/foo.5
|
||||||
echo >./\ ab\ /c\'\ d/\ ef\"g.5
|
echo >'./ ab /c'"'"' d/ ef"g'.5
|
||||||
echo >./2-col.txt.5
|
echo >./2-col.txt.5
|
||||||
echo >./a\ b/cd\ /\ ef/efg.5
|
echo >'./a b/cd / ef/efg'.5
|
||||||
./ ab /c' d/ ef"g.5
|
./ ab /c' d/ ef"g.5
|
||||||
./ ab/c"d/ef g.5
|
./ ab/c"d/ef g.5
|
||||||
./ ab/c"d/efg.5
|
./ ab/c"d/efg.5
|
||||||
|
|
|
@ -1,13 +1,13 @@
|
||||||
echo '### Test --return of weirdly named file'
|
echo '### Test --return of weirdly named file'
|
||||||
### Test --return of weirdly named file
|
### Test --return of weirdly named file
|
||||||
stdout parallel --return {} -vv -S parallel\@parallel-server1 echo '>'{} ::: 'aa<${#}" b' | perl -pe 's/\S*parallel-server\S*/one-server/;s:[a-z+=/\\0-9]{500,}:base64:i;'; rm 'aa<${#}" b'
|
stdout parallel --return {} -vv -S parallel\@parallel-server1 echo '>'{} ::: 'aa<${#}" b' | perl -pe 's/\S*parallel-server\S*/one-server/;s:[a-z+=/\\0-9]{500,}:base64:i;'; rm 'aa<${#}" b'
|
||||||
ssh -l parallel one-server -- exec perl -e @GNU_Parallel\\\=split/_/,\\\"use_IPC::Open3\\\;_use_MIME::Base64\\\"\\\;eval\\\"@GNU_Parallel\\\"\\\;\\\$chld\\\=\\\$SIG\\\{CHLD\\\}\\\;\\\$SIG\\\{CHLD\\\}\\\=\\\"IGNORE\\\"\\\;my\\\$zip\\\=\\\(grep\\\{-x\\\$_\\\}\\\"/usr/local/bin/bzip2\\\"\\\)\\\[0\\\]\\\|\\\|\\\"bzip2\\\"\\\;open3\\\(\\\$in,\\\$out,\\\"\\\>\\\&STDERR\\\",\\\$zip,\\\"-dc\\\"\\\)\\\;if\\\(my\\\$perlpid\\\=fork\\\)\\\{close\\\$in\\\;\\\$eval\\\=join\\\"\\\",\\\<\\\$out\\\>\\\;close\\\$out\\\;\\\}else\\\{close\\\$out\\\;print\\\$in\\\(decode_base64\\\(join\\\"\\\",@ARGV\\\)\\\)\\\;close\\\$in\\\;exit\\\;\\\}wait\\\;\\\$SIG\\\{CHLD\\\}\\\=\\\$chld\\\;eval\\\$eval\\\; base64;_EXIT_status=$?; mkdir -p ./. && rsync --protocol 30 --rsync-path=cd\ ././.\;\ rsync -rlDzR -essh\ -l\ parallel parallel-server1:./aa\\\<\\\$\\\{\\\#\\\}\\\"\\\ b ./.; exit $_EXIT_status;
|
ssh -l parallel one-server -- exec 'perl -e '"'"'$ENV{"PARALLEL_PID"}="XXXXX";$ENV{"PARALLEL_SEQ"}="1";$bashfunc = "";@ARGV="echo >'"'"'"'"'"'"'"'"'aa<\${#}\" b'"'"'"'"'"'"'"'"'";$shell="$ENV{SHELL}";$tmpdir="/tmp/test61-tmpdir";$nice=0;do{$ENV{PARALLEL_TMP}=$tmpdir."/par".join"",map{(0..9,"a".."z","A".."Z")[rand(62)]}(1..5);}while(-e$ENV{PARALLEL_TMP});$SIG{CHLD}=sub{$done=1;};$pid=fork;unless($pid){eval{setpgrp};eval{setpriority(0,0,$nice)};exec$shell,"-c",($bashfunc."@ARGV");die"exec:$!\n";}do{$s=$s<1?0.001+$s*1.03:$s;select(undef,undef,undef,$s);}until($done||getppid==1);kill(SIGHUP,-${pid})unless$done;wait;exit($?&127?128+($?&127):1+$?>>8)'"'";_EXIT_status=$?; mkdir -p ./. && rsync --protocol 30 --rsync-path='cd ././.; rsync' -rlDzR -e'ssh -l parallel' parallel-server1:"'"'./aa<${#}" b'"'" ./.; exit $_EXIT_status;
|
||||||
echo '### Test if remote login shell is csh'
|
echo '### Test if remote login shell is csh'
|
||||||
### Test if remote login shell is csh
|
### Test if remote login shell is csh
|
||||||
stdout parallel -k -vv -S csh@localhost 'echo $PARALLEL_PID $PARALLEL_SEQ {}| wc -w' ::: a b c | perl -pe 's/\S*parallel-server\S*/one-server/;s:[a-z+=/\\0-9]{500,}:base64:i;'
|
stdout parallel -k -vv -S csh@localhost 'echo $PARALLEL_PID $PARALLEL_SEQ {}| wc -w' ::: a b c | perl -pe 's/\S*parallel-server\S*/one-server/;s:[a-z+=/\\0-9]{500,}:base64:i;'
|
||||||
ssh -l csh localhost -- exec perl -e @GNU_Parallel\\\=split/_/,\\\"use_IPC::Open3\\\;_use_MIME::Base64\\\"\\\;eval\\\"@GNU_Parallel\\\"\\\;\\\$chld\\\=\\\$SIG\\\{CHLD\\\}\\\;\\\$SIG\\\{CHLD\\\}\\\=\\\"IGNORE\\\"\\\;my\\\$zip\\\=\\\(grep\\\{-x\\\$_\\\}\\\"/usr/local/bin/bzip2\\\"\\\)\\\[0\\\]\\\|\\\|\\\"bzip2\\\"\\\;open3\\\(\\\$in,\\\$out,\\\"\\\>\\\&STDERR\\\",\\\$zip,\\\"-dc\\\"\\\)\\\;if\\\(my\\\$perlpid\\\=fork\\\)\\\{close\\\$in\\\;\\\$eval\\\=join\\\"\\\",\\\<\\\$out\\\>\\\;close\\\$out\\\;\\\}else\\\{close\\\$out\\\;print\\\$in\\\(decode_base64\\\(join\\\"\\\",@ARGV\\\)\\\)\\\;close\\\$in\\\;exit\\\;\\\}wait\\\;\\\$SIG\\\{CHLD\\\}\\\=\\\$chld\\\;eval\\\$eval\\\; base64;
|
ssh -l csh localhost -- exec 'perl -e '"'"'$ENV{"PARALLEL_PID"}="XXXXX";$ENV{"PARALLEL_SEQ"}="1";$bashfunc = "";@ARGV="echo \$PARALLEL_PID \$PARALLEL_SEQ a| wc -w";$shell="$ENV{SHELL}";$tmpdir="/tmp/test61-tmpdir";$nice=0;do{$ENV{PARALLEL_TMP}=$tmpdir."/par".join"",map{(0..9,"a".."z","A".."Z")[rand(62)]}(1..5);}while(-e$ENV{PARALLEL_TMP});$SIG{CHLD}=sub{$done=1;};$pid=fork;unless($pid){eval{setpgrp};eval{setpriority(0,0,$nice)};exec$shell,"-c",($bashfunc."@ARGV");die"exec:$!\n";}do{$s=$s<1?0.001+$s*1.03:$s;select(undef,undef,undef,$s);}until($done||getppid==1);kill(SIGHUP,-${pid})unless$done;wait;exit($?&127?128+($?&127):1+$?>>8)'"'";
|
||||||
3
|
3
|
||||||
ssh -l csh localhost -- exec perl -e @GNU_Parallel\\\=split/_/,\\\"use_IPC::Open3\\\;_use_MIME::Base64\\\"\\\;eval\\\"@GNU_Parallel\\\"\\\;\\\$chld\\\=\\\$SIG\\\{CHLD\\\}\\\;\\\$SIG\\\{CHLD\\\}\\\=\\\"IGNORE\\\"\\\;my\\\$zip\\\=\\\(grep\\\{-x\\\$_\\\}\\\"/usr/local/bin/bzip2\\\"\\\)\\\[0\\\]\\\|\\\|\\\"bzip2\\\"\\\;open3\\\(\\\$in,\\\$out,\\\"\\\>\\\&STDERR\\\",\\\$zip,\\\"-dc\\\"\\\)\\\;if\\\(my\\\$perlpid\\\=fork\\\)\\\{close\\\$in\\\;\\\$eval\\\=join\\\"\\\",\\\<\\\$out\\\>\\\;close\\\$out\\\;\\\}else\\\{close\\\$out\\\;print\\\$in\\\(decode_base64\\\(join\\\"\\\",@ARGV\\\)\\\)\\\;close\\\$in\\\;exit\\\;\\\}wait\\\;\\\$SIG\\\{CHLD\\\}\\\=\\\$chld\\\;eval\\\$eval\\\; base64;
|
ssh -l csh localhost -- exec 'perl -e '"'"'$ENV{"PARALLEL_PID"}="XXXXX";$ENV{"PARALLEL_SEQ"}="2";$bashfunc = "";@ARGV="echo \$PARALLEL_PID \$PARALLEL_SEQ b| wc -w";$shell="$ENV{SHELL}";$tmpdir="/tmp/test61-tmpdir";$nice=0;do{$ENV{PARALLEL_TMP}=$tmpdir."/par".join"",map{(0..9,"a".."z","A".."Z")[rand(62)]}(1..5);}while(-e$ENV{PARALLEL_TMP});$SIG{CHLD}=sub{$done=1;};$pid=fork;unless($pid){eval{setpgrp};eval{setpriority(0,0,$nice)};exec$shell,"-c",($bashfunc."@ARGV");die"exec:$!\n";}do{$s=$s<1?0.001+$s*1.03:$s;select(undef,undef,undef,$s);}until($done||getppid==1);kill(SIGHUP,-${pid})unless$done;wait;exit($?&127?128+($?&127):1+$?>>8)'"'";
|
||||||
3
|
3
|
||||||
ssh -l csh localhost -- exec perl -e @GNU_Parallel\\\=split/_/,\\\"use_IPC::Open3\\\;_use_MIME::Base64\\\"\\\;eval\\\"@GNU_Parallel\\\"\\\;\\\$chld\\\=\\\$SIG\\\{CHLD\\\}\\\;\\\$SIG\\\{CHLD\\\}\\\=\\\"IGNORE\\\"\\\;my\\\$zip\\\=\\\(grep\\\{-x\\\$_\\\}\\\"/usr/local/bin/bzip2\\\"\\\)\\\[0\\\]\\\|\\\|\\\"bzip2\\\"\\\;open3\\\(\\\$in,\\\$out,\\\"\\\>\\\&STDERR\\\",\\\$zip,\\\"-dc\\\"\\\)\\\;if\\\(my\\\$perlpid\\\=fork\\\)\\\{close\\\$in\\\;\\\$eval\\\=join\\\"\\\",\\\<\\\$out\\\>\\\;close\\\$out\\\;\\\}else\\\{close\\\$out\\\;print\\\$in\\\(decode_base64\\\(join\\\"\\\",@ARGV\\\)\\\)\\\;close\\\$in\\\;exit\\\;\\\}wait\\\;\\\$SIG\\\{CHLD\\\}\\\=\\\$chld\\\;eval\\\$eval\\\; base64;
|
ssh -l csh localhost -- exec 'perl -e '"'"'$ENV{"PARALLEL_PID"}="XXXXX";$ENV{"PARALLEL_SEQ"}="3";$bashfunc = "";@ARGV="echo \$PARALLEL_PID \$PARALLEL_SEQ c| wc -w";$shell="$ENV{SHELL}";$tmpdir="/tmp/test61-tmpdir";$nice=0;do{$ENV{PARALLEL_TMP}=$tmpdir."/par".join"",map{(0..9,"a".."z","A".."Z")[rand(62)]}(1..5);}while(-e$ENV{PARALLEL_TMP});$SIG{CHLD}=sub{$done=1;};$pid=fork;unless($pid){eval{setpgrp};eval{setpriority(0,0,$nice)};exec$shell,"-c",($bashfunc."@ARGV");die"exec:$!\n";}do{$s=$s<1?0.001+$s*1.03:$s;select(undef,undef,undef,$s);}until($done||getppid==1);kill(SIGHUP,-${pid})unless$done;wait;exit($?&127?128+($?&127):1+$?>>8)'"'";
|
||||||
3
|
3
|
||||||
|
|
Loading…
Reference in a new issue