testsuite: Many small changes due to production OS upgrade. No radical changes.

This commit is contained in:
Ole Tange 2016-08-03 23:45:13 +02:00
parent 769d2706f2
commit ed76fe2979
37 changed files with 625 additions and 619 deletions

View file

@ -1,26 +1,29 @@
#!/bin/bash #!/bin/bash
mysqlrootpass=${mysqlrootpass:+FoOo} mysqlrootpass=${mysqlrootpass:-b+Ydjq4ejT4E}
# The testsuite depends on this:
sudo aptitude install imagemagick expect autossh
# DEBIAN package
sudo aptitude install dpkg-dev build-essential debhelper
# SHEBANG TOOLS
sudo aptitude install gnuplot octave ruby r-base-core
# SQL TOOLS
sudo aptitude install libdbd-pg-perl libdbd-sqlite3-perl
# Compression
sudo aptitude install pxz pixz
# To configure zsh # To configure zsh
echo Configure zsh and exit echo Configure zsh and exit
zsh zsh
INSTALL="echo sudo aptitude -y install"
# The testsuite depends on this:
$INSTALL imagemagick expect autossh sshpass jq libpod-simple-perl pod2pdf
# DEBIAN package
$INSTALL dpkg-dev build-essential debhelper
# SHEBANG TOOLS
$INSTALL gnuplot octave ruby r-base-core
# SQL TOOLS
$INSTALL libdbd-pg-perl libdbd-sqlite3-perl libdbd-csv-perl libdbd-mysql-perl rlwrap
# Compression
$INSTALL pxz pixz
# DATABASES # DATABASES
sudo aptitude install postgresql mysql-server $INSTALL postgresql mysql-server sqlite
echo '# Create PostgreSQL' echo '# Create PostgreSQL'
sudo su - postgres -c 'createdb '`whoami` sudo su - postgres -c 'createdb '`whoami`
sudo su - postgres -c 'createuser '`whoami` sudo su - postgres -c 'createuser '`whoami`
@ -32,11 +35,12 @@ sql mysql://root:"$mysqlrootpass"@/mysql "DROP DATABASE `whoami`;DROP USER '`who
sql mysql://root:"$mysqlrootpass"@/mysql "CREATE DATABASE `whoami`;CREATE USER '`whoami`'@'localhost' IDENTIFIED BY '`whoami`'; GRANT ALL ON `whoami`.* TO '`whoami`'@'localhost';" sql mysql://root:"$mysqlrootpass"@/mysql "CREATE DATABASE `whoami`;CREATE USER '`whoami`'@'localhost' IDENTIFIED BY '`whoami`'; GRANT ALL ON `whoami`.* TO '`whoami`'@'localhost';"
# SHELLS # SHELLS
sudo aptitude install ash csh fdclone fish fizsh ksh mksh pdksh posh rush sash tcsh yash zsh $INSTALL ash csh fdclone fish fizsh ksh mksh pdksh posh rc rush sash tcsh yash zsh
SSHPASS=`goodpasswd` SSHPASS=`goodpasswd`
export SSHPASS export SSHPASS
shells="bash sh csh ash tcsh zsh ksh fish fizsh mksh pdksh posh rc sash yash nopathbash nopathcsh" #shells="bash sh csh ash tcsh zsh ksh fish fizsh mksh pdksh posh rc sash yash nopathbash nopathcsh"
shells="bash sh csh ash tcsh zsh ksh fish fizsh mksh posh rc sash yash nopathbash nopathcsh"
create_shell_user() { create_shell_user() {
shell="$1" shell="$1"
sudo deluser $shell && sudo mv /home/$shell /tmp/$shell.$RANDOM sudo deluser $shell && sudo mv /home/$shell /tmp/$shell.$RANDOM
@ -47,36 +51,40 @@ create_shell_user() {
echo "ssh-keyscan" && echo "ssh-keyscan" &&
ssh $shell@lo 'ssh-keyscan -t rsa lo >> .ssh/known_hosts' && ssh $shell@lo 'ssh-keyscan -t rsa lo >> .ssh/known_hosts' &&
ssh $shell@lo 'ssh-keyscan -t rsa server >> .ssh/known_hosts' && ssh $shell@lo 'ssh-keyscan -t rsa server >> .ssh/known_hosts' &&
echo "chsh" && echo Do chsh -s $(which $shell || which ${shell#"nopath"}) $shell &&
sudo chsh -s $(which $shell || which ${shell#"nopath"}) $shell && (echo $shell | grep parallel ||
sudo chsh -s $(which $shell || which ${shell#"nopath"}) $shell) &&
echo | ssh -t $shell@lo ssh-keygen && echo | ssh -t $shell@lo ssh-keygen &&
echo Do ssh $shell@lo 'cat .ssh/id_rsa.pub >> .ssh/authorized_keys' &&
ssh $shell@lo 'cat .ssh/id_rsa.pub >> .ssh/authorized_keys' && ssh $shell@lo 'cat .ssh/id_rsa.pub >> .ssh/authorized_keys' &&
ssh $shell@lo cat .ssh/id_rsa.pub | ssh parallel@lo 'cat >> .ssh/authorized_keys' && ssh $shell@lo cat .ssh/id_rsa.pub | ssh parallel@lo 'cat >> .ssh/authorized_keys' &&
ssh $shell@lo env_parallel --install echo Do env_parallel --install &&
ssh $shell@lo env_parallel --install &&
echo OK Created $shell &&
echo
} }
export -f create_shell_user export -f create_shell_user
parallel -u --timeout 15 --retries 2 --tag -j1 create_shell_user ::: $shells . `which env_parallel.bash`
shellsplus="parallel $shells"
parallel -u --timeout 15 --retries 2 --tag -j1 create_shell_user ::: $shellsplus
# sh fails if not run by itself # sh fails if not run by itself
parallel -u --timeout 15 --retries 2 --tag -j1 create_shell_user ::: sh parallel -u --timeout 15 --retries 2 --tag -j1 create_shell_user ::: sh
parallel -j10 ssh {}@lo ssh {}@lo echo {} OK ::: $shells parallel -j10 --tag ssh {}@lo ssh {}@lo echo {} OK ::: $shells
(
ssh parallel@lo 'ssh-keyscan -t rsa lo >> .ssh/known_hosts'
ssh parallel@lo 'cat .ssh/id_rsa.pub >> .ssh/authorized_keys'
)
ssh_copy_id() { ssh_copy_id() {
from="$1" from="$1"
to="$2" to="$2"
ssh $from cat .ssh/id_rsa.pub | ssh $to 'cat >> .ssh/authorized_keys' ssh $from cat .ssh/id_rsa.pub | ssh $to 'cat >> .ssh/authorized_keys'
} }
export -f ssh_copy_id export -f ssh_copy_id
shellsplus="parallel $shells"
parallel --bar -j200% --timeout 3 --retries 10 --tag ssh_copy_id {1}@lo {2}@lo ::: $shellsplus ::: $shellsplus parallel --bar -j10 --timeout 3 --retries 10 --tag ssh_copy_id {1}@lo {2}@lo ::: $shellsplus ::: $shellsplus
parallel -j10 --retries 3 --tag ssh {1}@lo ssh {2}@lo echo OK ::: $shellsplus ::: $shellsplus parallel -j10 --timeout 3 --retries 10 --tag ssh {1}@lo ssh {2}@lo echo OK ::: $shellsplus ::: $shellsplus
# change paths to no path # change paths to no path
( (
ssh nopathbash@lo 'echo >> .bashrc PATH=/bin:/usr/bin' ssh nopathbash@lo 'echo > .bashrc PATH=/bin:/usr/bin'
ssh nopathbash@lo 'echo > .profile PATH=/bin:/usr/bin'
# Remove env_parallel from .profile # Remove env_parallel from .profile
ssh nopathbash@lo 'perl -i.bak -pe s/.*env_parallel.*// .profile .bashrc' ssh nopathbash@lo 'perl -i.bak -pe s/.*env_parallel.*// .profile .bashrc'
ssh nopathcsh@lo 'echo >> .cshrc setenv PATH /bin:/usr/bin' ssh nopathcsh@lo 'echo >> .cshrc setenv PATH /bin:/usr/bin'
@ -87,18 +95,24 @@ parallel -j10 --retries 3 --tag ssh {1}@lo ssh {2}@lo echo OK ::: $shellsplus ::
ssh-copy-id localhost ssh-copy-id localhost
# SHELLS: lsh-client against openssh server # SHELLS: lsh-client against openssh server
sudo aptitude install lsh-client $INSTALL lsh-client
cd cd
mkdir .lsh mkdir .lsh
lsh-make-seed -o ".lsh/yarrow-seed-file" lsh-make-seed -o ".lsh/yarrow-seed-file"
lsh --sloppy-host-authentication --capture-to ~/.lsh/host-acls lo echo Added host-auth lsh -c aes256-ctr --sloppy-host-authentication --capture-to ~/.lsh/host-acls lo echo Added host-auth
lsh -c aes256-ctr --sloppy-host-authentication --capture-to ~/.lsh/host-acls localhost echo Added host-auth
lsh-keygen | lsh-writekey -c none lsh-keygen | lsh-writekey -c none
lsh-export-key --openssh < ~/.lsh/identity.pub | lsh localhost 'cat >>.ssh/authorized_keys' lsh-export-key --openssh < ~/.lsh/identity.pub | lsh -c aes256-ctr lo 'cat >>.ssh/authorized_keys'
lsh-export-key --openssh < ~/.lsh/identity.pub | ssh csh@localhost 'cat >>.ssh/authorized_keys' lsh-export-key --openssh < ~/.lsh/identity.pub | ssh csh@lo 'cat >>.ssh/authorized_keys'
parallel --record-env parallel --record-env
sudo cp /usr/bin/tmux /usr/local/bin/tmux1.8 sudo cp /usr/bin/tmux /usr/local/bin/tmux1.8
ssh freebsd7.t cat .ssh/id_rsa.pub | ssh parallel@localhost 'cat >>.ssh/authorized_keys'
echo Add:
echo HostkeyAlgorithms +ssh-dss
echo to .ssh/config if you get
echo no matching host key type found. Their offer: ssh-dss

View file

@ -3,6 +3,7 @@
# Argument can be substring of tests (such as 'local') # Argument can be substring of tests (such as 'local')
export LANG=C export LANG=C
unset LC_MONETARY
SHFILE=/tmp/unittest-parallel.sh SHFILE=/tmp/unittest-parallel.sh
MAX_SEC_PER_TEST=900 MAX_SEC_PER_TEST=900
export TIMEOUT=$MAX_SEC_PER_TEST export TIMEOUT=$MAX_SEC_PER_TEST
@ -48,7 +49,7 @@ mv testsuite.log log/testsuite.log.1
date date
mkdir -p actual-results mkdir -p actual-results
ls -t tests-to-run/*${1}*.sh | egrep -v "${2}" | ls -t tests-to-run/*${1}*.sh | egrep -v "${2}" |
stdout parallel --tty -tj1 run_test | tee testsuite.log parallel --tty -tj1 run_test | tee testsuite.log
# If testsuite.log contains @@ then there is a diff # If testsuite.log contains @@ then there is a diff
if grep -q '@@' testsuite.log ; then if grep -q '@@' testsuite.log ; then
false false

View file

@ -16,6 +16,10 @@ export SMALLDISK
sudo chmod 777 /mnt/ram sudo chmod 777 /mnt/ram
) >/dev/null 2>/dev/null ) >/dev/null 2>/dev/null
stdsort() {
"$@" 2>&1 | sort;
}
export -f stdsort
# Test amount of parallelization # Test amount of parallelization
# parallel --shuf --jl /tmp/myjl -j1 'export JOBS={1};'bash tests-to-run/parallel-local-0.3s.sh ::: {1..16} ::: {1..5} # parallel --shuf --jl /tmp/myjl -j1 'export JOBS={1};'bash tests-to-run/parallel-local-0.3s.sh ::: {1..16} ::: {1..5}
@ -133,7 +137,7 @@ echo '**'
testquote() { printf '"#&/\n()*=?'"'" | PARALLEL_SHELL=$1 parallel -0 echo; }; testquote() { printf '"#&/\n()*=?'"'" | PARALLEL_SHELL=$1 parallel -0 echo; };
export -f testquote; export -f testquote;
parallel --tag -k testquote ::: ash bash csh dash fdsh fish fizsh ksh ksh93 mksh pdksh posh rbash rc rzsh sash sh static-sh tcsh yash zsh parallel --tag -k testquote ::: ash bash csh dash fdsh fish fizsh ksh ksh93 mksh posh rbash rc rzsh sash sh static-sh tcsh yash zsh
echo '**' echo '**'
@ -165,7 +169,8 @@ echo '### bug #45998: --pipe to function broken'
myfunc() { echo $1; cat; }; myfunc() { echo $1; cat; };
export -f myfunc; export -f myfunc;
echo OK | parallel --pipe myfunc {#} echo pipefunc OK | parallel --pipe myfunc {#};
echo pipefunc and more OK | parallel --pipe 'myfunc {#};echo and more OK'
echo '**' echo '**'
@ -234,7 +239,7 @@ echo 'bug #47290: xargs: Warning: a NUL character occurred in the input'
echo '**' echo '**'
echo '### Test --shellquote' echo '### Test --shellquote'
parallel --tag -q -k {} -c perl\ -e\ \'print\ pack\(\"c\*\",1..255\)\'\ \|\ parallel\ -0\ --shellquote ::: ash bash csh dash fish fizsh ksh ksh93 lksh mksh pdksh posh rzsh sash sh static-sh tcsh yash zsh csh tcsh parallel --tag -q -k {} -c perl\ -e\ \'print\ pack\(\"c\*\",1..255\)\'\ \|\ parallel\ -0\ --shellquote ::: ash bash csh dash fish fizsh ksh ksh93 lksh mksh posh rzsh sash sh static-sh tcsh yash zsh csh tcsh
echo '**' echo '**'
@ -305,12 +310,12 @@ echo '### test too long args'
echo '### Test -x' echo '### Test -x'
(seq 1 10; echo 12345; seq 12 15) | stdout parallel -j1 -km -s 10 -x echo (seq 1 10; echo 12345; seq 12 15) | stdsort parallel -j1 -km -s 10 -x echo
(seq 1 10; echo 12345; seq 12 15) | stdout parallel -j1 -kX -s 10 -x echo (seq 1 10; echo 12345; seq 12 15) | stdsort parallel -j1 -kX -s 10 -x echo
(seq 1 10; echo 12345; seq 12 15) | stdout xargs -s 10 -x echo (seq 1 10; echo 12345; seq 12 15) | stdsort xargs -s 10 -x echo
(seq 1 10; echo 1234; seq 12 15) | stdout parallel -j1 -km -s 10 -x echo (seq 1 10; echo 1234; seq 12 15) | stdsort parallel -j1 -km -s 10 -x echo
(seq 1 10; echo 1234; seq 12 15) | stdout parallel -j1 -kX -s 10 -x echo (seq 1 10; echo 1234; seq 12 15) | stdsort parallel -j1 -kX -s 10 -x echo
(seq 1 10; echo 1234; seq 12 15) | stdout xargs -s 10 -x echo (seq 1 10; echo 1234; seq 12 15) | stdsort xargs -s 10 -x echo
echo '### Test -a and --arg-file: Read input from file instead of stdin' echo '### Test -a and --arg-file: Read input from file instead of stdin'

View file

@ -8,6 +8,8 @@
TMP5G=${TMP5G:-/dev/shm} TMP5G=${TMP5G:-/dev/shm}
export TMP5G export TMP5G
rm -f /tmp/*.{tmx,pac,arg,all,log,swp,loa,ssh,df,pip,tmb,chr,tms,par}
par_retries_unreachable() { par_retries_unreachable() {
echo '### Test of --retries on unreachable host' echo '### Test of --retries on unreachable host'
seq 2 | stdout parallel -k --retries 2 -v -S 4.3.2.1,: echo seq 2 | stdout parallel -k --retries 2 -v -S 4.3.2.1,: echo

View file

@ -39,8 +39,8 @@ par_memory_leak() {
} }
export -f a_run export -f a_run
echo "### Test for memory leaks" echo "### Test for memory leaks"
echo "Of 10 runs of 1 job at least one should be bigger than a 3000 job run" echo "Of 30 runs of 1 job at least one should be bigger than a 3000 job run"
small_max=$(seq 10 | parallel a_run 1 | jq -s max) small_max=$(seq 30 | parallel a_run 1 | jq -s max)
big=$(a_run 3000) big=$(a_run 3000)
if [ $small_max -lt $big ] ; then if [ $small_max -lt $big ] ; then
echo "Bad: Memleak likely." echo "Bad: Memleak likely."

View file

@ -111,8 +111,10 @@ _EOS
# Exporting a big variable should not fail # Exporting a big variable should not fail
setenv A "`seq 1000`" setenv A "`seq 1000`"
setenv PATH ${PATH}:/tmp setenv PATH ${PATH}:/tmp
cp /usr/local/bin/env_parallel.*csh /tmp cp /usr/local/bin/env_parallel* /tmp
source `which env_parallel.csh`
# --filter to see if $PATH with parallel is transferred # --filter to see if $PATH with parallel is transferred
env_parallel --filter --env A,PATH -Slo echo '$PATH' ::: OK env_parallel --filter --env A,PATH -Slo echo '$PATH' ::: OK
# It fails due to csh word limitation: The perl bunzipper is too long
_EOS _EOS

View file

@ -23,8 +23,8 @@ echo 'bug #36707: --controlmaster eats jobs'
seq 2 | parallel -k --controlmaster --sshlogin localhost echo OK{} seq 2 | parallel -k --controlmaster --sshlogin localhost echo OK{}
echo '### --ssh lsh' echo '### --ssh lsh'
parallel --ssh lsh -S lo echo ::: OK parallel --ssh 'lsh -c aes256-ctr' -S lo echo ::: OK
echo OK | parallel --ssh lsh --pipe -S csh@lo cat echo OK | parallel --ssh 'lsh -c aes256-ctr' --pipe -S csh@lo cat
# Todo rsync/trc csh@lo # Todo rsync/trc csh@lo
# Test gl. parallel med --ssh lsh: Hvilke fejler? brug dem. Også hvis de fejler # Test gl. parallel med --ssh lsh: Hvilke fejler? brug dem. Også hvis de fejler

View file

@ -8,7 +8,12 @@ cd tmp
PARALLEL=-j8 PARALLEL=-j8
export PARALLEL export PARALLEL
cat <<'EOF' | sed -e 's/;$/; /;s/$SERVER1/'$SERVER1'/;s/$SERVER2/'$SERVER2'/' | stdout parallel -vj0 -k --joblog /tmp/jl-`basename $0` -L1 stdsort() {
"$@" 2>&1 | sort;
}
export -f stdsort
cat <<'EOF' | sed -e 's/;$/; /;s/$SERVER1/'$SERVER1'/;s/$SERVER2/'$SERVER2'/' | stdout parallel -vj200 -k --joblog /tmp/jl-`basename $0` -L1
echo '### -0 -n3 echo < files0.xi' echo '### -0 -n3 echo < files0.xi'
stdout xargs -0 -n3 echo < files0.xi stdout xargs -0 -n3 echo < files0.xi
stdout parallel -k -0 -n3 echo < files0.xi stdout parallel -k -0 -n3 echo < files0.xi
@ -22,8 +27,8 @@ echo '### -i -0 echo from \{\} to x{}y < items-0.xi'
stdout xargs -i -0 echo from \{\} to x{}y < items-0.xi stdout xargs -i -0 echo from \{\} to x{}y < items-0.xi
stdout parallel -k -i -0 echo from \{\} to x{}y < items-0.xi stdout parallel -k -i -0 echo from \{\} to x{}y < items-0.xi
echo '### -i -s26 -0 echo from \{\} to x{}y < items-0.xi' echo '### -i -s26 -0 echo from \{\} to x{}y < items-0.xi'
stdout xargs -i -s26 -0 echo from \{\} to x{}y < items-0.xi stdsort xargs -i -s26 -0 echo from \{\} to x{}y < items-0.xi
stdout parallel -k -i -s26 -0 echo from \{\} to x{}y < items-0.xi stdsort parallel -k -i -s26 -0 echo from \{\} to x{}y < items-0.xi
echo '### -l -0 echo < ldata-0.xi' echo '### -l -0 echo < ldata-0.xi'
stdout xargs -l -0 echo < ldata-0.xi stdout xargs -l -0 echo < ldata-0.xi
stdout parallel -l -k -0 echo < ldata-0.xi stdout parallel -l -k -0 echo < ldata-0.xi
@ -201,11 +206,11 @@ echo '### -L2 echo < ldata.xi'
stdout xargs -L2 echo < ldata.xi stdout xargs -L2 echo < ldata.xi
stdout parallel -k -L2 echo < ldata.xi stdout parallel -k -L2 echo < ldata.xi
echo '### echo < unmatched2.xi' echo '### echo < unmatched2.xi'
stdout xargs echo < unmatched2.xi stdsort xargs echo < unmatched2.xi
stdout parallel -k echo < unmatched2.xi stdsort parallel -k echo < unmatched2.xi
echo '### echo < unmatched.xi' echo '### echo < unmatched.xi'
stdout xargs echo < unmatched.xi stdsort xargs echo < unmatched.xi
stdout parallel -k echo < unmatched.xi stdsort parallel -k echo < unmatched.xi
echo '### -n2 -x echo < unmatched.xi' echo '### -n2 -x echo < unmatched.xi'
stdout xargs -n2 -x echo < unmatched.xi stdout xargs -n2 -x echo < unmatched.xi
stdout parallel -k -n2 -x echo < unmatched.xi stdout parallel -k -n2 -x echo < unmatched.xi
@ -225,8 +230,8 @@ echo '### -i echo from \{\} to x{}y < items.xi'
stdout xargs -i echo from \{\} to x{}y < items.xi stdout xargs -i echo from \{\} to x{}y < items.xi
stdout parallel -k -i echo from \{\} to x{}y < items.xi stdout parallel -k -i echo from \{\} to x{}y < items.xi
echo '### -i -s26 echo from \{\} to x{}y < items.xi' echo '### -i -s26 echo from \{\} to x{}y < items.xi'
stdout xargs -i -s26 echo from \{\} to x{}y < items.xi stdsort xargs -i -s26 echo from \{\} to x{}y < items.xi
stdout parallel -k -i -s26 echo from \{\} to x{}y < items.xi stdsort parallel -k -i -s26 echo from \{\} to x{}y < items.xi
echo '### -i__ echo FIRST __ IS OK < quotes.xi' echo '### -i__ echo FIRST __ IS OK < quotes.xi'
stdout xargs -i__ echo FIRST __ IS OK < quotes.xi stdout xargs -i__ echo FIRST __ IS OK < quotes.xi
stdout parallel -k -i__ echo FIRST __ IS OK < quotes.xi stdout parallel -k -i__ echo FIRST __ IS OK < quotes.xi

View file

@ -74,17 +74,17 @@ echo '### bug #42892: parallel -a nonexiting --pipepart'
echo '### bug #42913: Dont use $SHELL but the shell currently running' echo '### bug #42913: Dont use $SHELL but the shell currently running'
echo '## Unknown shell => $SHELL (bash)' echo '## Unknown shell => $SHELL (bash)'
parallel -kj1 "cp \`which {}\` /tmp/SHELL; /tmp/SHELL -c 'parallel -Dinit echo ::: 1' | grep which;" parallel -kj1 "cp \`which {}\` /tmp/SHELL; /tmp/SHELL -c 'parallel -Dinit echo ::: 1' | grep which;"
::: ash bash csh dash fish fizsh ksh ksh93 mksh pdksh posh rbash rush rzsh sash sh static-sh tcsh yash zsh; ::: ash bash csh dash fish fizsh ksh ksh93 mksh posh rbash rush rzsh sash sh static-sh tcsh yash zsh;
rm -f /tmp/SHELL /tmp/par*.par rm -f /tmp/SHELL /tmp/par*.par
echo '## Known shells -c' echo '## Known shells -c'
parallel -k "\`which {}\` -c 'parallel -Dinit echo ::: 1' | grep which;" parallel -k "\`which {}\` -c 'parallel -Dinit echo ::: 1' | grep which;"
::: ash bash csh dash fdsh fish fizsh ksh ksh93 mksh pdksh posh rbash rush rzsh sash sh static-sh tcsh yash zsh; ::: ash bash csh dash fdsh fish fizsh ksh ksh93 mksh posh rbash rush rzsh sash sh static-sh tcsh yash zsh;
rm -f /tmp/par*.par rm -f /tmp/par*.par
echo '## Known shells |' echo '## Known shells |'
parallel -k "echo 'parallel -Dinit echo ::: 1' | \`which {}\` | grep which;" parallel -k "echo 'parallel -Dinit echo ::: 1' | \`which {}\` | grep which;"
::: ash bash csh dash fdsh fish fizsh ksh ksh93 mksh pdksh posh rbash rush rzsh sash sh static-sh tcsh yash zsh; ::: ash bash csh dash fdsh fish fizsh ksh ksh93 mksh posh rbash rush rzsh sash sh static-sh tcsh yash zsh;
rm -f /tmp/par*.par rm -f /tmp/par*.par
echo '## Started directly from perl' echo '## Started directly from perl'
@ -121,7 +121,7 @@ echo '### added transfersize/returnsize to local jobs'
echo '### --tmux test - check termination' echo '### --tmux test - check termination'
perl -e 'map {printf "$_%o%c\n",$_,$_}1..255' | perl -e 'map {printf "$_%o%c\n",$_,$_}1..255' |
stdout parallel --tmux echo {} :::: - ::: a b | stdout parallel --tmux 'sleep 0.2;echo {}' :::: - ::: a b |
perl -pe 's:(/tmp\S+/tms).....:$1XXXXX:;' perl -pe 's:(/tmp\S+/tms).....:$1XXXXX:;'
EOF EOF

View file

@ -32,10 +32,10 @@ echo '### test round-robin';
nice seq 1000 | $NICEPAR -j4 --block 1k --pipe --round-robin wc | sort nice seq 1000 | $NICEPAR -j4 --block 1k --pipe --round-robin wc | sort
echo '### bug #43600: --pipe --linebuffer --round does not work' echo '### bug #43600: --pipe --linebuffer --round does not work'
seq 10000000000 | parallel --pipe --linebuffer --round cat | head seq 10000000000 | parallel --pipe --linebuffer --round cat | head | wc -l
echo '### Check that 4 processes are really used' echo '### Check that 4 processes are really used'
seq 1000000 | parallel -j4 --pipe --round --line-buf wc |sort seq 1000000 | parallel -j4 --pipe --round --line-buf wc | wc -l
echo '### --version must have higher priority than retired options' echo '### --version must have higher priority than retired options'
$NICEPAR --version -g -Y -U -W -T | tail $NICEPAR --version -g -Y -U -W -T | tail

View file

@ -1,6 +1,9 @@
#!/bin/bash #!/bin/bash
MYSQL_ADMIN_DBURL=mysql://`whoami`:`whoami`@ mysqlrootpass=${mysqlrootpass:-b+Ydjq4ejT4E}
MYSQL_ADMIN_DBURL=mysql://root:$mysqlrootpass@/mysql
exec 2>&1
# Setup # Setup
sql $MYSQL_ADMIN_DBURL "drop user 'sqlunittest'@'localhost'" sql $MYSQL_ADMIN_DBURL "drop user 'sqlunittest'@'localhost'"

View file

@ -1,6 +1,9 @@
#!/bin/bash #!/bin/bash
MYSQL_ADMIN_DBURL=mysql://tange:tange@ mysqlrootpass=${mysqlrootpass:-b+Ydjq4ejT4E}
MYSQL_ADMIN_DBURL=mysql://root:$mysqlrootpass@/mysql
exec 2>&1
# Setup # Setup
sql $MYSQL_ADMIN_DBURL "drop user 'sqlunittest'@'localhost'" sql $MYSQL_ADMIN_DBURL "drop user 'sqlunittest'@'localhost'"
@ -55,9 +58,18 @@ echo "### Test dburl :"
stdout sql ':' stdout sql ':'
echo "### Test oracle with multiple arguments on the command line" echo "### Test oracle with multiple arguments on the command line"
echo ":oraunittest oracle://hr:hr@/xe" >> ~/.sql/aliases echo ":oraunittest oracle://hr:hr@oracle11.tange.dk/xe" >> ~/.sql/aliases
perl -i -ne '$seen{$_}++ || print' ~/.sql/aliases perl -i -ne '$seen{$_}++ || print' ~/.sql/aliases
sql :oraunittest "WHENEVER SQLERROR EXIT FAILURE" "SELECT 'arg2' FROM DUAL;" "SELECT 'arg3' FROM DUAL;" sql :oraunittest "WHENEVER SQLERROR EXIT FAILURE" "SELECT 'arg2' FROM DUAL;" "SELECT 'arg3' FROM DUAL;"
echo "### Test oracle with \n arguments on the command line" echo "### Test oracle with \n arguments on the command line"
sql :oraunittest 'select 1 from dual;\nselect 2 from dual;\x0aselect 3 from dual;' sql :oraunittest 'select 1 from dual;\nselect 2 from dual;\x0aselect 3 from dual;'
echo "### Test --show-tables"
sql --show-tables :oraunittest
echo "### Test --show-databases"
sql --show-databases :oraunittest
echo "### Test --listproc"
sql --listproc :oraunittest

View file

@ -1,24 +1,24 @@
### Test installation missing pod2* ### Test installation missing pod2*
make[0]: Entering directory `/home/tange/privat/parallel' make[0]: Entering directory '/mnt/4tb/home/tange/privat/parallel'
make dist-gzip am__post_remove_distdir='@:' make dist-gzip am__post_remove_distdir='@:'
make[0]: Entering directory `/home/tange/privat/parallel' make[0]: Entering directory '/mnt/4tb/home/tange/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 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" test -d "parallel-00000000" || mkdir "parallel-00000000"
(cd src && make top_distdir=../parallel-00000000 distdir=../parallel-00000000/src \ (cd src && make top_distdir=../parallel-00000000 distdir=../parallel-00000000/src \
am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir) am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)
make[0]: Entering directory `/home/tange/privat/parallel/src' make[0]: Entering directory '/mnt/4tb/home/tange/privat/parallel/src'
make[0]: Leaving directory `/home/tange/privat/parallel/src' make[0]: Leaving directory '/mnt/4tb/home/tange/privat/parallel/src'
test -n "" \ test -n "" \
|| find "parallel-00000000" -type d ! -perm -755 \ || find "parallel-00000000" -type d ! -perm -755 \
-exec chmod u+rwx,go+rx {} \; -o \ -exec chmod u+rwx,go+rx {} \; -o \
! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \
! -type d ! -perm -400 -exec chmod a+r {} \; -o \ ! -type d ! -perm -400 -exec chmod a+r {} \; -o \
! -type d ! -perm -444 -exec /bin/bash /home/tange/privat/parallel/install-sh -c -m a+r {} {} \; \ ! -type d ! -perm -444 -exec /bin/bash /mnt/4tb/home/tange/privat/parallel/install-sh -c -m a+r {} {} \; \
|| chmod -R a+r "parallel-00000000" || chmod -R a+r "parallel-00000000"
tardir=parallel-00000000 && ${TAR-tar} chof - "$tardir" | GZIP=--best gzip -c >parallel-00000000.tar.gz tardir=parallel-00000000 && ${TAR-tar} chof - "$tardir" | GZIP=--best gzip -c >parallel-00000000.tar.gz
make[0]: Leaving directory `/home/tange/privat/parallel' make[0]: Leaving directory '/mnt/4tb/home/tange/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 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 `/home/tange/privat/parallel' make[0]: Leaving directory '/mnt/4tb/home/tange/privat/parallel'
checking for a BSD-compatible install... /usr/bin/install -c checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /bin/mkdir -p checking for a thread-safe mkdir -p... /bin/mkdir -p
@ -32,306 +32,264 @@ config.status: creating Makefile
config.status: creating src/Makefile config.status: creating src/Makefile
config.status: creating config.h config.status: creating config.h
Making install in src Making install in src
make[0]: Entering directory `/tmp/parallel-00000000/src' make[0]: Entering directory '/tmp/parallel-00000000/src'
pod2man --release='00000000' --center='parallel' \ pod2man --release='00000000' --center='parallel' \
--section=1 ./parallel.pod > ./parallel.1n \ --section=1 ./parallel.pod > ./parallel.1n \
&& mv ./parallel.1n ./parallel.1 \ && mv ./parallel.1n ./parallel.1 \
|| echo "Warning: pod2man not found. Using old parallel.1" || echo "Warning: pod2man not found. Using old parallel.1"
/bin/bash: pod2man: command not found /bin/bash: pod2man: command not found
Warning: pod2man not found. Using old parallel.1 Warning: pod2man not found. Using old parallel.1
pod2man --release='00000000' --center='parallel' \ pod2man --release='00000000' --center='parallel' \
--section=1 ./env_parallel.pod > ./env_parallel.1n \ --section=1 ./env_parallel.pod > ./env_parallel.1n \
&& mv ./env_parallel.1n ./env_parallel.1 \ && mv ./env_parallel.1n ./env_parallel.1 \
|| echo "Warning: pod2man not found. Using old env_parallel.1" || echo "Warning: pod2man not found. Using old env_parallel.1"
/bin/bash: pod2man: command not found /bin/bash: pod2man: command not found
Warning: pod2man not found. Using old env_parallel.1 Warning: pod2man not found. Using old env_parallel.1
pod2man --release='00000000' --center='parallel' \ pod2man --release='00000000' --center='parallel' \
--section=1 ./sem.pod > ./sem.1n \ --section=1 ./sem.pod > ./sem.1n \
&& mv ./sem.1n ./sem.1 \ && mv ./sem.1n ./sem.1 \
|| echo "Warning: pod2man not found. Using old sem.1" || echo "Warning: pod2man not found. Using old sem.1"
/bin/bash: pod2man: command not found /bin/bash: pod2man: command not found
Warning: pod2man not found. Using old sem.1 Warning: pod2man not found. Using old sem.1
pod2man --release='00000000' --center='parallel' \ pod2man --release='00000000' --center='parallel' \
--section=1 ./sql > ./sql.1n \ --section=1 ./sql > ./sql.1n \
&& mv ./sql.1n ./sql.1 \ && mv ./sql.1n ./sql.1 \
|| echo "Warning: pod2man not found. Using old sql.1" || echo "Warning: pod2man not found. Using old sql.1"
/bin/bash: pod2man: command not found /bin/bash: pod2man: command not found
Warning: pod2man not found. Using old sql.1 Warning: pod2man not found. Using old sql.1
pod2man --release='00000000' --center='parallel' \ pod2man --release='00000000' --center='parallel' \
--section=1 ./niceload.pod > ./niceload.1n \ --section=1 ./niceload.pod > ./niceload.1n \
&& mv ./niceload.1n ./niceload.1 \ && mv ./niceload.1n ./niceload.1 \
|| echo "Warning: pod2man not found. Using old niceload.1" || echo "Warning: pod2man not found. Using old niceload.1"
/bin/bash: pod2man: command not found /bin/bash: pod2man: command not found
Warning: pod2man not found. Using old niceload.1 Warning: pod2man not found. Using old niceload.1
pod2man --release='00000000' --center='parallel' \ pod2man --release='00000000' --center='parallel' \
--section=7 ./parallel_tutorial.pod > ./parallel_tutorial.7n \ --section=7 ./parallel_tutorial.pod > ./parallel_tutorial.7n \
&& mv ./parallel_tutorial.7n ./parallel_tutorial.7 \ && mv ./parallel_tutorial.7n ./parallel_tutorial.7 \
|| echo "Warning: pod2man not found. Using old parallel_tutorial.7" || echo "Warning: pod2man not found. Using old parallel_tutorial.7"
/bin/bash: pod2man: command not found /bin/bash: pod2man: command not found
Warning: pod2man not found. Using old parallel_tutorial.7 Warning: pod2man not found. Using old parallel_tutorial.7
pod2man --release='00000000' --center='parallel' \ pod2man --release='00000000' --center='parallel' \
--section=7 ./parallel_design.pod > ./parallel_design.7n \ --section=7 ./parallel_design.pod > ./parallel_design.7n \
&& mv ./parallel_design.7n ./parallel_design.7 \ && mv ./parallel_design.7n ./parallel_design.7 \
|| echo "Warning: pod2man not found. Using old parallel_design.7" || echo "Warning: pod2man not found. Using old parallel_design.7"
/bin/bash: pod2man: command not found /bin/bash: pod2man: command not found
Warning: pod2man not found. Using old parallel_design.7 Warning: pod2man not found. Using old parallel_design.7
pod2html --title "GNU Parallel" ./parallel.pod > ./parallel.htmln \ pod2html --title "GNU Parallel" ./parallel.pod > ./parallel.htmln \
&& mv ./parallel.htmln ./parallel.html \ && mv ./parallel.htmln ./parallel.html \
|| echo "Warning: pod2html not found. Using old parallel.html" || echo "Warning: pod2html not found. Using old parallel.html"
/bin/bash: pod2html: command not found /bin/bash: pod2html: command not found
Warning: pod2html not found. Using old parallel.html Warning: pod2html not found. Using old parallel.html
rm -f ./pod2htm* rm -f ./pod2htm*
pod2html --title "GNU Parallel with environment" ./env_parallel.pod > ./env_parallel.htmln \ pod2html --title "GNU Parallel with environment" ./env_parallel.pod > ./env_parallel.htmln \
&& mv ./env_parallel.htmln ./env_parallel.html \ && mv ./env_parallel.htmln ./env_parallel.html \
|| echo "Warning: pod2html not found. Using old env_parallel.html" || echo "Warning: pod2html not found. Using old env_parallel.html"
/bin/bash: pod2html: command not found /bin/bash: pod2html: command not found
Warning: pod2html not found. Using old env_parallel.html Warning: pod2html not found. Using old env_parallel.html
rm -f ./pod2htm* rm -f ./pod2htm*
pod2html --title "GNU Parallel design" ./parallel_design.pod > ./parallel_design.htmln \ pod2html --title "GNU Parallel design" ./parallel_design.pod > ./parallel_design.htmln \
&& mv ./parallel_design.htmln ./parallel_design.html \ && mv ./parallel_design.htmln ./parallel_design.html \
|| echo "Warning: pod2html not found. Using old parallel_design.html" || echo "Warning: pod2html not found. Using old parallel_design.html"
/bin/bash: pod2html: command not found /bin/bash: pod2html: command not found
Warning: pod2html not found. Using old parallel_design.html Warning: pod2html not found. Using old parallel_design.html
rm -f ./pod2htm* rm -f ./pod2htm*
pod2html --title "sem (GNU Parallel)" ./sem.pod > ./sem.htmln \ pod2html --title "sem (GNU Parallel)" ./sem.pod > ./sem.htmln \
&& mv ./sem.htmln ./sem.html \ && mv ./sem.htmln ./sem.html \
|| echo "Warning: pod2html not found. Using old sem.html" || echo "Warning: pod2html not found. Using old sem.html"
/bin/bash: pod2html: command not found /bin/bash: pod2html: command not found
Warning: pod2html not found. Using old sem.html Warning: pod2html not found. Using old sem.html
rm -f ./pod2htm* rm -f ./pod2htm*
pod2html --title "GNU SQL" ./sql > ./sql.htmln \ pod2html --title "GNU SQL" ./sql > ./sql.htmln \
&& mv ./sql.htmln ./sql.html \ && mv ./sql.htmln ./sql.html \
|| echo "Warning: pod2html not found. Using old sql.html" || echo "Warning: pod2html not found. Using old sql.html"
/bin/bash: pod2html: command not found /bin/bash: pod2html: command not found
Warning: pod2html not found. Using old sql.html Warning: pod2html not found. Using old sql.html
rm -f ./pod2htm* rm -f ./pod2htm*
pod2html --title "GNU niceload" ./niceload.pod > ./niceload.htmln \ pod2html --title "GNU niceload" ./niceload.pod > ./niceload.htmln \
&& mv ./niceload.htmln ./niceload.html \ && mv ./niceload.htmln ./niceload.html \
|| echo "Warning: pod2html not found. Using old niceload.html" || echo "Warning: pod2html not found. Using old niceload.html"
/bin/bash: pod2html: command not found /bin/bash: pod2html: command not found
Warning: pod2html not found. Using old niceload.html Warning: pod2html not found. Using old niceload.html
rm -f ./pod2htm* rm -f ./pod2htm*
pod2html --title "GNU Parallel tutorial" ./parallel_tutorial.pod > ./parallel_tutorial.htmln \ pod2html --title "GNU Parallel tutorial" ./parallel_tutorial.pod > ./parallel_tutorial.htmln \
&& mv ./parallel_tutorial.htmln ./parallel_tutorial.html \ && mv ./parallel_tutorial.htmln ./parallel_tutorial.html \
|| echo "Warning: pod2html not found. Using old parallel_tutorial.html" || echo "Warning: pod2html not found. Using old parallel_tutorial.html"
/bin/bash: pod2html: command not found /bin/bash: pod2html: command not found
Warning: pod2html not found. Using old parallel_tutorial.html Warning: pod2html not found. Using old parallel_tutorial.html
rm -f ./pod2htm* rm -f ./pod2htm*
pod2texi --output=./parallel.texi ./parallel.pod \ pod2texi --output=./parallel.texi ./parallel.pod \
|| echo "Warning: pod2texi not found. Using old parallel.texi" || 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 \ pod2texi --output=./env_parallel.texi ./env_parallel.pod \
|| echo "Warning: pod2texi not found. Using old env_parallel.texi" || 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 \ pod2texi --output=./sem.texi ./sem.pod \
|| echo "Warning: pod2texi not found. Using old sem.texi" || 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 \ pod2texi --output=./sql.texi ./sql \
|| echo "Warning: pod2texi not found. Using old sql.texi" || 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 \ pod2texi --output=./niceload.texi ./niceload.pod \
|| echo "Warning: pod2texi not found. Using old niceload.texi" || 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 \ pod2texi --output=./parallel_tutorial.texi ./parallel_tutorial.pod \
|| echo "Warning: pod2texi not found. Using old parallel_tutorial.texi" || 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_design.texi ./parallel_design.pod \ pod2texi --output=./parallel_design.texi ./parallel_design.pod \
|| echo "Warning: pod2texi not found. Using old parallel_design.texi" || 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
pod2pdf --output-file ./parallel.pdf ./parallel.pod --title "GNU Parallel" \ pod2pdf --output-file ./parallel.pdf ./parallel.pod --title "GNU Parallel" \
|| echo "Warning: pod2pdf not found. Using old parallel.pdf" || echo "Warning: pod2pdf not found. Using old parallel.pdf"
/bin/bash: pod2pdf: command not found /bin/bash: pod2pdf: command not found
Warning: pod2pdf not found. Using old parallel.pdf Warning: pod2pdf not found. Using old parallel.pdf
pod2pdf --output-file ./env_parallel.pdf ./env_parallel.pod --title "GNU Parallel with environment" \ pod2pdf --output-file ./env_parallel.pdf ./env_parallel.pod --title "GNU Parallel with environment" \
|| echo "Warning: pod2pdf not found. Using old env_parallel.pdf" || echo "Warning: pod2pdf not found. Using old env_parallel.pdf"
/bin/bash: pod2pdf: command not found /bin/bash: pod2pdf: command not found
Warning: pod2pdf not found. Using old env_parallel.pdf Warning: pod2pdf not found. Using old env_parallel.pdf
pod2pdf --output-file ./sem.pdf ./sem.pod --title "GNU sem" \ pod2pdf --output-file ./sem.pdf ./sem.pod --title "GNU sem" \
|| echo "Warning: pod2pdf not found. Using old sem.pdf" || echo "Warning: pod2pdf not found. Using old sem.pdf"
/bin/bash: pod2pdf: command not found /bin/bash: pod2pdf: command not found
Warning: pod2pdf not found. Using old sem.pdf Warning: pod2pdf not found. Using old sem.pdf
pod2pdf --output-file ./sql.pdf ./sql --title "GNU SQL" \ pod2pdf --output-file ./sql.pdf ./sql --title "GNU SQL" \
|| echo "Warning: pod2pdf not found. Using old sql.pdf" || echo "Warning: pod2pdf not found. Using old sql.pdf"
/bin/bash: pod2pdf: command not found /bin/bash: pod2pdf: command not found
Warning: pod2pdf not found. Using old sql.pdf Warning: pod2pdf not found. Using old sql.pdf
pod2pdf --output-file ./niceload.pdf ./niceload.pod --title "GNU niceload" \ pod2pdf --output-file ./niceload.pdf ./niceload.pod --title "GNU niceload" \
|| echo "Warning: pod2pdf not found. Using old niceload.pdf" || echo "Warning: pod2pdf not found. Using old niceload.pdf"
/bin/bash: pod2pdf: command not found /bin/bash: pod2pdf: command not found
Warning: pod2pdf not found. Using old niceload.pdf Warning: pod2pdf not found. Using old niceload.pdf
pod2pdf --output-file ./parallel_tutorial.pdf ./parallel_tutorial.pod --title "GNU Parallel Tutorial" \ pod2pdf --output-file ./parallel_tutorial.pdf ./parallel_tutorial.pod --title "GNU Parallel Tutorial" \
|| echo "Warning: pod2pdf not found. Using old parallel_tutorial.pdf" || echo "Warning: pod2pdf not found. Using old parallel_tutorial.pdf"
/bin/bash: pod2pdf: command not found /bin/bash: pod2pdf: command not found
Warning: pod2pdf not found. Using old parallel_tutorial.pdf Warning: pod2pdf not found. Using old parallel_tutorial.pdf
pod2pdf --output-file ./parallel_design.pdf ./parallel_design.pod --title "GNU Parallel Design" \ pod2pdf --output-file ./parallel_design.pdf ./parallel_design.pod --title "GNU Parallel Design" \
|| echo "Warning: pod2pdf not found. Using old parallel_design.pdf" || echo "Warning: pod2pdf not found. Using old parallel_design.pdf"
/bin/bash: pod2pdf: command not found /bin/bash: pod2pdf: command not found
Warning: pod2pdf not found. Using old parallel_design.pdf Warning: pod2pdf not found. Using old parallel_design.pdf
make[0]: Entering directory `/tmp/parallel-00000000/src' make[0]: Entering directory '/tmp/parallel-00000000/src'
/bin/mkdir -p '/usr/local/bin' /bin/mkdir -p '/usr/local/bin'
/usr/bin/install -c parallel sql niceload env_parallel env_parallel.bash env_parallel.zsh env_parallel.fish env_parallel.ksh env_parallel.pdksh env_parallel.csh env_parallel.tcsh '/usr/local/bin' /usr/bin/install -c parallel sql niceload env_parallel env_parallel.bash env_parallel.zsh env_parallel.fish env_parallel.ksh env_parallel.pdksh env_parallel.csh env_parallel.tcsh '/usr/local/bin'
make install-exec-hook make install-exec-hook
make[0]: Entering directory `/tmp/parallel-00000000/src' make[0]: Entering directory '/tmp/parallel-00000000/src'
rm /usr/local/bin/sem || true rm /usr/local/bin/sem || true
ln -s parallel /usr/local/bin/sem ln -s parallel /usr/local/bin/sem
make[0]: Leaving directory `/tmp/parallel-00000000/src' make[0]: Leaving directory '/tmp/parallel-00000000/src'
pod2html --title "GNU Parallel" ./parallel.pod > ./parallel.htmln \ pod2html --title "GNU Parallel" ./parallel.pod > ./parallel.htmln \
&& mv ./parallel.htmln ./parallel.html \ && mv ./parallel.htmln ./parallel.html \
|| echo "Warning: pod2html not found. Using old parallel.html" || echo "Warning: pod2html not found. Using old parallel.html"
/bin/bash: pod2html: command not found /bin/bash: pod2html: command not found
Warning: pod2html not found. Using old parallel.html Warning: pod2html not found. Using old parallel.html
rm -f ./pod2htm* rm -f ./pod2htm*
pod2html --title "GNU Parallel with environment" ./env_parallel.pod > ./env_parallel.htmln \ pod2html --title "GNU Parallel with environment" ./env_parallel.pod > ./env_parallel.htmln \
&& mv ./env_parallel.htmln ./env_parallel.html \ && mv ./env_parallel.htmln ./env_parallel.html \
|| echo "Warning: pod2html not found. Using old env_parallel.html" || echo "Warning: pod2html not found. Using old env_parallel.html"
/bin/bash: pod2html: command not found /bin/bash: pod2html: command not found
Warning: pod2html not found. Using old env_parallel.html Warning: pod2html not found. Using old env_parallel.html
rm -f ./pod2htm* rm -f ./pod2htm*
pod2html --title "GNU Parallel design" ./parallel_design.pod > ./parallel_design.htmln \ pod2html --title "GNU Parallel design" ./parallel_design.pod > ./parallel_design.htmln \
&& mv ./parallel_design.htmln ./parallel_design.html \ && mv ./parallel_design.htmln ./parallel_design.html \
|| echo "Warning: pod2html not found. Using old parallel_design.html" || echo "Warning: pod2html not found. Using old parallel_design.html"
/bin/bash: pod2html: command not found /bin/bash: pod2html: command not found
Warning: pod2html not found. Using old parallel_design.html Warning: pod2html not found. Using old parallel_design.html
rm -f ./pod2htm* rm -f ./pod2htm*
pod2html --title "sem (GNU Parallel)" ./sem.pod > ./sem.htmln \ pod2html --title "sem (GNU Parallel)" ./sem.pod > ./sem.htmln \
&& mv ./sem.htmln ./sem.html \ && mv ./sem.htmln ./sem.html \
|| echo "Warning: pod2html not found. Using old sem.html" || echo "Warning: pod2html not found. Using old sem.html"
/bin/bash: pod2html: command not found /bin/bash: pod2html: command not found
Warning: pod2html not found. Using old sem.html Warning: pod2html not found. Using old sem.html
rm -f ./pod2htm* rm -f ./pod2htm*
pod2html --title "GNU SQL" ./sql > ./sql.htmln \ pod2html --title "GNU SQL" ./sql > ./sql.htmln \
&& mv ./sql.htmln ./sql.html \ && mv ./sql.htmln ./sql.html \
|| echo "Warning: pod2html not found. Using old sql.html" || echo "Warning: pod2html not found. Using old sql.html"
/bin/bash: pod2html: command not found /bin/bash: pod2html: command not found
Warning: pod2html not found. Using old sql.html Warning: pod2html not found. Using old sql.html
rm -f ./pod2htm* rm -f ./pod2htm*
pod2html --title "GNU niceload" ./niceload.pod > ./niceload.htmln \ pod2html --title "GNU niceload" ./niceload.pod > ./niceload.htmln \
&& mv ./niceload.htmln ./niceload.html \ && mv ./niceload.htmln ./niceload.html \
|| echo "Warning: pod2html not found. Using old niceload.html" || echo "Warning: pod2html not found. Using old niceload.html"
/bin/bash: pod2html: command not found /bin/bash: pod2html: command not found
Warning: pod2html not found. Using old niceload.html Warning: pod2html not found. Using old niceload.html
rm -f ./pod2htm* rm -f ./pod2htm*
pod2html --title "GNU Parallel tutorial" ./parallel_tutorial.pod > ./parallel_tutorial.htmln \ pod2html --title "GNU Parallel tutorial" ./parallel_tutorial.pod > ./parallel_tutorial.htmln \
&& mv ./parallel_tutorial.htmln ./parallel_tutorial.html \ && mv ./parallel_tutorial.htmln ./parallel_tutorial.html \
|| echo "Warning: pod2html not found. Using old parallel_tutorial.html" || echo "Warning: pod2html not found. Using old parallel_tutorial.html"
/bin/bash: pod2html: command not found /bin/bash: pod2html: command not found
Warning: pod2html not found. Using old parallel_tutorial.html Warning: pod2html not found. Using old parallel_tutorial.html
rm -f ./pod2htm* 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_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
pod2pdf --output-file ./parallel.pdf ./parallel.pod --title "GNU Parallel" \ pod2pdf --output-file ./parallel.pdf ./parallel.pod --title "GNU Parallel" \
|| echo "Warning: pod2pdf not found. Using old parallel.pdf" || echo "Warning: pod2pdf not found. Using old parallel.pdf"
/bin/bash: pod2pdf: command not found /bin/bash: pod2pdf: command not found
Warning: pod2pdf not found. Using old parallel.pdf Warning: pod2pdf not found. Using old parallel.pdf
pod2pdf --output-file ./env_parallel.pdf ./env_parallel.pod --title "GNU Parallel with environment" \ pod2pdf --output-file ./env_parallel.pdf ./env_parallel.pod --title "GNU Parallel with environment" \
|| echo "Warning: pod2pdf not found. Using old env_parallel.pdf" || echo "Warning: pod2pdf not found. Using old env_parallel.pdf"
/bin/bash: pod2pdf: command not found /bin/bash: pod2pdf: command not found
Warning: pod2pdf not found. Using old env_parallel.pdf Warning: pod2pdf not found. Using old env_parallel.pdf
pod2pdf --output-file ./sem.pdf ./sem.pod --title "GNU sem" \ pod2pdf --output-file ./sem.pdf ./sem.pod --title "GNU sem" \
|| echo "Warning: pod2pdf not found. Using old sem.pdf" || echo "Warning: pod2pdf not found. Using old sem.pdf"
/bin/bash: pod2pdf: command not found /bin/bash: pod2pdf: command not found
Warning: pod2pdf not found. Using old sem.pdf Warning: pod2pdf not found. Using old sem.pdf
pod2pdf --output-file ./sql.pdf ./sql --title "GNU SQL" \ pod2pdf --output-file ./sql.pdf ./sql --title "GNU SQL" \
|| echo "Warning: pod2pdf not found. Using old sql.pdf" || echo "Warning: pod2pdf not found. Using old sql.pdf"
/bin/bash: pod2pdf: command not found /bin/bash: pod2pdf: command not found
Warning: pod2pdf not found. Using old sql.pdf Warning: pod2pdf not found. Using old sql.pdf
pod2pdf --output-file ./niceload.pdf ./niceload.pod --title "GNU niceload" \ pod2pdf --output-file ./niceload.pdf ./niceload.pod --title "GNU niceload" \
|| echo "Warning: pod2pdf not found. Using old niceload.pdf" || echo "Warning: pod2pdf not found. Using old niceload.pdf"
/bin/bash: pod2pdf: command not found /bin/bash: pod2pdf: command not found
Warning: pod2pdf not found. Using old niceload.pdf Warning: pod2pdf not found. Using old niceload.pdf
pod2pdf --output-file ./parallel_tutorial.pdf ./parallel_tutorial.pod --title "GNU Parallel Tutorial" \ pod2pdf --output-file ./parallel_tutorial.pdf ./parallel_tutorial.pod --title "GNU Parallel Tutorial" \
|| echo "Warning: pod2pdf not found. Using old parallel_tutorial.pdf" || echo "Warning: pod2pdf not found. Using old parallel_tutorial.pdf"
/bin/bash: pod2pdf: command not found /bin/bash: pod2pdf: command not found
Warning: pod2pdf not found. Using old parallel_tutorial.pdf Warning: pod2pdf not found. Using old parallel_tutorial.pdf
pod2pdf --output-file ./parallel_design.pdf ./parallel_design.pod --title "GNU Parallel Design" \ pod2pdf --output-file ./parallel_design.pdf ./parallel_design.pod --title "GNU Parallel Design" \
|| echo "Warning: pod2pdf not found. Using old parallel_design.pdf" || echo "Warning: pod2pdf not found. Using old parallel_design.pdf"
/bin/bash: pod2pdf: command not found /bin/bash: pod2pdf: command not found
Warning: pod2pdf not found. Using old parallel_design.pdf Warning: pod2pdf not found. Using old parallel_design.pdf
/bin/mkdir -p '/usr/local/share/doc/parallel' /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_design.html parallel.texi env_parallel.texi sem.texi sql.texi niceload.texi parallel_tutorial.texi parallel_design.texi parallel.pdf env_parallel.pdf sem.pdf sql.pdf niceload.pdf parallel_tutorial.pdf parallel_design.pdf '/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_design.html parallel.texi env_parallel.texi sem.texi sql.texi niceload.texi parallel_tutorial.texi parallel_design.texi parallel.pdf env_parallel.pdf sem.pdf sql.pdf niceload.pdf parallel_tutorial.pdf parallel_design.pdf '/usr/local/share/doc/parallel'
pod2man --release='00000000' --center='parallel' \ pod2man --release='00000000' --center='parallel' \
--section=1 ./parallel.pod > ./parallel.1n \ --section=1 ./parallel.pod > ./parallel.1n \
&& mv ./parallel.1n ./parallel.1 \ && mv ./parallel.1n ./parallel.1 \
|| echo "Warning: pod2man not found. Using old parallel.1" || echo "Warning: pod2man not found. Using old parallel.1"
/bin/bash: pod2man: command not found /bin/bash: pod2man: command not found
Warning: pod2man not found. Using old parallel.1 Warning: pod2man not found. Using old parallel.1
pod2man --release='00000000' --center='parallel' \ pod2man --release='00000000' --center='parallel' \
--section=1 ./env_parallel.pod > ./env_parallel.1n \ --section=1 ./env_parallel.pod > ./env_parallel.1n \
&& mv ./env_parallel.1n ./env_parallel.1 \ && mv ./env_parallel.1n ./env_parallel.1 \
|| echo "Warning: pod2man not found. Using old env_parallel.1" || echo "Warning: pod2man not found. Using old env_parallel.1"
/bin/bash: pod2man: command not found /bin/bash: pod2man: command not found
Warning: pod2man not found. Using old env_parallel.1 Warning: pod2man not found. Using old env_parallel.1
pod2man --release='00000000' --center='parallel' \ pod2man --release='00000000' --center='parallel' \
--section=1 ./sem.pod > ./sem.1n \ --section=1 ./sem.pod > ./sem.1n \
&& mv ./sem.1n ./sem.1 \ && mv ./sem.1n ./sem.1 \
|| echo "Warning: pod2man not found. Using old sem.1" || echo "Warning: pod2man not found. Using old sem.1"
/bin/bash: pod2man: command not found /bin/bash: pod2man: command not found
Warning: pod2man not found. Using old sem.1 Warning: pod2man not found. Using old sem.1
pod2man --release='00000000' --center='parallel' \ pod2man --release='00000000' --center='parallel' \
--section=1 ./sql > ./sql.1n \ --section=1 ./sql > ./sql.1n \
&& mv ./sql.1n ./sql.1 \ && mv ./sql.1n ./sql.1 \
|| echo "Warning: pod2man not found. Using old sql.1" || echo "Warning: pod2man not found. Using old sql.1"
/bin/bash: pod2man: command not found /bin/bash: pod2man: command not found
Warning: pod2man not found. Using old sql.1 Warning: pod2man not found. Using old sql.1
pod2man --release='00000000' --center='parallel' \ pod2man --release='00000000' --center='parallel' \
--section=1 ./niceload.pod > ./niceload.1n \ --section=1 ./niceload.pod > ./niceload.1n \
&& mv ./niceload.1n ./niceload.1 \ && mv ./niceload.1n ./niceload.1 \
|| echo "Warning: pod2man not found. Using old niceload.1" || echo "Warning: pod2man not found. Using old niceload.1"
/bin/bash: pod2man: command not found /bin/bash: pod2man: command not found
Warning: pod2man not found. Using old niceload.1 Warning: pod2man not found. Using old niceload.1
pod2man --release='00000000' --center='parallel' \ pod2man --release='00000000' --center='parallel' \
--section=7 ./parallel_tutorial.pod > ./parallel_tutorial.7n \ --section=7 ./parallel_tutorial.pod > ./parallel_tutorial.7n \
&& mv ./parallel_tutorial.7n ./parallel_tutorial.7 \ && mv ./parallel_tutorial.7n ./parallel_tutorial.7 \
|| echo "Warning: pod2man not found. Using old parallel_tutorial.7" || echo "Warning: pod2man not found. Using old parallel_tutorial.7"
/bin/bash: pod2man: command not found /bin/bash: pod2man: command not found
Warning: pod2man not found. Using old parallel_tutorial.7 Warning: pod2man not found. Using old parallel_tutorial.7
pod2man --release='00000000' --center='parallel' \ pod2man --release='00000000' --center='parallel' \
--section=7 ./parallel_design.pod > ./parallel_design.7n \ --section=7 ./parallel_design.pod > ./parallel_design.7n \
&& mv ./parallel_design.7n ./parallel_design.7 \ && mv ./parallel_design.7n ./parallel_design.7 \
|| echo "Warning: pod2man not found. Using old parallel_design.7" || echo "Warning: pod2man not found. Using old parallel_design.7"
/bin/bash: pod2man: command not found /bin/bash: pod2man: command not found
Warning: pod2man not found. Using old parallel_design.7 Warning: pod2man not found. Using old parallel_design.7
/bin/mkdir -p '/usr/local/share/man/man1' /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 '/usr/local/share/man/man1' /usr/bin/install -c -m 644 parallel.1 env_parallel.1 sem.1 sql.1 niceload.1 '/usr/local/share/man/man1'
/bin/mkdir -p '/usr/local/share/man/man7' /bin/mkdir -p '/usr/local/share/man/man7'
/usr/bin/install -c -m 644 parallel_tutorial.7 parallel_design.7 '/usr/local/share/man/man7' /usr/bin/install -c -m 644 parallel_tutorial.7 parallel_design.7 '/usr/local/share/man/man7'
make[0]: Leaving directory `/tmp/parallel-00000000/src' make[0]: Leaving directory '/tmp/parallel-00000000/src'
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]: 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-exec-am'.
make[0]: Nothing to be done for `install-data-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'
make[0]: Leaving directory `/tmp/parallel-00000000' make[0]: Leaving directory '/tmp/parallel-00000000'

View file

@ -115,6 +115,7 @@ cat /dev/zero >$SMALLDISK/out; parallel --tmpdir $SMALLDISK echo ::: OK; rm
cat: write error: No space left on device cat: write error: No space left on device
parallel: Error: Output is incomplete. Cannot append to buffer file in /mnt/ram. Is the disk full? parallel: Error: Output is incomplete. Cannot append to buffer file in /mnt/ram. Is the disk full?
parallel: Error: Change $TMPDIR with --tmpdir or use --compress. parallel: Error: Change $TMPDIR with --tmpdir or use --compress.
Warning: unable to close filehandle properly: No space left on device during global destruction.
echo '**' echo '**'
** **
echo '### bug #44614: --pipepart --header off by one' echo '### bug #44614: --pipepart --header off by one'
@ -177,7 +178,7 @@ parallel -k echo {#} ::: 1 2 ::: 1 2
4 4
echo '**' echo '**'
** **
testquote() { printf '"#&/\n()*=?'"'" | PARALLEL_SHELL=$1 parallel -0 echo; }; export -f testquote; parallel --tag -k testquote ::: ash bash csh dash fdsh fish fizsh ksh ksh93 mksh pdksh posh rbash rc rzsh sash sh static-sh tcsh yash zsh testquote() { printf '"#&/\n()*=?'"'" | PARALLEL_SHELL=$1 parallel -0 echo; }; export -f testquote; parallel --tag -k testquote ::: ash bash csh dash fdsh fish fizsh ksh ksh93 mksh posh rbash rc rzsh sash sh static-sh tcsh yash zsh
ash "#&/ ash "#&/
ash ()*=?' ash ()*=?'
bash "#&/ bash "#&/
@ -198,8 +199,6 @@ ksh93 "#&/
ksh93 ()*=?' ksh93 ()*=?'
mksh "#&/ mksh "#&/
mksh ()*=?' mksh ()*=?'
pdksh "#&/
pdksh ()*=?'
posh "#&/ posh "#&/
posh ()*=?' posh ()*=?'
rbash "#&/ rbash "#&/
@ -278,9 +277,12 @@ echo '**'
** **
echo '### bug #45998: --pipe to function broken' echo '### bug #45998: --pipe to function broken'
### bug #45998: --pipe to function broken ### bug #45998: --pipe to function broken
myfunc() { echo $1; cat; }; export -f myfunc; echo OK | parallel --pipe myfunc {#} myfunc() { echo $1; cat; }; export -f myfunc; echo pipefunc OK | parallel --pipe myfunc {#}; echo pipefunc and more OK | parallel --pipe 'myfunc {#};echo and more OK'
1 1
OK pipefunc OK
1
pipefunc and more OK
and more OK
echo '**' echo '**'
** **
echo 'bug #46016: --joblog should not log when --dryrun' echo 'bug #46016: --joblog should not log when --dryrun'
@ -295,23 +297,23 @@ bug #45993: --wd ... should also work when run locally
parallel: Error: Cannot change into non-executable dir /bi: No such file or directory parallel: Error: Cannot change into non-executable dir /bi: No such file or directory
parallel --wd /bin 'pwd; echo $OLDPWD; echo' ::: OK parallel --wd /bin 'pwd; echo $OLDPWD; echo' ::: OK
/bin /bin
/home/tange/privat/parallel/testsuite /mnt/4tb/home/tange/privat/parallel/testsuite
OK OK
parallel --wd / 'pwd; echo $OLDPWD; echo' ::: OK parallel --wd / 'pwd; echo $OLDPWD; echo' ::: OK
/ /
/home/tange/privat/parallel/testsuite /mnt/4tb/home/tange/privat/parallel/testsuite
OK OK
parallel --wd /tmp 'pwd; echo $OLDPWD; echo' ::: OK parallel --wd /tmp 'pwd; echo $OLDPWD; echo' ::: OK
/tmp /tmp
/home/tange/privat/parallel/testsuite /mnt/4tb/home/tange/privat/parallel/testsuite
OK OK
parallel --wd ... 'pwd; echo $OLDPWD; echo' ::: OK | perl -pe 's/\d+/0/g' parallel --wd ... 'pwd; echo $OLDPWD; echo' ::: OK | perl -pe 's/\d+/0/g'
/home/tange/.parallel/tmp/aspire-0-0 /mnt/0tb/home/tange/.parallel/tmp/aspire-0-0
/home/tange/privat/parallel/testsuite /mnt/0tb/home/tange/privat/parallel/testsuite
OK OK
parallel --wd . 'pwd; echo $OLDPWD; echo' ::: OK parallel --wd . 'pwd; echo $OLDPWD; echo' ::: OK
/home/tange/privat/parallel/testsuite /mnt/4tb/home/tange/privat/parallel/testsuite
/home/tange/privat/parallel/testsuite /mnt/4tb/home/tange/privat/parallel/testsuite
OK OK
echo '**' echo '**'
** **
@ -437,7 +439,7 @@ echo '**'
** **
echo '### Test --shellquote' echo '### Test --shellquote'
### Test --shellquote ### Test --shellquote
parallel --tag -q -k {} -c perl\ -e\ \'print\ pack\(\"c\*\",1..255\)\'\ \|\ parallel\ -0\ --shellquote ::: ash bash csh dash fish fizsh ksh ksh93 lksh mksh pdksh posh rzsh sash sh static-sh tcsh yash zsh csh tcsh parallel --tag -q -k {} -c perl\ -e\ \'print\ pack\(\"c\*\",1..255\)\'\ \|\ parallel\ -0\ --shellquote ::: ash bash csh dash fish fizsh ksh ksh93 lksh mksh posh rzsh sash sh static-sh tcsh yash zsh csh tcsh
ash \\\\\\\\ ' ash \\\\\\\\ '
ash '\ \ \ \\\\\\\\\\\\\\ \!\"\#\$%\&\'\(\)\*+,-./0123456789:\;\<\=\>\?@ABCDEFGHIJKLMNOPQRSTUVWXYZ\[\\\]\^_\`abcdefghijklmnopqrstuvwxyz\{\|\}\~<7F>\\ƒ\„\…\†\‡\ˆ\‰\Š\\Œ\<5C>\Ž\<5C>\<5C>\\\“\”\•\\—\˜\™\š\\œ\<5C>\ž\Ÿ\ \¡\¢\£\¤\¥\¦\§\¨\©\ª\«\¬\­\®\¯\°\±\²\³\´\µ\¶\·\¸\¹\º\»\¼\½\¾\¿\À\Á\Â\Ã\Ä\Å\Æ\Ç\È\É\Ê\Ë\Ì\Í\Î\Ï\Ð\Ñ\Ò\Ó\Ô\Õ\Ö\×\Ø\Ù\Ú\Û\Ü\Ý\Þ\ß\à\á\â\ã\ä\å\æ\ç\è\é\ê\ë\ì\í\î\ï\ð\ñ\ò\ó\ô\õ\ö\÷\ø\ù\ú\û\ü\ý\þ\ÿ ash '\ \ \ \\\\\\\\\\\\\\ \!\"\#\$%\&\'\(\)\*+,-./0123456789:\;\<\=\>\?@ABCDEFGHIJKLMNOPQRSTUVWXYZ\[\\\]\^_\`abcdefghijklmnopqrstuvwxyz\{\|\}\~<7F>\\ƒ\„\…\†\‡\ˆ\‰\Š\\Œ\<5C>\Ž\<5C>\<5C>\\\“\”\•\\—\˜\™\š\\œ\<5C>\ž\Ÿ\ \¡\¢\£\¤\¥\¦\§\¨\©\ª\«\¬\­\®\¯\°\±\²\³\´\µ\¶\·\¸\¹\º\»\¼\½\¾\¿\À\Á\Â\Ã\Ä\Å\Æ\Ç\È\É\Ê\Ë\Ì\Í\Î\Ï\Ð\Ñ\Ò\Ó\Ô\Õ\Ö\×\Ø\Ù\Ú\Û\Ü\Ý\Þ\ß\à\á\â\ã\ä\å\æ\ç\è\é\ê\ë\ì\í\î\ï\ð\ñ\ò\ó\ô\õ\ö\÷\ø\ù\ú\û\ü\ý\þ\ÿ
bash \\\\\\\\ ' bash \\\\\\\\ '
@ -458,12 +460,8 @@ lksh \\\\\\\\ '
lksh '\ \ \ \\\\\\\\\\\\\\ \!\"\#\$%\&\'\(\)\*+,-./0123456789:\;\<\=\>\?@ABCDEFGHIJKLMNOPQRSTUVWXYZ\[\\\]\^_\`abcdefghijklmnopqrstuvwxyz\{\|\}\~<7F>\\ƒ\„\…\†\‡\ˆ\‰\Š\\Œ\<5C>\Ž\<5C>\<5C>\\\“\”\•\\—\˜\™\š\\œ\<5C>\ž\Ÿ\ \¡\¢\£\¤\¥\¦\§\¨\©\ª\«\¬\­\®\¯\°\±\²\³\´\µ\¶\·\¸\¹\º\»\¼\½\¾\¿\À\Á\Â\Ã\Ä\Å\Æ\Ç\È\É\Ê\Ë\Ì\Í\Î\Ï\Ð\Ñ\Ò\Ó\Ô\Õ\Ö\×\Ø\Ù\Ú\Û\Ü\Ý\Þ\ß\à\á\â\ã\ä\å\æ\ç\è\é\ê\ë\ì\í\î\ï\ð\ñ\ò\ó\ô\õ\ö\÷\ø\ù\ú\û\ü\ý\þ\ÿ lksh '\ \ \ \\\\\\\\\\\\\\ \!\"\#\$%\&\'\(\)\*+,-./0123456789:\;\<\=\>\?@ABCDEFGHIJKLMNOPQRSTUVWXYZ\[\\\]\^_\`abcdefghijklmnopqrstuvwxyz\{\|\}\~<7F>\\ƒ\„\…\†\‡\ˆ\‰\Š\\Œ\<5C>\Ž\<5C>\<5C>\\\“\”\•\\—\˜\™\š\\œ\<5C>\ž\Ÿ\ \¡\¢\£\¤\¥\¦\§\¨\©\ª\«\¬\­\®\¯\°\±\²\³\´\µ\¶\·\¸\¹\º\»\¼\½\¾\¿\À\Á\Â\Ã\Ä\Å\Æ\Ç\È\É\Ê\Ë\Ì\Í\Î\Ï\Ð\Ñ\Ò\Ó\Ô\Õ\Ö\×\Ø\Ù\Ú\Û\Ü\Ý\Þ\ß\à\á\â\ã\ä\å\æ\ç\è\é\ê\ë\ì\í\î\ï\ð\ñ\ò\ó\ô\õ\ö\÷\ø\ù\ú\û\ü\ý\þ\ÿ
mksh \\\\\\\\ ' mksh \\\\\\\\ '
mksh '\ \ \ \\\\\\\\\\\\\\ \!\"\#\$%\&\'\(\)\*+,-./0123456789:\;\<\=\>\?@ABCDEFGHIJKLMNOPQRSTUVWXYZ\[\\\]\^_\`abcdefghijklmnopqrstuvwxyz\{\|\}\~<7F>\\ƒ\„\…\†\‡\ˆ\‰\Š\\Œ\<5C>\Ž\<5C>\<5C>\\\“\”\•\\—\˜\™\š\\œ\<5C>\ž\Ÿ\ \¡\¢\£\¤\¥\¦\§\¨\©\ª\«\¬\­\®\¯\°\±\²\³\´\µ\¶\·\¸\¹\º\»\¼\½\¾\¿\À\Á\Â\Ã\Ä\Å\Æ\Ç\È\É\Ê\Ë\Ì\Í\Î\Ï\Ð\Ñ\Ò\Ó\Ô\Õ\Ö\×\Ø\Ù\Ú\Û\Ü\Ý\Þ\ß\à\á\â\ã\ä\å\æ\ç\è\é\ê\ë\ì\í\î\ï\ð\ñ\ò\ó\ô\õ\ö\÷\ø\ù\ú\û\ü\ý\þ\ÿ mksh '\ \ \ \\\\\\\\\\\\\\ \!\"\#\$%\&\'\(\)\*+,-./0123456789:\;\<\=\>\?@ABCDEFGHIJKLMNOPQRSTUVWXYZ\[\\\]\^_\`abcdefghijklmnopqrstuvwxyz\{\|\}\~<7F>\\ƒ\„\…\†\‡\ˆ\‰\Š\\Œ\<5C>\Ž\<5C>\<5C>\\\“\”\•\\—\˜\™\š\\œ\<5C>\ž\Ÿ\ \¡\¢\£\¤\¥\¦\§\¨\©\ª\«\¬\­\®\¯\°\±\²\³\´\µ\¶\·\¸\¹\º\»\¼\½\¾\¿\À\Á\Â\Ã\Ä\Å\Æ\Ç\È\É\Ê\Ë\Ì\Í\Î\Ï\Ð\Ñ\Ò\Ó\Ô\Õ\Ö\×\Ø\Ù\Ú\Û\Ü\Ý\Þ\ß\à\á\â\ã\ä\å\æ\ç\è\é\ê\ë\ì\í\î\ï\ð\ñ\ò\ó\ô\õ\ö\÷\ø\ù\ú\û\ü\ý\þ\ÿ
pdksh \\\\\\\\ '
pdksh '\ \ \ \\\\\\\\\\\\\\ \!\"\#\$%\&\'\(\)\*+,-./0123456789:\;\<\=\>\?@ABCDEFGHIJKLMNOPQRSTUVWXYZ\[\\\]\^_\`abcdefghijklmnopqrstuvwxyz\{\|\}\~<7F>\\ƒ\„\…\†\‡\ˆ\‰\Š\\Œ\<5C>\Ž\<5C>\<5C>\\\“\”\•\\—\˜\™\š\\œ\<5C>\ž\Ÿ\ \¡\¢\£\¤\¥\¦\§\¨\©\ª\«\¬\­\®\¯\°\±\²\³\´\µ\¶\·\¸\¹\º\»\¼\½\¾\¿\À\Á\Â\Ã\Ä\Å\Æ\Ç\È\É\Ê\Ë\Ì\Í\Î\Ï\Ð\Ñ\Ò\Ó\Ô\Õ\Ö\×\Ø\Ù\Ú\Û\Ü\Ý\Þ\ß\à\á\â\ã\ä\å\æ\ç\è\é\ê\ë\ì\í\î\ï\ð\ñ\ò\ó\ô\õ\ö\÷\ø\ù\ú\û\ü\ý\þ\ÿ
posh \\\\\\\\ ' posh \\\\\\\\ '
posh '\ \ \ \\\\\\\\\\\\\\ \!\"\#\$%\&\'\(\)\*+,-./0123456789:\;\<\=\>\?@ABCDEFGHIJKLMNOPQRSTUVWXYZ\[\\\]\^_\`abcdefghijklmnopqrstuvwxyz\{\|\}\~<7F>\\ƒ\„\…\†\‡\ˆ\‰\Š\\Œ\<5C>\Ž\<5C>\<5C>\\\“\”\•\\—\˜\™\š\\œ\<5C>\ž\Ÿ\ \¡\¢\£\¤\¥\¦\§\¨\©\ª\«\¬\­\®\¯\°\±\²\³\´\µ\¶\·\¸\¹\º\»\¼\½\¾\¿\À\Á\Â\Ã\Ä\Å\Æ\Ç\È\É\Ê\Ë\Ì\Í\Î\Ï\Ð\Ñ\Ò\Ó\Ô\Õ\Ö\×\Ø\Ù\Ú\Û\Ü\Ý\Þ\ß\à\á\â\ã\ä\å\æ\ç\è\é\ê\ë\ì\í\î\ï\ð\ñ\ò\ó\ô\õ\ö\÷\ø\ù\ú\û\ü\ý\þ\ÿ posh '\ \ \ \\\\\\\\\\\\\\ \!\"\#\$%\&\'\(\)\*+,-./0123456789:\;\<\=\>\?@ABCDEFGHIJKLMNOPQRSTUVWXYZ\[\\\]\^_\`abcdefghijklmnopqrstuvwxyz\{\|\}\~<7F>\\ƒ\„\…\†\‡\ˆ\‰\Š\\Œ\<5C>\Ž\<5C>\<5C>\\\“\”\•\\—\˜\™\š\\œ\<5C>\ž\Ÿ\ \¡\¢\£\¤\¥\¦\§\¨\©\ª\«\¬\­\®\¯\°\±\²\³\´\µ\¶\·\¸\¹\º\»\¼\½\¾\¿\À\Á\Â\Ã\Ä\Å\Æ\Ç\È\É\Ê\Ë\Ì\Í\Î\Ï\Ð\Ñ\Ò\Ó\Ô\Õ\Ö\×\Ø\Ù\Ú\Û\Ü\Ý\Þ\ß\à\á\â\ã\ä\å\æ\ç\è\é\ê\ë\ì\í\î\ï\ð\ñ\ò\ó\ô\õ\ö\÷\ø\ù\ú\û\ü\ý\þ\ÿ
rzsh \\\\\\\\ '
rzsh '\ \ \ \\\\\\\\\\\\\\ \!\"\#\$%\&\'\(\)\*+,-./0123456789:\;\<\=\>\?@ABCDEFGHIJKLMNOPQRSTUVWXYZ\[\\\]\^_\`abcdefghijklmnopqrstuvwxyz\{\|\}\~<7F>\\ƒ\„\…\†\‡\ˆ\‰\Š\\Œ\<5C>\Ž\<5C>\<5C>\\\“\”\•\\—\˜\™\š\\œ\<5C>\ž\Ÿ\ \¡\¢\£\¤\¥\¦\§\¨\©\ª\«\¬\­\®\¯\°\±\²\³\´\µ\¶\·\¸\¹\º\»\¼\½\¾\¿\À\Á\Â\Ã\Ä\Å\Æ\Ç\È\É\Ê\Ë\Ì\Í\Î\Ï\Ð\Ñ\Ò\Ó\Ô\Õ\Ö\×\Ø\Ù\Ú\Û\Ü\Ý\Þ\ß\à\á\â\ã\ä\å\æ\ç\è\é\ê\ë\ì\í\î\ï\ð\ñ\ò\ó\ô\õ\ö\÷\ø\ù\ú\û\ü\ý\þ\ÿ
sash \\\\\\\\ ' sash \\\\\\\\ '
sash '\ \ \ \\\\\\\\\\\\\\ \!\"\#\$%\&\'\(\)\*+,-./0123456789:\;\<\=\>\?@ABCDEFGHIJKLMNOPQRSTUVWXYZ\[\\\]\^_\`abcdefghijklmnopqrstuvwxyz\{\|\}\~<7F>\\ƒ\„\…\†\‡\ˆ\‰\Š\\Œ\<5C>\Ž\<5C>\<5C>\\\“\”\•\\—\˜\™\š\\œ\<5C>\ž\Ÿ\ \¡\¢\£\¤\¥\¦\§\¨\©\ª\«\¬\­\®\¯\°\±\²\³\´\µ\¶\·\¸\¹\º\»\¼\½\¾\¿\À\Á\Â\Ã\Ä\Å\Æ\Ç\È\É\Ê\Ë\Ì\Í\Î\Ï\Ð\Ñ\Ò\Ó\Ô\Õ\Ö\×\Ø\Ù\Ú\Û\Ü\Ý\Þ\ß\à\á\â\ã\ä\å\æ\ç\è\é\ê\ë\ì\í\î\ï\ð\ñ\ò\ó\ô\õ\ö\÷\ø\ù\ú\û\ü\ý\þ\ÿ sash '\ \ \ \\\\\\\\\\\\\\ \!\"\#\$%\&\'\(\)\*+,-./0123456789:\;\<\=\>\?@ABCDEFGHIJKLMNOPQRSTUVWXYZ\[\\\]\^_\`abcdefghijklmnopqrstuvwxyz\{\|\}\~<7F>\\ƒ\„\…\†\‡\ˆ\‰\Š\\Œ\<5C>\Ž\<5C>\<5C>\\\“\”\•\\—\˜\™\š\\œ\<5C>\ž\Ÿ\ \¡\¢\£\¤\¥\¦\§\¨\©\ª\«\¬\­\®\¯\°\±\²\³\´\µ\¶\·\¸\¹\º\»\¼\½\¾\¿\À\Á\Â\Ã\Ä\Å\Æ\Ç\È\É\Ê\Ë\Ì\Í\Î\Ï\Ð\Ñ\Ò\Ó\Ô\Õ\Ö\×\Ø\Ù\Ú\Û\Ü\Ý\Þ\ß\à\á\â\ã\ä\å\æ\ç\è\é\ê\ë\ì\í\î\ï\ð\ñ\ò\ó\ô\õ\ö\÷\ø\ù\ú\û\ü\ý\þ\ÿ
sh \\\\\\\\ ' sh \\\\\\\\ '
@ -480,6 +478,7 @@ csh \\\\\\\\ "\
csh "\ \ \ \\\\\\\\\\\\\\ \!\"\#\$%\&\'\(\)\*+,-./0123456789:\;\<\=\>\?@ABCDEFGHIJKLMNOPQRSTUVWXYZ\[\\\]\^_\`abcdefghijklmnopqrstuvwxyz\{\|\}\~<7F>\\ƒ\„\…\†\‡\ˆ\‰\Š\\Œ\<5C>\Ž\<5C>\<5C>\\\“\”\•\\—\˜\™\š\\œ\<5C>\ž\Ÿ\ \¡\¢\£\¤\¥\¦\§\¨\©\ª\«\¬\­\®\¯\°\±\²\³\´\µ\¶\·\¸\¹\º\»\¼\½\¾\¿\À\Á\Â\Ã\Ä\Å\Æ\Ç\È\É\Ê\Ë\Ì\Í\Î\Ï\Ð\Ñ\Ò\Ó\Ô\Õ\Ö\×\Ø\Ù\Ú\Û\Ü\Ý\Þ\ß\à\á\â\ã\ä\å\æ\ç\è\é\ê\ë\ì\í\î\ï\ð\ñ\ò\ó\ô\õ\ö\÷\ø\ù\ú\û\ü\ý\þ\ÿ csh "\ \ \ \\\\\\\\\\\\\\ \!\"\#\$%\&\'\(\)\*+,-./0123456789:\;\<\=\>\?@ABCDEFGHIJKLMNOPQRSTUVWXYZ\[\\\]\^_\`abcdefghijklmnopqrstuvwxyz\{\|\}\~<7F>\\ƒ\„\…\†\‡\ˆ\‰\Š\\Œ\<5C>\Ž\<5C>\<5C>\\\“\”\•\\—\˜\™\š\\œ\<5C>\ž\Ÿ\ \¡\¢\£\¤\¥\¦\§\¨\©\ª\«\¬\­\®\¯\°\±\²\³\´\µ\¶\·\¸\¹\º\»\¼\½\¾\¿\À\Á\Â\Ã\Ä\Å\Æ\Ç\È\É\Ê\Ë\Ì\Í\Î\Ï\Ð\Ñ\Ò\Ó\Ô\Õ\Ö\×\Ø\Ù\Ú\Û\Ü\Ý\Þ\ß\à\á\â\ã\ä\å\æ\ç\è\é\ê\ë\ì\í\î\ï\ð\ñ\ò\ó\ô\õ\ö\÷\ø\ù\ú\û\ü\ý\þ\ÿ
tcsh \\\\\\\\ "\ tcsh \\\\\\\\ "\
tcsh "\ \ \ \\\\\\\\\\\\\\ \!\"\#\$%\&\'\(\)\*+,-./0123456789:\;\<\=\>\?@ABCDEFGHIJKLMNOPQRSTUVWXYZ\[\\\]\^_\`abcdefghijklmnopqrstuvwxyz\{\|\}\~<7F>\\ƒ\„\…\†\‡\ˆ\‰\Š\\Œ\<5C>\Ž\<5C>\<5C>\\\“\”\•\\—\˜\™\š\\œ\<5C>\ž\Ÿ\ \¡\¢\£\¤\¥\¦\§\¨\©\ª\«\¬\­\®\¯\°\±\²\³\´\µ\¶\·\¸\¹\º\»\¼\½\¾\¿\À\Á\Â\Ã\Ä\Å\Æ\Ç\È\É\Ê\Ë\Ì\Í\Î\Ï\Ð\Ñ\Ò\Ó\Ô\Õ\Ö\×\Ø\Ù\Ú\Û\Ü\Ý\Þ\ß\à\á\â\ã\ä\å\æ\ç\è\é\ê\ë\ì\í\î\ï\ð\ñ\ò\ó\ô\õ\ö\÷\ø\ù\ú\û\ü\ý\þ\ÿ tcsh "\ \ \ \\\\\\\\\\\\\\ \!\"\#\$%\&\'\(\)\*+,-./0123456789:\;\<\=\>\?@ABCDEFGHIJKLMNOPQRSTUVWXYZ\[\\\]\^_\`abcdefghijklmnopqrstuvwxyz\{\|\}\~<7F>\\ƒ\„\…\†\‡\ˆ\‰\Š\\Œ\<5C>\Ž\<5C>\<5C>\\\“\”\•\\—\˜\™\š\\œ\<5C>\ž\Ÿ\ \¡\¢\£\¤\¥\¦\§\¨\©\ª\«\¬\­\®\¯\°\±\²\³\´\µ\¶\·\¸\¹\º\»\¼\½\¾\¿\À\Á\Â\Ã\Ä\Å\Æ\Ç\È\É\Ê\Ë\Ì\Í\Î\Ï\Ð\Ñ\Ò\Ó\Ô\Õ\Ö\×\Ø\Ù\Ú\Û\Ü\Ý\Þ\ß\à\á\â\ã\ä\å\æ\ç\è\é\ê\ë\ì\í\î\ï\ð\ñ\ò\ó\ô\õ\ö\÷\ø\ù\ú\û\ü\ý\þ\ÿ
rzsh zsh:1: /bin/echo: restricted
echo '**' echo '**'
** **
echo xargs compatibility echo xargs compatibility
@ -621,59 +620,59 @@ xargs: argument line too long
parallel: Error: Command line too long (1000007 >= 10) at input 0: zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz... parallel: Error: Command line too long (1000007 >= 10) at input 0: zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz...
echo '### Test -x' echo '### Test -x'
### Test -x ### Test -x
(seq 1 10; echo 12345; seq 12 15) | stdout parallel -j1 -km -s 10 -x echo (seq 1 10; echo 12345; seq 12 15) | stdsort parallel -j1 -km -s 10 -x echo
1 2 1 2
3 4 3 4
5 6 5 6
7 8 7 8
9 10 9 10
parallel: Error: Command line too long (10 >= 10) at input 0: 12345 parallel: Error: Command line too long (10 >= 10) at input 0: 12345
(seq 1 10; echo 12345; seq 12 15) | stdout parallel -j1 -kX -s 10 -x echo (seq 1 10; echo 12345; seq 12 15) | stdsort parallel -j1 -kX -s 10 -x echo
1 2 1 2
3 4 3 4
5 6 5 6
7 8 7 8
9 10 9 10
parallel: Error: Command line too long (10 >= 10) at input 0: 12345 parallel: Error: Command line too long (10 >= 10) at input 0: 12345
(seq 1 10; echo 12345; seq 12 15) | stdout xargs -s 10 -x echo (seq 1 10; echo 12345; seq 12 15) | stdsort xargs -s 10 -x echo
1 2 1 2
3 4 3 4
5 6 5 6
7 8
xargs: argument line too long xargs: argument line too long
7 8 (seq 1 10; echo 1234; seq 12 15) | stdsort parallel -j1 -km -s 10 -x echo
(seq 1 10; echo 1234; seq 12 15) | stdout parallel -j1 -km -s 10 -x echo
1 2 1 2
12
1234
13
14
15
3 4 3 4
5 6 5 6
7 8 7 8
9 10 9 10
1234 (seq 1 10; echo 1234; seq 12 15) | stdsort parallel -j1 -kX -s 10 -x echo
1 2
12 12
1234
13 13
14 14
15 15
(seq 1 10; echo 1234; seq 12 15) | stdout parallel -j1 -kX -s 10 -x echo
1 2
3 4 3 4
5 6 5 6
7 8 7 8
9 10 9 10
1234 (seq 1 10; echo 1234; seq 12 15) | stdsort xargs -s 10 -x echo
1 2
12 12
1234
13 13
14 14
15 15
(seq 1 10; echo 1234; seq 12 15) | stdout xargs -s 10 -x echo
1 2
3 4 3 4
5 6 5 6
7 8 7 8
9 10 9 10
1234
12
13
14
15
echo '### Test -a and --arg-file: Read input from file instead of stdin' echo '### Test -a and --arg-file: Read input from file instead of stdin'
### Test -a and --arg-file: Read input from file instead of stdin ### Test -a and --arg-file: Read input from file instead of stdin
seq 1 10 >/tmp/parallel_$$-1; parallel -k -a /tmp/parallel_$$-1 echo; rm /tmp/parallel_$$-1 seq 1 10 >/tmp/parallel_$$-1; parallel -k -a /tmp/parallel_$$-1 echo; rm /tmp/parallel_$$-1

View file

@ -227,9 +227,10 @@ echo 'bug #44250: pxz complains File format not recognized but decompresses anyw
bug #44250: pxz complains File format not recognized but decompresses anyway bug #44250: pxz complains File format not recognized but decompresses anyway
# The first line dumps core if run from make file. Why?! # The first line dumps core if run from make file. Why?!
stdout parallel --compress --compress-program pxz ls /{} ::: OK-if-missing-file stdout parallel --compress --compress-program pxz ls /{} ::: OK-if-missing-file
parallel: Error: pxz failed. ls: cannot access '/OK-if-missing-file': No such file or directory
stdout parallel --compress --compress-program pixz --decompress-program 'pixz -d' ls /{} ::: OK-if-missing-file stdout parallel --compress --compress-program pixz --decompress-program 'pixz -d' ls /{} ::: OK-if-missing-file
ls: cannot access /OK-if-missing-file: No such file or directory can not seek in input: Illegal seek
ls: cannot access '/OK-if-missing-file': No such file or directory
stdout parallel --compress --compress-program pixz --decompress-program 'pixz -d' true ::: OK-if-no-output stdout parallel --compress --compress-program pixz --decompress-program 'pixz -d' true ::: OK-if-no-output
stdout parallel --compress --compress-program pxz true ::: OK-if-no-output stdout parallel --compress --compress-program pxz true ::: OK-if-no-output
echo 'bug #41613: --compress --line-buffer no newline'; perl -e 'print "It worked"'| parallel --pipe --compress --line-buffer cat; echo echo 'bug #41613: --compress --line-buffer no newline'; perl -e 'print "It worked"'| parallel --pipe --compress --line-buffer cat; echo

View file

@ -9,7 +9,7 @@ par_linebuffer_matters_compress OK: --linebuffer makes a difference
par_linebuffer_matters_compress_tag ### (--linebuffer) --compress --tag should give different output par_linebuffer_matters_compress_tag ### (--linebuffer) --compress --tag should give different output
par_linebuffer_matters_compress_tag OK: --linebuffer makes a difference par_linebuffer_matters_compress_tag OK: --linebuffer makes a difference
par_memory_leak ### Test for memory leaks par_memory_leak ### Test for memory leaks
par_memory_leak Of 10 runs of 1 job at least one should be bigger than a 3000 job run par_memory_leak Of 30 runs of 1 job at least one should be bigger than a 3000 job run
par_memory_leak Good: No memleak detected. par_memory_leak Good: No memleak detected.
par_race_condition1 ### Test race condition on 8 CPU (my laptop) par_race_condition1 ### Test race condition on 8 CPU (my laptop)
par_race_condition1 1 par_race_condition1 1
@ -25,3 +25,4 @@ par_race_condition1 10
par_tmp_full ### Test --tmpdir running full. bug #40733 was caused by this par_tmp_full ### Test --tmpdir running full. bug #40733 was caused by this
par_tmp_full parallel: Error: Output is incomplete. Cannot append to buffer file in /tmp/shm/parallel. Is the disk full? par_tmp_full parallel: Error: Output is incomplete. Cannot append to buffer file in /tmp/shm/parallel. Is the disk full?
par_tmp_full parallel: Error: Change $TMPDIR with --tmpdir or use --compress. par_tmp_full parallel: Error: Change $TMPDIR with --tmpdir or use --compress.
par_tmp_full Warning: unable to close filehandle properly: No space left on device during global destruction.

View file

@ -43,7 +43,7 @@ Got TERM
** **
echo '### bug #47644: Wrong slot number replacement when resuming' echo '### bug #47644: Wrong slot number replacement when resuming'
### bug #47644: Wrong slot number replacement when resuming ### bug #47644: Wrong slot number replacement when resuming
seq 0 20 | parallel -kj 4 --delay .2 --joblog /tmp/parallel-bug-47558 'sleep 1; echo {%} {=$_==10 and exit =}'; seq 0 20 | parallel -kj 4 --resume --delay .2 --joblog /tmp/parallel-bug-47558 'sleep 1; echo {%} {=$_==110 and exit =}' seq 0 20 | parallel -kj 4 --delay 0.2 --joblog /tmp/parallel-bug-47558 'sleep 1; echo {%} {=$_==10 and exit =}'; seq 0 20 | parallel -kj 4 --resume --delay 0.2 --joblog /tmp/parallel-bug-47558 'sleep 1; echo {%} {=$_==110 and exit =}'
1 0 1 0
2 1 2 1
3 2 3 2

View file

@ -27,6 +27,8 @@ par_sqlandworker $MYSQL : sleep .3;echo 5 b 5 b 5 b\n
par_sqlandworker $MYSQL : sleep .3;echo 5 c 5 c 5 c\n par_sqlandworker $MYSQL : sleep .3;echo 5 c 5 c 5 c\n
par_sqlandworker $MYSQL : sleep .3;echo 5 d 5 d 5 d\n par_sqlandworker $MYSQL : sleep .3;echo 5 d 5 d 5 d\n
par_sqlandworker $MYSQL : sleep .3;echo 5 e 5 e 5 e\n par_sqlandworker $MYSQL : sleep .3;echo 5 e 5 e 5 e\n
par_sqlandworker $MYSQL mysql: [Warning] Using a password on the command line interface can be insecure.
par_sqlandworker $MYSQL mysql: [Warning] Using a password on the command line interface can be insecure.
p_wrapper par_sqlandworker \$PG p_wrapper par_sqlandworker \$PG
par_sqlandworker $PG Exit=0 par_sqlandworker $PG Exit=0
par_sqlandworker $PG Exit=0 par_sqlandworker $PG Exit=0
@ -167,6 +169,8 @@ par_sqlandworker_compress_linebuffer_tag $MYSQL : sleep .3;echo 5 b 5 b NULL NUL
par_sqlandworker_compress_linebuffer_tag $MYSQL : sleep .3;echo 5 c 5 c NULL NULL par_sqlandworker_compress_linebuffer_tag $MYSQL : sleep .3;echo 5 c 5 c NULL NULL
par_sqlandworker_compress_linebuffer_tag $MYSQL : sleep .3;echo 5 d 5 d NULL NULL par_sqlandworker_compress_linebuffer_tag $MYSQL : sleep .3;echo 5 d 5 d NULL NULL
par_sqlandworker_compress_linebuffer_tag $MYSQL : sleep .3;echo 5 e 5 e NULL NULL par_sqlandworker_compress_linebuffer_tag $MYSQL : sleep .3;echo 5 e 5 e NULL NULL
par_sqlandworker_compress_linebuffer_tag $MYSQL mysql: [Warning] Using a password on the command line interface can be insecure.
par_sqlandworker_compress_linebuffer_tag $MYSQL mysql: [Warning] Using a password on the command line interface can be insecure.
p_wrapper par_sqlandworker_compress_linebuffer_tag \$PG p_wrapper par_sqlandworker_compress_linebuffer_tag \$PG
par_sqlandworker_compress_linebuffer_tag $PG Exit=0 par_sqlandworker_compress_linebuffer_tag $PG Exit=0
par_sqlandworker_compress_linebuffer_tag $PG Exit=0 par_sqlandworker_compress_linebuffer_tag $PG Exit=0
@ -257,6 +261,8 @@ par_sqlandworker_linebuffer $MYSQL : sleep .3;echo 5 b 5 b 5 b\n
par_sqlandworker_linebuffer $MYSQL : sleep .3;echo 5 c 5 c 5 c\n par_sqlandworker_linebuffer $MYSQL : sleep .3;echo 5 c 5 c 5 c\n
par_sqlandworker_linebuffer $MYSQL : sleep .3;echo 5 d 5 d 5 d\n par_sqlandworker_linebuffer $MYSQL : sleep .3;echo 5 d 5 d 5 d\n
par_sqlandworker_linebuffer $MYSQL : sleep .3;echo 5 e 5 e 5 e\n par_sqlandworker_linebuffer $MYSQL : sleep .3;echo 5 e 5 e 5 e\n
par_sqlandworker_linebuffer $MYSQL mysql: [Warning] Using a password on the command line interface can be insecure.
par_sqlandworker_linebuffer $MYSQL mysql: [Warning] Using a password on the command line interface can be insecure.
p_wrapper par_sqlandworker_linebuffer \$PG p_wrapper par_sqlandworker_linebuffer \$PG
par_sqlandworker_linebuffer $PG Exit=0 par_sqlandworker_linebuffer $PG Exit=0
par_sqlandworker_linebuffer $PG Exit=0 par_sqlandworker_linebuffer $PG Exit=0
@ -397,6 +403,8 @@ par_sqlandworker_linebuffer_tag $MYSQL : sleep .3;echo 5 b 5 b 5 b\t5 b\n
par_sqlandworker_linebuffer_tag $MYSQL : sleep .3;echo 5 c 5 c 5 c\t5 c\n par_sqlandworker_linebuffer_tag $MYSQL : sleep .3;echo 5 c 5 c 5 c\t5 c\n
par_sqlandworker_linebuffer_tag $MYSQL : sleep .3;echo 5 d 5 d 5 d\t5 d\n par_sqlandworker_linebuffer_tag $MYSQL : sleep .3;echo 5 d 5 d 5 d\t5 d\n
par_sqlandworker_linebuffer_tag $MYSQL : sleep .3;echo 5 e 5 e 5 e\t5 e\n par_sqlandworker_linebuffer_tag $MYSQL : sleep .3;echo 5 e 5 e 5 e\t5 e\n
par_sqlandworker_linebuffer_tag $MYSQL mysql: [Warning] Using a password on the command line interface can be insecure.
par_sqlandworker_linebuffer_tag $MYSQL mysql: [Warning] Using a password on the command line interface can be insecure.
p_wrapper par_sqlandworker_linebuffer_tag \$PG p_wrapper par_sqlandworker_linebuffer_tag \$PG
par_sqlandworker_linebuffer_tag $PG Exit=0 par_sqlandworker_linebuffer_tag $PG Exit=0
par_sqlandworker_linebuffer_tag $PG Exit=0 par_sqlandworker_linebuffer_tag $PG Exit=0
@ -537,6 +545,8 @@ par_sqlandworker_lo $MYSQL lo sleep .3;echo 5 b 5 b 5 b\n
par_sqlandworker_lo $MYSQL lo sleep .3;echo 5 c 5 c 5 c\n par_sqlandworker_lo $MYSQL lo sleep .3;echo 5 c 5 c 5 c\n
par_sqlandworker_lo $MYSQL lo sleep .3;echo 5 d 5 d 5 d\n par_sqlandworker_lo $MYSQL lo sleep .3;echo 5 d 5 d 5 d\n
par_sqlandworker_lo $MYSQL lo sleep .3;echo 5 e 5 e 5 e\n par_sqlandworker_lo $MYSQL lo sleep .3;echo 5 e 5 e 5 e\n
par_sqlandworker_lo $MYSQL mysql: [Warning] Using a password on the command line interface can be insecure.
par_sqlandworker_lo $MYSQL mysql: [Warning] Using a password on the command line interface can be insecure.
p_wrapper par_sqlandworker_lo \$PG p_wrapper par_sqlandworker_lo \$PG
par_sqlandworker_lo $PG Exit=0 par_sqlandworker_lo $PG Exit=0
par_sqlandworker_lo $PG Exit=0 par_sqlandworker_lo $PG Exit=0
@ -677,6 +687,8 @@ par_sqlandworker_results $MYSQL : sleep .3;echo 5 b 5 b /tmp/out--sql/1/5/2/b/st
par_sqlandworker_results $MYSQL : sleep .3;echo 5 c 5 c /tmp/out--sql/1/5/2/c/stdout /tmp/out--sql/1/5/2/c/stderr par_sqlandworker_results $MYSQL : sleep .3;echo 5 c 5 c /tmp/out--sql/1/5/2/c/stdout /tmp/out--sql/1/5/2/c/stderr
par_sqlandworker_results $MYSQL : sleep .3;echo 5 d 5 d /tmp/out--sql/1/5/2/d/stdout /tmp/out--sql/1/5/2/d/stderr par_sqlandworker_results $MYSQL : sleep .3;echo 5 d 5 d /tmp/out--sql/1/5/2/d/stdout /tmp/out--sql/1/5/2/d/stderr
par_sqlandworker_results $MYSQL : sleep .3;echo 5 e 5 e /tmp/out--sql/1/5/2/e/stdout /tmp/out--sql/1/5/2/e/stderr par_sqlandworker_results $MYSQL : sleep .3;echo 5 e 5 e /tmp/out--sql/1/5/2/e/stdout /tmp/out--sql/1/5/2/e/stderr
par_sqlandworker_results $MYSQL mysql: [Warning] Using a password on the command line interface can be insecure.
par_sqlandworker_results $MYSQL mysql: [Warning] Using a password on the command line interface can be insecure.
p_wrapper par_sqlandworker_results \$PG p_wrapper par_sqlandworker_results \$PG
par_sqlandworker_results $PG Exit=0 par_sqlandworker_results $PG Exit=0
par_sqlandworker_results $PG Exit=0 par_sqlandworker_results $PG Exit=0
@ -767,6 +779,8 @@ par_sqlandworker_tag $MYSQL : sleep .3;echo 5 b 5 b 5 b\t5 b\n
par_sqlandworker_tag $MYSQL : sleep .3;echo 5 c 5 c 5 c\t5 c\n par_sqlandworker_tag $MYSQL : sleep .3;echo 5 c 5 c 5 c\t5 c\n
par_sqlandworker_tag $MYSQL : sleep .3;echo 5 d 5 d 5 d\t5 d\n par_sqlandworker_tag $MYSQL : sleep .3;echo 5 d 5 d 5 d\t5 d\n
par_sqlandworker_tag $MYSQL : sleep .3;echo 5 e 5 e 5 e\t5 e\n par_sqlandworker_tag $MYSQL : sleep .3;echo 5 e 5 e 5 e\t5 e\n
par_sqlandworker_tag $MYSQL mysql: [Warning] Using a password on the command line interface can be insecure.
par_sqlandworker_tag $MYSQL mysql: [Warning] Using a password on the command line interface can be insecure.
p_wrapper par_sqlandworker_tag \$PG p_wrapper par_sqlandworker_tag \$PG
par_sqlandworker_tag $PG Exit=0 par_sqlandworker_tag $PG Exit=0
par_sqlandworker_tag $PG Exit=0 par_sqlandworker_tag $PG Exit=0
@ -907,6 +921,8 @@ par_sqlandworker_unbuffer $MYSQL : sleep .3;echo 5 b 5 b NULL NULL
par_sqlandworker_unbuffer $MYSQL : sleep .3;echo 5 c 5 c NULL NULL par_sqlandworker_unbuffer $MYSQL : sleep .3;echo 5 c 5 c NULL NULL
par_sqlandworker_unbuffer $MYSQL : sleep .3;echo 5 d 5 d NULL NULL par_sqlandworker_unbuffer $MYSQL : sleep .3;echo 5 d 5 d NULL NULL
par_sqlandworker_unbuffer $MYSQL : sleep .3;echo 5 e 5 e NULL NULL par_sqlandworker_unbuffer $MYSQL : sleep .3;echo 5 e 5 e NULL NULL
par_sqlandworker_unbuffer $MYSQL mysql: [Warning] Using a password on the command line interface can be insecure.
par_sqlandworker_unbuffer $MYSQL mysql: [Warning] Using a password on the command line interface can be insecure.
p_wrapper par_sqlandworker_unbuffer \$PG p_wrapper par_sqlandworker_unbuffer \$PG
par_sqlandworker_unbuffer $PG Exit=0 par_sqlandworker_unbuffer $PG Exit=0
par_sqlandworker_unbuffer $PG Exit=0 par_sqlandworker_unbuffer $PG Exit=0

View file

@ -20,22 +20,22 @@ echo '### bug #41805: Idea: propagate --env for parallel --number-of-cores'
** test_zsh ** test_zsh
FOO=test_zsh parallel --env FOO,HOME -S zsh@lo -N0 env ::: "" |sort|egrep 'FOO|^HOME' FOO=test_zsh parallel --env FOO,HOME -S zsh@lo -N0 env ::: "" |sort|egrep 'FOO|^HOME'
FOO=test_zsh FOO=test_zsh
HOME=/home/tange HOME=/mnt/4tb/home/tange
echo '** test_zsh_filter' echo '** test_zsh_filter'
** test_zsh_filter ** test_zsh_filter
FOO=test_zsh_filter parallel --filter-hosts --env FOO,HOME -S zsh@lo -N0 env ::: "" |sort|egrep 'FOO|^HOME' FOO=test_zsh_filter parallel --filter-hosts --env FOO,HOME -S zsh@lo -N0 env ::: "" |sort|egrep 'FOO|^HOME'
FOO=test_zsh_filter FOO=test_zsh_filter
HOME=/home/tange HOME=/mnt/4tb/home/tange
echo '** test_csh' echo '** test_csh'
** test_csh ** test_csh
FOO=test_csh parallel --env FOO,HOME -S csh@lo -N0 env ::: "" |sort|egrep 'FOO|^HOME' FOO=test_csh parallel --env FOO,HOME -S csh@lo -N0 env ::: "" |sort|egrep 'FOO|^HOME'
FOO=test_csh FOO=test_csh
HOME=/home/tange HOME=/mnt/4tb/home/tange
echo '** test_csh_filter' echo '** test_csh_filter'
** test_csh_filter ** test_csh_filter
FOO=test_csh_filter parallel --filter-hosts --env FOO,HOME -S csh@lo -N0 env ::: "" |sort|egrep 'FOO|^HOME' FOO=test_csh_filter parallel --filter-hosts --env FOO,HOME -S csh@lo -N0 env ::: "" |sort|egrep 'FOO|^HOME'
FOO=test_csh_filter FOO=test_csh_filter
HOME=/home/tange HOME=/mnt/4tb/home/tange
echo '** bug #41805 done' echo '** bug #41805 done'
** bug #41805 done ** bug #41805 done
echo '### Deal with long command lines on remote servers' echo '### Deal with long command lines on remote servers'
@ -64,7 +64,7 @@ echo '### bug #40001: --joblog and --nonall seem not to work together:'
echo '### bug #40132: FreeBSD: --workdir . gives warning if . == $HOME' echo '### bug #40132: FreeBSD: --workdir . gives warning if . == $HOME'
### bug #40132: FreeBSD: --workdir . gives warning if . == $HOME ### bug #40132: FreeBSD: --workdir . gives warning if . == $HOME
cd && parallel --workdir . -S lo pwd ::: "" cd && parallel --workdir . -S lo pwd ::: ""
/home/tange /mnt/4tb/home/tange
echo '### use function as $PARALLEL_SSH' echo '### use function as $PARALLEL_SSH'
### use function as $PARALLEL_SSH ### use function as $PARALLEL_SSH
foossh() { echo "FOOSSH" >&2; ssh "$@"; }; export -f foossh; PARALLEL_SSH=foossh parallel -S 1/lo echo ::: 'Run through FOOSSH?' foossh() { echo "FOOSSH" >&2; ssh "$@"; }; export -f foossh; PARALLEL_SSH=foossh parallel -S 1/lo echo ::: 'Run through FOOSSH?'
@ -146,13 +146,13 @@ OK
OK OK
OK OK
ls: No match. ls: No match.
ls: cannot access ./?--: No such file or directory ls: cannot access './?--': No such file or directory
ls: No match. ls: No match.
ls: cannot access ./--?: No such file or directory ls: cannot access './--?': No such file or directory
ls: No match. ls: No match.
ls: cannot access ./?--.a: No such file or directory ls: cannot access './?--.a': No such file or directory
ls: No match. ls: No match.
ls: cannot access ./--?.a: No such file or directory ls: cannot access './--?.a': No such file or directory
echo '### Test --trc "/tmp/./--- /A" "/tmp/./ ---/B"' echo '### Test --trc "/tmp/./--- /A" "/tmp/./ ---/B"'
### Test --trc "/tmp/./--- /A" "/tmp/./ ---/B" ### Test --trc "/tmp/./--- /A" "/tmp/./ ---/B"
mkdir -p '/tmp/./--- ' '/tmp/ ---'; touch -- '/tmp/./--- /A' '/tmp/ ---/B'; rm -f ./---?/A.a ./?---/B.a; parallel --trc {=s:.*/./::=}.a -S csh@lo,sh@lo touch ./{=s:.*/./::=}.a ::: '/tmp/./--- /A' '/tmp/./ ---/B'; ls ./---?/A.a ./?---/B.a; parallel --nonall -k -S csh@lo,sh@lo 'ls ./?--- ./---? || echo OK'; echo '### bug #46519: --onall ignores --transfer' mkdir -p '/tmp/./--- ' '/tmp/ ---'; touch -- '/tmp/./--- /A' '/tmp/ ---/B'; rm -f ./---?/A.a ./?---/B.a; parallel --trc {=s:.*/./::=}.a -S csh@lo,sh@lo touch ./{=s:.*/./::=}.a ::: '/tmp/./--- /A' '/tmp/./ ---/B'; ls ./---?/A.a ./?---/B.a; parallel --nonall -k -S csh@lo,sh@lo 'ls ./?--- ./---? || echo OK'; echo '### bug #46519: --onall ignores --transfer'
@ -162,8 +162,8 @@ OK
OK OK
### bug #46519: --onall ignores --transfer ### bug #46519: --onall ignores --transfer
ls: No match. ls: No match.
ls: cannot access ./?---: No such file or directory ls: cannot access './?---': No such file or directory
ls: cannot access ./---?: No such file or directory ls: cannot access './---?': No such file or directory
touch bug46519.{a,b,c}; rm -f bug46519.?? bug46519.???; parallel --onall --tf bug46519.{} --trc bug46519.{}{} --trc bug46519.{}{}{} -S csh@lo,sh@lo 'ls bug46519.{}; touch bug46519.{}{} bug46519.{}{}{}' ::: a b c; ls bug46519.?? bug46519.???; parallel --onall -S csh@lo,sh@lo ls bug46519.{}{} bug46519.{}{}{} ::: a b c && echo Cleanup failed touch bug46519.{a,b,c}; rm -f bug46519.?? bug46519.???; parallel --onall --tf bug46519.{} --trc bug46519.{}{} --trc bug46519.{}{}{} -S csh@lo,sh@lo 'ls bug46519.{}; touch bug46519.{}{} bug46519.{}{}{}' ::: a b c; ls bug46519.?? bug46519.???; parallel --onall -S csh@lo,sh@lo ls bug46519.{}{} bug46519.{}{}{} ::: a b c && echo Cleanup failed
bug46519.a bug46519.a
bug46519.b bug46519.b
@ -177,22 +177,22 @@ bug46519.bb
bug46519.bbb bug46519.bbb
bug46519.cc bug46519.cc
bug46519.ccc bug46519.ccc
ls: cannot access bug46519.aa: No such file or directory ls: cannot access 'bug46519.aa': No such file or directory
ls: cannot access bug46519.aaa: No such file or directory ls: cannot access 'bug46519.aaa': No such file or directory
ls: cannot access bug46519.bb: No such file or directory ls: cannot access 'bug46519.bb': No such file or directory
ls: cannot access bug46519.bbb: No such file or directory ls: cannot access 'bug46519.bbb': No such file or directory
ls: cannot access bug46519.cc: No such file or directory ls: cannot access 'bug46519.cc': No such file or directory
ls: cannot access bug46519.ccc: No such file or directory ls: cannot access 'bug46519.ccc': No such file or directory
ls: cannot access bug46519.aa: No such file or directory ls: cannot access 'bug46519.aa': No such file or directory
ls: cannot access bug46519.aaa: No such file or directory ls: cannot access 'bug46519.aaa': No such file or directory
ls: cannot access bug46519.bb: No such file or directory ls: cannot access 'bug46519.bb': No such file or directory
ls: cannot access bug46519.bbb: No such file or directory ls: cannot access 'bug46519.bbb': No such file or directory
ls: cannot access bug46519.cc: No such file or directory ls: cannot access 'bug46519.cc': No such file or directory
ls: cannot access bug46519.ccc: No such file or directory ls: cannot access 'bug46519.ccc': No such file or directory
echo '### Test --nice remote' echo '### Test --nice remote'
### Test --nice remote ### Test --nice remote
stdout parallel --nice 1 -S lo -vv 'PAR=a bash -c "echo \$PAR {}"' ::: b | perl -pe 's/\S*parallel-server\S*/one-server/;s:[a-z/\\+=0-9]{500,}:base64:i;' stdout parallel --nice 1 -S lo -vv 'PAR=a bash -c "echo \$PAR {}"' ::: b | perl -pe 's/\S*parallel-server\S*/one-server/;s:[a-z/\\+=0-9]{500,}:base64:i;'
ssh lo -- exec perl -e @GNU_Parallel\\\=\\\(\\\"use\\\",\\\"IPC::Open3\\\;\\\",\\\"use\\\",\\\"MIME::Base64\\\"\\\)\\\;eval\\\"@GNU_Parallel\\\"\\\;\\\$SIG\\\{CHLD\\\}\\\=\\\"IGNORE\\\"\\\;my\\\$zip\\\=\\\(grep\\\{-x\\\$_\\\}\\\"/usr/local/bin/bzip2\\\"\\\)\\\[0\\\]\\\|\\\|\\\"bzip2\\\"\\\;my\\\(\\\$in,\\\$out,\\\$eval\\\)\\\;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\\\;eval\\\$eval\\\; base64; ssh lo -- exec perl -e @GNU_Parallel\\\=split/_/,\\\"use_IPC::Open3\\\;_use_MIME::Base64\\\"\\\;eval\\\"@GNU_Parallel\\\"\\\;\\\$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\\\;eval\\\$eval\\\; base64;
a b a b
echo '**' echo '**'
** **

View file

@ -123,10 +123,11 @@ echo '### exported function to csh but with PARALLEL_SHELL=bash'
CSH/TCSH DO NOT SUPPORT newlines IN VARIABLES/FUNCTIONS. Unset doit CSH/TCSH DO NOT SUPPORT newlines IN VARIABLES/FUNCTIONS. Unset doit
OK OK
bug #47695: How to set $PATH on remote? bug #47695: How to set $PATH on remote?
Welcome to Linux Mint 17 Qiana (GNU/Linux 3.16.0-31-lowlatency x86_64) Welcome to Ubuntu 16.04.1 LTS (GNU/Linux 4.4.0-31-generic x86_64)
Welcome to Linux Mint * Documentation: https://help.ubuntu.com
* Documentation: http://www.linuxmint.com * Management: https://landscape.canonical.com
* Support: https://ubuntu.com/advantage
0 updates are security updates. 0 updates are security updates.
@ -135,10 +136,11 @@ BASH Path before: /bin:/usr/bin with no parallel
^^^^^^^^ Not found is OK ^^^^^^^^ Not found is OK
/bin:/usr/bin:/tmp OK /bin:/usr/bin:/tmp OK
Welcome to Linux Mint 17 Qiana (GNU/Linux 3.16.0-31-lowlatency x86_64) Welcome to Ubuntu 16.04.1 LTS (GNU/Linux 4.4.0-31-generic x86_64)
Welcome to Linux Mint * Documentation: https://help.ubuntu.com
* Documentation: http://www.linuxmint.com * Management: https://landscape.canonical.com
* Support: https://ubuntu.com/advantage
0 updates are security updates. 0 updates are security updates.
@ -147,4 +149,5 @@ Thus no job control in this shell.
CSH Path before: /bin:/usr/bin with no parallel CSH Path before: /bin:/usr/bin with no parallel
parallel: Command not found. parallel: Command not found.
^^^^^^^^ Not found is OK ^^^^^^^^ Not found is OK
/bin:/usr/bin:/tmp OK parallel: Warning: Removed lo.
parallel: Error: There are no hosts left to run on.

View file

@ -95,7 +95,6 @@ echo '### works'
### works ### works
stdout parallel -Sparallel@lo --tmux echo ::: \\\\\\\"\\\\\\\"\\\;\@ | grep -v 'See output' stdout parallel -Sparallel@lo --tmux echo ::: \\\\\\\"\\\\\\\"\\\;\@ | grep -v 'See output'
stdout parallel -Sparallel@lo --tmux echo ::: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx | grep -v 'See output' stdout parallel -Sparallel@lo --tmux echo ::: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx | grep -v 'See output'
parallel: Error: Command line too long (402 >= 118) at input 0: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx...
echo '### These blocked due to length' echo '### These blocked due to length'
### These blocked due to length ### These blocked due to length
stdout parallel -Slo --tmux echo ::: \\\\\\\"\\\\\\\"\\\;\@ | grep -v 'See output' stdout parallel -Slo --tmux echo ::: \\\\\\\"\\\\\\\"\\\;\@ | grep -v 'See output'

View file

@ -34,7 +34,7 @@ Environment variables are:
stderr stderr
rsync: connection unexpectedly closed (0 bytes received so far) [sender] rsync: connection unexpectedly closed (0 bytes received so far) [sender]
rsync error: error in rsync protocol data stream (code 12) at io.c(226) [sender=3.1.0] rsync error: error in rsync protocol data stream (code 12) at io.c(226) [sender=3.1.1]
/usr/lib/autossh/autossh: invalid option -- '-' /usr/lib/autossh/autossh: invalid option -- '-'
usage: autossh [-V] [-M monitor_port[:echo_port]] [-f] [SSH_OPTIONS] usage: autossh [-V] [-M monitor_port[:echo_port]] [-f] [SSH_OPTIONS]
@ -66,14 +66,14 @@ Environment variables are:
stderr stderr
rsync: connection unexpectedly closed (0 bytes received so far) [Receiver] rsync: connection unexpectedly closed (0 bytes received so far) [Receiver]
rsync error: error in rsync protocol data stream (code 12) at io.c(226) [Receiver=3.1.0] rsync error: error in rsync protocol data stream (code 12) at io.c(226) [Receiver=3.1.1]
echo '### bug #46520: --basefile cleans up without --cleanup' echo '### bug #46520: --basefile cleans up without --cleanup'
### bug #46520: --basefile cleans up without --cleanup ### bug #46520: --basefile cleans up without --cleanup
touch bug_46520; parallel -S parallel@lo --bf bug_46520 ls ::: bug_46520; ssh parallel@lo ls bug_46520; parallel -S parallel@lo --cleanup --bf bug_46520 ls ::: bug_46520; stdout ssh parallel@lo ls bug_46520 # should not exist touch bug_46520; parallel -S parallel@lo --bf bug_46520 ls ::: bug_46520; ssh parallel@lo ls bug_46520; parallel -S parallel@lo --cleanup --bf bug_46520 ls ::: bug_46520; stdout ssh parallel@lo ls bug_46520 # should not exist
bug_46520 bug_46520
bug_46520 bug_46520
bug_46520 bug_46520
ls: cannot access bug_46520: No such file or directory ls: cannot access 'bug_46520': No such file or directory
echo '### bug #36595: silent loss of input with --pipe and --sshlogin' echo '### bug #36595: silent loss of input with --pipe and --sshlogin'
### bug #36595: silent loss of input with --pipe and --sshlogin ### bug #36595: silent loss of input with --pipe and --sshlogin
seq 10000 | xargs | parallel --pipe -S 8/localhost cat 2>/dev/null | wc seq 10000 | xargs | parallel --pipe -S 8/localhost cat 2>/dev/null | wc
@ -85,9 +85,9 @@ OK1
OK2 OK2
echo '### --ssh lsh' echo '### --ssh lsh'
### --ssh lsh ### --ssh lsh
parallel --ssh lsh -S lo echo ::: OK parallel --ssh 'lsh -c aes256-ctr' -S lo echo ::: OK
OK OK
echo OK | parallel --ssh lsh --pipe -S csh@lo cat echo OK | parallel --ssh 'lsh -c aes256-ctr' --pipe -S csh@lo cat
OK OK
# Todo rsync/trc csh@lo # Todo rsync/trc csh@lo
# Test gl. parallel med --ssh lsh: Hvilke fejler? brug dem. Også hvis de fejler # Test gl. parallel med --ssh lsh: Hvilke fejler? brug dem. Også hvis de fejler

View file

@ -54,21 +54,21 @@ echo '### Test --onall -u'; parallel --onall -S parallel@lo,csh@lo -u '(echo {
3 3
echo '### Test --nonall'; parallel --nonall -k -S parallel@lo,csh@lo pwd | sort echo '### Test --nonall'; parallel --nonall -k -S parallel@lo,csh@lo pwd | sort
### Test --nonall ### Test --nonall
/home/csh /mnt/4tb/home/csh
/home/parallel /mnt/4tb/home/parallel
echo '### Test --nonall -u - should be interleaved x y x y'; parallel --nonall -S parallel@lo,csh@lo -u 'pwd|grep -q csh && sleep 3; pwd;sleep 12;pwd;' echo '### Test --nonall -u - should be interleaved x y x y'; parallel --nonall -S parallel@lo,csh@lo -u 'pwd|grep -q csh && sleep 3; pwd;sleep 12;pwd;'
### Test --nonall -u - should be interleaved x y x y ### Test --nonall -u - should be interleaved x y x y
/home/parallel /mnt/4tb/home/parallel
/home/csh /mnt/4tb/home/csh
/home/parallel /mnt/4tb/home/parallel
/home/csh /mnt/4tb/home/csh
echo '### Test read sshloginfile from STDIN'; echo parallel@lo,csh@lo | parallel -S - -k --nonall pwd; echo parallel@lo,csh@lo | parallel --sshloginfile - -k --onall pwd\; echo ::: foo echo '### Test read sshloginfile from STDIN'; echo parallel@lo,csh@lo | parallel -S - -k --nonall pwd; echo parallel@lo,csh@lo | parallel --sshloginfile - -k --onall pwd\; echo ::: foo
### Test read sshloginfile from STDIN ### Test read sshloginfile from STDIN
/home/csh /mnt/4tb/home/csh
/home/parallel /mnt/4tb/home/parallel
/home/csh /mnt/4tb/home/csh
foo foo
/home/parallel /mnt/4tb/home/parallel
foo foo
echo '**' echo '**'
** **
@ -88,24 +88,24 @@ echo '### Test --nonall --basefile --cleanup (rm should fail)'; touch tmp/nona
### Test --nonall --basefile --cleanup (rm should fail) ### Test --nonall --basefile --cleanup (rm should fail)
tmp/nonall--basefile--clean tmp/nonall--basefile--clean
tmp/nonall--basefile--clean tmp/nonall--basefile--clean
rm: cannot remove tmp/nonall--basefile--clean: No such file or directory rm: cannot remove 'tmp/nonall--basefile--clean': No such file or directory
rm: cannot remove tmp/nonall--basefile--clean: No such file or directory rm: cannot remove 'tmp/nonall--basefile--clean': No such file or directory
echo '**' echo '**'
** **
echo '### Test --onall --basefile --cleanup (rm should fail)'; touch tmp/onall--basefile--clean; stdout parallel --onall --basefile tmp/onall--basefile--clean --cleanup -S parallel@lo,csh@lo ls {} ::: tmp/onall--basefile--clean; stdout parallel --onall -S parallel@lo,csh@lo rm {} ::: tmp/onall--basefile--clean; stdout rm tmp/onall--basefile--clean echo '### Test --onall --basefile --cleanup (rm should fail)'; touch tmp/onall--basefile--clean; stdout parallel --onall --basefile tmp/onall--basefile--clean --cleanup -S parallel@lo,csh@lo ls {} ::: tmp/onall--basefile--clean; stdout parallel --onall -S parallel@lo,csh@lo rm {} ::: tmp/onall--basefile--clean; stdout rm tmp/onall--basefile--clean
### Test --onall --basefile --cleanup (rm should fail) ### Test --onall --basefile --cleanup (rm should fail)
tmp/onall--basefile--clean tmp/onall--basefile--clean
tmp/onall--basefile--clean tmp/onall--basefile--clean
rm: cannot remove tmp/onall--basefile--clean: No such file or directory rm: cannot remove 'tmp/onall--basefile--clean': No such file or directory
rm: cannot remove tmp/onall--basefile--clean: No such file or directory rm: cannot remove 'tmp/onall--basefile--clean': No such file or directory
echo '**' echo '**'
** **
echo '### Test --workdir .'; ssh parallel@lo mkdir -p mydir; mkdir -p $HOME/mydir; cd $HOME/mydir; parallel --workdir . -S parallel@lo ::: pwd echo '### Test --workdir .'; ssh parallel@lo mkdir -p mydir; mkdir -p $HOME/mydir; cd $HOME/mydir; parallel --workdir . -S parallel@lo ::: pwd
### Test --workdir . ### Test --workdir .
/home/parallel/mydir /mnt/4tb/home/parallel/mydir
echo '### Test --wd .'; ssh csh@lo mkdir -p mydir; mkdir -p $HOME/mydir; cd $HOME/mydir; parallel --workdir . -S csh@lo ::: pwd echo '### Test --wd .'; ssh csh@lo mkdir -p mydir; mkdir -p $HOME/mydir; cd $HOME/mydir; parallel --workdir . -S csh@lo ::: pwd
### Test --wd . ### Test --wd .
/home/csh/mydir /mnt/4tb/home/csh/mydir
echo '### Test --wd {}'; ssh csh@lo rm -rf wd1 wd2; mkdir -p $HOME/mydir; cd $HOME/mydir; parallel --workdir {} -S csh@lo touch ::: wd1 wd2; ssh csh@lo ls -d wd1 wd2 echo '### Test --wd {}'; ssh csh@lo rm -rf wd1 wd2; mkdir -p $HOME/mydir; cd $HOME/mydir; parallel --workdir {} -S csh@lo touch ::: wd1 wd2; ssh csh@lo ls -d wd1 wd2
### Test --wd {} ### Test --wd {}
wd1 wd1

View file

@ -1,29 +1,29 @@
### test --env _ ### test --env _
Both test that variables are copied, Both test that variables are copied,
but also that they are NOT copied, if ignored but also that they are NOT copied, if ignored
par_bash_funky 3 arg alias_works
par_bash_funky function_works
par_bash_funky myvar works
par_bash_funky space 6
par_bash_funky assoc_val_a
par_bash_funky Funky-
par_bash_funky par_bash_funky
par_bash_funky 
par_bash_funky  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~
par_bash_funky <><7F><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>﹜ㄓ它夾帚型陋秣捲陷絮溢劃遞蝨螃謝藥齪ヌ圴佮迓玿旂衲欶趹欹詘棰葮摵蜠樉賥濋錎膼瀔嚦黀蘜蠲╭帉爎<E5B889>-funky
par_bash_funky 3 arg alias_works_over_ssh
par_bash_funky function_works_over_ssh
par_bash_funky myvar works
par_bash_funky space 6
par_bash_funky assoc_val_a
par_bash_funky Funky-
par_bash_funky par_bash_funky
par_bash_funky 
par_bash_funky  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~
par_bash_funky <><7F><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>﹜ㄓ它夾帚型陋秣捲陷絮溢劃遞蝨螃謝藥齪ヌ圴佮迓玿旂衲欶趹欹詘棰葮摵蜠樉賥濋錎膼瀔嚦黀蘜蠲╭帉爎<E5B889>-funky
par_bash_funky par_bash_funky
par_bash_funky \\\\\\\\ par_bash_funky \\\\\\\\
par_bash_funky 
par_bash_funky 
par_bash_funky  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~
par_bash_funky  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~
par_bash_funky space 6
par_bash_funky space 6
par_bash_funky 3 arg alias_works
par_bash_funky 3 arg alias_works_over_ssh
par_bash_funky Funky-
par_bash_funky Funky-
par_bash_funky \ \ \ \\\\\\\\\\\\\\ \!\"\#\$%\&\'\(\)\*+,-./0123456789:\;\<\=\>\?@ABCDEFGHIJKLMNOPQRSTUVWXYZ\[\\\]\^_\`abcdefghijklmnopqrstuvwxyz\{\|\}\~<7F>\\ƒ\„\…\†\‡\ˆ\‰\Š\\Œ\<5C>\Ž\<5C>\<5C>\\\“\”\•\\—\˜\™\š\\œ\<5C>\ž\Ÿ\ \¡\¢\£\¤\¥\¦\§\¨\©\ª\«\¬\­\®\¯\°\±\²\³\´\µ\¶\·\¸\¹\º\»\¼\½\¾\¿\À\Á\Â\Ã\Ä\Å\Æ\Ç\È\É\Ê\Ë\Ì\Í\Î\Ï\Ð\Ñ\Ò\Ó\Ô\Õ\Ö\×\Ø\Ù\Ú\Û\Ü\Ý\Þ\ß\à\á\â\ã\ä\å\æ\ç\è\é\ê\ë\ì\í\î\ï\ð\ñ\ò\ó\ô\õ\ö\÷\ø\ù\ú\û\ü\ý\þ\ÿ par_bash_funky \ \ \ \\\\\\\\\\\\\\ \!\"\#\$%\&\'\(\)\*+,-./0123456789:\;\<\=\>\?@ABCDEFGHIJKLMNOPQRSTUVWXYZ\[\\\]\^_\`abcdefghijklmnopqrstuvwxyz\{\|\}\~<7F>\\ƒ\„\…\†\‡\ˆ\‰\Š\\Œ\<5C>\Ž\<5C>\<5C>\\\“\”\•\\—\˜\™\š\\œ\<5C>\ž\Ÿ\ \¡\¢\£\¤\¥\¦\§\¨\©\ª\«\¬\­\®\¯\°\±\²\³\´\µ\¶\·\¸\¹\º\»\¼\½\¾\¿\À\Á\Â\Ã\Ä\Å\Æ\Ç\È\É\Ê\Ë\Ì\Í\Î\Ï\Ð\Ñ\Ò\Ó\Ô\Õ\Ö\×\Ø\Ù\Ú\Û\Ü\Ý\Þ\ß\à\á\â\ã\ä\å\æ\ç\è\é\ê\ë\ì\í\î\ï\ð\ñ\ò\ó\ô\õ\ö\÷\ø\ù\ú\û\ü\ý\þ\ÿ
par_bash_funky assoc_val_a
par_bash_funky assoc_val_a
par_bash_funky function_works
par_bash_funky function_works_over_ssh
par_bash_funky myvar works
par_bash_funky myvar works
par_bash_funky €亗儎厗噲墛媽崕彁憭摂晼棙櫄洔潪煚、¥ウЖ┆<D096><E29486><EFBFBD>辈炒刀犯购患骄坷谅媚牌侨墒颂臀闲岩釉罩棕仝圮蒉哙徕沅彐玷殛腱眍镳耱篝貊鼬<E8B28A><E9BCAC><EFBFBD><EFBFBD>-funky
par_bash_funky €亗儎厗噲墛媽崕彁憭摂晼棙櫄洔潪煚、¥ウЖ┆<D096><E29486><EFBFBD>辈炒刀犯购患骄坷谅媚牌侨墒颂臀闲岩釉罩棕仝圮蒉哙徕沅彐玷殛腱眍镳耱篝貊鼬<E8B28A><E9BCAC><EFBFBD><EFBFBD>-funky
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 work par_bash_man aliases work
@ -219,23 +219,23 @@ par_fish_underscore fish: Unknown command 'myfunc work'
par_fish_underscore fish: myfunc work par_fish_underscore fish: myfunc work
par_fish_underscore ^ par_fish_underscore ^
par_fish_underscore OK if ^^^^^^^^^^^^^^^^^ no myfunc par_fish_underscore OK if ^^^^^^^^^^^^^^^^^ no myfunc
par_ksh_funky 3 arg alias_works
par_ksh_funky function_works
par_ksh_funky myvar works
par_ksh_funky space 6
par_ksh_funky assoc_val_a
par_ksh_funky Funky-
par_ksh_funky  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~<><7F><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>﹜ㄓ它夾帚型陋秣捲陷絮溢劃遞蝨螃謝藥齪ヌ圴佮迓玿旂衲欶趹欹詘棰葮摵蜠樉賥濋錎膼瀔嚦黀蘜蠲╭帉爎<E5B889>-funky
par_ksh_funky 3 arg alias_works_over_ssh
par_ksh_funky function_works_over_ssh
par_ksh_funky myvar works
par_ksh_funky space 6
par_ksh_funky assoc_val_a
par_ksh_funky Funky-
par_ksh_funky  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~<><7F><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>﹜ㄓ它夾帚型陋秣捲陷絮溢劃遞蝨螃謝藥齪ヌ圴佮迓玿旂衲欶趹欹詘棰葮摵蜠樉賥濋錎膼瀔嚦黀蘜蠲╭帉爎<E5B889>-funky
par_ksh_funky par_ksh_funky
par_ksh_funky \\\\\\\\ par_ksh_funky \\\\\\\\
par_ksh_funky  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€亗儎厗噲墛媽崕彁憭摂晼棙櫄洔潪煚、¥ウЖ┆<D096><E29486><EFBFBD>辈炒刀犯购患骄坷谅媚牌侨墒颂臀闲岩釉罩棕仝圮蒉哙徕沅彐玷殛腱眍镳耱篝貊鼬<E8B28A><E9BCAC><EFBFBD><EFBFBD>-funky
par_ksh_funky  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€亗儎厗噲墛媽崕彁憭摂晼棙櫄洔潪煚、¥ウЖ┆<D096><E29486><EFBFBD>辈炒刀犯购患骄坷谅媚牌侨墒颂臀闲岩釉罩棕仝圮蒉哙徕沅彐玷殛腱眍镳耱篝貊鼬<E8B28A><E9BCAC><EFBFBD><EFBFBD>-funky
par_ksh_funky space 6
par_ksh_funky space 6
par_ksh_funky 3 arg alias_works
par_ksh_funky 3 arg alias_works_over_ssh
par_ksh_funky Funky-
par_ksh_funky Funky-
par_ksh_funky \ \ \ \\\\\\\\\\\\\\ \!\"\#\$%\&\'\(\)\*+,-./0123456789:\;\<\=\>\?@ABCDEFGHIJKLMNOPQRSTUVWXYZ\[\\\]\^_\`abcdefghijklmnopqrstuvwxyz\{\|\}\~<7F>\\ƒ\„\…\†\‡\ˆ\‰\Š\\Œ\<5C>\Ž\<5C>\<5C>\\\“\”\•\\—\˜\™\š\\œ\<5C>\ž\Ÿ\ \¡\¢\£\¤\¥\¦\§\¨\©\ª\«\¬\­\®\¯\°\±\²\³\´\µ\¶\·\¸\¹\º\»\¼\½\¾\¿\À\Á\Â\Ã\Ä\Å\Æ\Ç\È\É\Ê\Ë\Ì\Í\Î\Ï\Ð\Ñ\Ò\Ó\Ô\Õ\Ö\×\Ø\Ù\Ú\Û\Ü\Ý\Þ\ß\à\á\â\ã\ä\å\æ\ç\è\é\ê\ë\ì\í\î\ï\ð\ñ\ò\ó\ô\õ\ö\÷\ø\ù\ú\û\ü\ý\þ\ÿ par_ksh_funky \ \ \ \\\\\\\\\\\\\\ \!\"\#\$%\&\'\(\)\*+,-./0123456789:\;\<\=\>\?@ABCDEFGHIJKLMNOPQRSTUVWXYZ\[\\\]\^_\`abcdefghijklmnopqrstuvwxyz\{\|\}\~<7F>\\ƒ\„\…\†\‡\ˆ\‰\Š\\Œ\<5C>\Ž\<5C>\<5C>\\\“\”\•\\—\˜\™\š\\œ\<5C>\ž\Ÿ\ \¡\¢\£\¤\¥\¦\§\¨\©\ª\«\¬\­\®\¯\°\±\²\³\´\µ\¶\·\¸\¹\º\»\¼\½\¾\¿\À\Á\Â\Ã\Ä\Å\Æ\Ç\È\É\Ê\Ë\Ì\Í\Î\Ï\Ð\Ñ\Ò\Ó\Ô\Õ\Ö\×\Ø\Ù\Ú\Û\Ü\Ý\Þ\ß\à\á\â\ã\ä\å\æ\ç\è\é\ê\ë\ì\í\î\ï\ð\ñ\ò\ó\ô\õ\ö\÷\ø\ù\ú\û\ü\ý\þ\ÿ
par_ksh_funky assoc_val_a
par_ksh_funky assoc_val_a
par_ksh_funky function_works
par_ksh_funky function_works_over_ssh
par_ksh_funky myvar works
par_ksh_funky myvar works
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 work par_ksh_man aliases work
@ -282,83 +282,20 @@ par_ksh_underscore /usr/bin/ksh: line 113: myfunc: not found
par_ksh_underscore OK if no myfunc ^^^^^^^^^^^^^^^^^ par_ksh_underscore OK if no myfunc ^^^^^^^^^^^^^^^^^
par_ksh_underscore /usr/bin/ksh: line 113: myfunc: not found par_ksh_underscore /usr/bin/ksh: line 113: myfunc: not found
par_ksh_underscore OK if no myfunc ^^^^^^^^^^^^^^^^^ par_ksh_underscore OK if no myfunc ^^^^^^^^^^^^^^^^^
par_pdksh_funky 3 arg alias_works par_tcsh_funky
par_pdksh_funky function_works par_tcsh_funky
par_pdksh_funky myvar works par_tcsh_funky
par_pdksh_funky space 6
par_pdksh_funky assoc_val_b
par_pdksh_funky Funky-
par_pdksh_funky  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~<><7F><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>﹜ㄓ它夾帚型陋秣捲陷絮溢劃遞蝨螃謝藥齪ヌ圴佮迓玿旂衲欶趹欹詘棰葮摵蜠樉賥濋錎膼瀔嚦黀蘜蠲╭帉爎<E5B889>-funky
par_pdksh_funky 3 arg alias_works_over_ssh
par_pdksh_funky function_works_over_ssh
par_pdksh_funky myvar works
par_pdksh_funky space 6
par_pdksh_funky assoc_val_b
par_pdksh_funky Funky-
par_pdksh_funky  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~<><7F><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>﹜ㄓ它夾帚型陋秣捲陷絮溢劃遞蝨螃謝藥齪ヌ圴佮迓玿旂衲欶趹欹詘棰葮摵蜠樉賥濋錎膼瀔嚦黀蘜蠲╭帉爎<E5B889>-funky
par_pdksh_funky
par_pdksh_funky \\\\\\\\
par_pdksh_funky \ \ \ \\\\\\\\\\\\\\ \!\"\#\$%\&\'\(\)\*+,-./0123456789:\;\<\=\>\?@ABCDEFGHIJKLMNOPQRSTUVWXYZ\[\\\]\^_\`abcdefghijklmnopqrstuvwxyz\{\|\}\~<><7F><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>䪤Ě声蹾胬𨜏㙡笋蕚𪀔髢𦰡脪𠗫𦖭䓀珢娫糭䨵鞸㘘𩄼疱髿癧α么功吒吭沔坼歿俞枯苒娉珮豹崤淚許廄琵跚愧稞鈾暝蓋墦穀閱璞餐縷擺黠孀髏躡ふж尐佢汻岤狖垥柦胐娖涂罡偅惝牾莍傜揊焮茻鄃幋滜綅赨塿槙箤踊嫹潿蔌醆嬞獦螏餤燡螰駹礒鎪瀙酀瀵騱酅贕鱋鱭𣘀园𧃸檝𠰺<E6AA9D>
par_pdksh_man ### pdksh
par_pdksh_man ### From man env_parallel
par_pdksh_man aliases work
par_pdksh_man aliases work
par_pdksh_man aliases work
par_pdksh_man aliases work
par_pdksh_man functions work
par_pdksh_man functions work
par_pdksh_man functions work
par_pdksh_man functions work
par_pdksh_man variables work
par_pdksh_man variables work
par_pdksh_man variables work
par_pdksh_man variables work
par_pdksh_man arrays
par_pdksh_man work,
par_pdksh_man too
par_pdksh_man arrays
par_pdksh_man work,
par_pdksh_man too
par_pdksh_man arrays
par_pdksh_man work,
par_pdksh_man too
par_pdksh_man arrays
par_pdksh_man work,
par_pdksh_man too
par_pdksh_underscore ### pdksh
par_pdksh_underscore ### Testing of --env _
par_pdksh_underscore variables in aliases in and arrays in functions work
par_pdksh_underscore variables in aliases in and arrays in functions work
par_pdksh_underscore variables in aliases in and arrays in functions work
par_pdksh_underscore variables in aliases in and arrays in functions work
par_pdksh_underscore variables in aliases in and arrays in functions work
par_pdksh_underscore variables in aliases in and arrays in functions work
par_pdksh_underscore aliases in and arrays in functions work
par_pdksh_underscore aliases in and arrays in functions work
par_pdksh_underscore aliases in functions work
par_pdksh_underscore aliases in functions work
par_pdksh_underscore aliases in functions work
par_pdksh_underscore OK if no myecho ^^^^^^^^^^^^^^^^^
par_pdksh_underscore aliases in functions work
par_pdksh_underscore OK if no myecho ^^^^^^^^^^^^^^^^^
par_pdksh_underscore /bin/pdksh: myfunc: not found
par_pdksh_underscore OK if no myfunc ^^^^^^^^^^^^^^^^^
par_pdksh_underscore /bin/pdksh: myfunc: not found
par_pdksh_underscore OK if no myfunc ^^^^^^^^^^^^^^^^^
par_tcsh_funky 3 arg alias_works par_tcsh_funky 3 arg alias_works
par_tcsh_funky
par_tcsh_funky myvar works
par_tcsh_funky space special chars problem
par_tcsh_funky Funky-  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~<><7F><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>﹜ㄓ它夾帚型陋秣捲陷絮溢劃遞蝨螃謝藥齪ヌ圴佮迓玿旂衲欶趹欹詘棰葮摵蜠樉賥濋錎膼瀔嚦黀蘜蠲╭-funky alias_var_works
par_tcsh_funky func_echo: Command not found.
par_tcsh_funky 3 arg alias_works_over_ssh par_tcsh_funky 3 arg alias_works_over_ssh
par_tcsh_funky par_tcsh_funky Funky-  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€亗儎厗噲墛媽崕彁憭摂晼棙櫄洔潪煚、¥ウЖ┆<D096><E29486><EFBFBD>辈炒刀犯购患骄坷谅媚牌侨墒颂臀闲岩釉罩棕仝圮蒉哙徕沅彐玷殛腱眍镳耱篝貊鼬<E8B28A>-funky alias_var_works
par_tcsh_funky Funky-  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€亗儎厗噲墛媽崕彁憭摂晼棙櫄洔潪煚、¥ウЖ┆<D096><E29486><EFBFBD>辈炒刀犯购患骄坷谅媚牌侨墒颂臀闲岩釉罩棕仝圮蒉哙徕沅彐玷殛腱眍镳耱篝貊鼬<E8B28A>-funky alias_var_works_over_ssh
par_tcsh_funky \\\\\\\\ \ \ \ \ \\\\\\\\\\\\\\ \!\"\#\$%\&\'\(\)\*+,-./0123456789:\;\<\=\>\?@ABCDEFGHIJKLMNOPQRSTUVWXYZ\[\\\]\^_\`abcdefghijklmnopqrstuvwxyz\{\|\}\~€乗俓僜刓匼哱嘰圽塡奬媆孿峔嶾廫怽慭抃揬擻昞朶梊榎橽歕沑淺漒瀄焅燶<E78485><E787B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>猏玕琝璡甛痋癨盶瞈砛碶礬禱穃竆筡篭籠糪絓綷縗繺羂耚肻腬臷芢荺萛蒤蔦薥蘚蚛蝄蟎衆裓襖覾診誠謀譢豛賊赲踈躙輁轡運郳醆鈂鉢鋅錦鎈鏫鑌閈闬隲靄韁頫颸餦馶騖骪鬨鮘鯸鱘鳿鵟<E9B3BF>
par_tcsh_funky func_echo: Command not found.
par_tcsh_funky func_echo: Command not found.
par_tcsh_funky myvar works
par_tcsh_funky myvar works par_tcsh_funky myvar works
par_tcsh_funky space special chars problem par_tcsh_funky space special chars problem
par_tcsh_funky Funky-  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~<><7F><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>﹜ㄓ它夾帚型陋秣捲陷絮溢劃遞蝨螃謝藥齪ヌ圴佮迓玿旂衲欶趹欹詘棰葮摵蜠樉賥濋錎膼瀔嚦黀蘜蠲╭-funky alias_var_works_over_ssh par_tcsh_funky space special chars problem
par_tcsh_funky func_echo: Command not found.
par_tcsh_funky
par_tcsh_funky \\\\\\\\ \ \ \ \ \\\\\\\\\\\\\\ \!\"\#\$%\&\'\(\)\*+,-./0123456789:\;\<\=\>\?@ABCDEFGHIJKLMNOPQRSTUVWXYZ\[\\\]\^_\`abcdefghijklmnopqrstuvwxyz\{\|\}\~<><7F><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>䪤Ě声蹾胬𨜏㙡笋蕚𪀔髢𦰡脪𠗫𦖭䓀珢娫糭䨵鞸㘘𩄼疱髿癧α么功吒吭沔坼歿俞枯苒娉珮豹崤淚許廄琵跚愧稞鈾暝蓋墦穀閱璞餐縷擺黠孀髏躡ふж尐佢汻岤狖垥柦胐娖涂罡偅惝牾莍傜揊焮茻鄃幋滜綅赨塿槙箤踊嫹潿蔌醆嬞獦螏餤燡螰駹礒鎪瀙酀瀵騱酅贕鱋鱭<E9B18B>
par_tcsh_man ### tcsh par_tcsh_man ### tcsh
par_tcsh_man ### From man env_parallel par_tcsh_man ### From man env_parallel
par_tcsh_man #: Command not found. par_tcsh_man #: Command not found.
@ -402,25 +339,25 @@ par_tcsh_underscore OK ^^^^^^^^^^^^^^^^^ if no myecho
par_tcsh_underscore myecho: Command not found. par_tcsh_underscore myecho: Command not found.
par_tcsh_underscore OK ^^^^^^^^^^^^^^^^^ if no myecho par_tcsh_underscore OK ^^^^^^^^^^^^^^^^^ if no myecho
par_tcsh_underscore Connection to lo closed. par_tcsh_underscore Connection to lo closed.
par_zsh_funky 3 arg alias_works
par_zsh_funky function_works
par_zsh_funky myvar works
par_zsh_funky space 6
par_zsh_funky assoc_val_a
par_zsh_funky Funky-
par_zsh_funky 
par_zsh_funky  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~<><7F><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>﹜ㄓ它夾帚型陋秣捲陷絮溢劃遞蝨螃謝藥齪ヌ圴佮迓玿旂衲欶趹欹詘棰葮摵蜠樉賥濋錎膼瀔嚦黀蘜蠲╭帉爎<E5B889>-funky
par_zsh_funky 3 arg alias_works_over_ssh
par_zsh_funky function_works_over_ssh
par_zsh_funky myvar works
par_zsh_funky space 6
par_zsh_funky assoc_val_a
par_zsh_funky Funky-
par_zsh_funky 
par_zsh_funky  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~<><7F><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>﹜ㄓ它夾帚型陋秣捲陷絮溢劃遞蝨螃謝藥齪ヌ圴佮迓玿旂衲欶趹欹詘棰葮摵蜠樉賥濋錎膼瀔嚦黀蘜蠲╭帉爎<E5B889>-funky
par_zsh_funky par_zsh_funky
par_zsh_funky \\\\\\\\ par_zsh_funky \\\\\\\\
par_zsh_funky 
par_zsh_funky 
par_zsh_funky  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€亗儎厗噲墛媽崕彁憭摂晼棙櫄洔潪煚、¥ウЖ┆<D096><E29486><EFBFBD>辈炒刀犯购患骄坷谅媚牌侨墒颂臀闲岩釉罩棕仝圮蒉哙徕沅彐玷殛腱眍镳耱篝貊鼬<E8B28A><E9BCAC><EFBFBD><EFBFBD>-funky
par_zsh_funky  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€亗儎厗噲墛媽崕彁憭摂晼棙櫄洔潪煚、¥ウЖ┆<D096><E29486><EFBFBD>辈炒刀犯购患骄坷谅媚牌侨墒颂臀闲岩釉罩棕仝圮蒉哙徕沅彐玷殛腱眍镳耱篝貊鼬<E8B28A><E9BCAC><EFBFBD><EFBFBD>-funky
par_zsh_funky space 6
par_zsh_funky space 6
par_zsh_funky 3 arg alias_works
par_zsh_funky 3 arg alias_works_over_ssh
par_zsh_funky Funky-
par_zsh_funky Funky-
par_zsh_funky \ \ \ \\\\\\\\\\\\\\ \!\"\#\$%\&\'\(\)\*+,-./0123456789:\;\<\=\>\?@ABCDEFGHIJKLMNOPQRSTUVWXYZ\[\\\]\^_\`abcdefghijklmnopqrstuvwxyz\{\|\}\~<7F>\\ƒ\„\…\†\‡\ˆ\‰\Š\\Œ\<5C>\Ž\<5C>\<5C>\\\“\”\•\\—\˜\™\š\\œ\<5C>\ž\Ÿ\ \¡\¢\£\¤\¥\¦\§\¨\©\ª\«\¬\­\®\¯\°\±\²\³\´\µ\¶\·\¸\¹\º\»\¼\½\¾\¿\À\Á\Â\Ã\Ä\Å\Æ\Ç\È\É\Ê\Ë\Ì\Í\Î\Ï\Ð\Ñ\Ò\Ó\Ô\Õ\Ö\×\Ø\Ù\Ú\Û\Ü\Ý\Þ\ß\à\á\â\ã\ä\å\æ\ç\è\é\ê\ë\ì\í\î\ï\ð\ñ\ò\ó\ô\õ\ö\÷\ø\ù\ú\û\ü\ý\þ\ÿ par_zsh_funky \ \ \ \\\\\\\\\\\\\\ \!\"\#\$%\&\'\(\)\*+,-./0123456789:\;\<\=\>\?@ABCDEFGHIJKLMNOPQRSTUVWXYZ\[\\\]\^_\`abcdefghijklmnopqrstuvwxyz\{\|\}\~<7F>\\ƒ\„\…\†\‡\ˆ\‰\Š\\Œ\<5C>\Ž\<5C>\<5C>\\\“\”\•\\—\˜\™\š\\œ\<5C>\ž\Ÿ\ \¡\¢\£\¤\¥\¦\§\¨\©\ª\«\¬\­\®\¯\°\±\²\³\´\µ\¶\·\¸\¹\º\»\¼\½\¾\¿\À\Á\Â\Ã\Ä\Å\Æ\Ç\È\É\Ê\Ë\Ì\Í\Î\Ï\Ð\Ñ\Ò\Ó\Ô\Õ\Ö\×\Ø\Ù\Ú\Û\Ü\Ý\Þ\ß\à\á\â\ã\ä\å\æ\ç\è\é\ê\ë\ì\í\î\ï\ð\ñ\ò\ó\ô\õ\ö\÷\ø\ù\ú\û\ü\ý\þ\ÿ
par_zsh_funky assoc_val_a
par_zsh_funky assoc_val_a
par_zsh_funky function_works
par_zsh_funky function_works_over_ssh
par_zsh_funky myvar works
par_zsh_funky myvar works
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 work par_zsh_man aliases work

View file

@ -1,39 +1,41 @@
### Test stdin goes to first command only ("cat" as argument) ### Test stdin goes to first command only ("cat" as argument)
Academic tradition requires you to cite works you base your article on. via pseudotty
When using programs that use GNU Parallel to process data for publication Academic tradition requires you to cite works you base your article on.
please cite: When using programs that use GNU Parallel to process data for publication
please cite:
O. Tange (2011): GNU Parallel - The Command-Line Power Tool,
;login: The USENIX Magazine, February 2011:42-47. O. Tange (2011): GNU Parallel - The Command-Line Power Tool,
;login: The USENIX Magazine, February 2011:42-47.
This helps funding further development; AND IT WON'T COST YOU A CENT.
If you pay 10000 EUR you should feel free to use GNU Parallel without citing. This helps funding further development; AND IT WON'T COST YOU A CENT.
If you pay 10000 EUR you should feel free to use GNU Parallel without citing.
To silence the citation notice: run 'parallel --citation'.
To silence the citation notice: run 'parallel --citation'.
echo a
a echo a
echo a a
cat echo a
via pseudotty cat
cat via pseudotty
cat
### Test stdin as tty input for 'vi' ### Test stdin as tty input for 'vi'
NB: If this changes and the diff is printed to terminal, then NB: If this changes and the diff is printed to terminal, then
the terminal settings may be fucked up. Use 'reset' to get back. the terminal settings may be fucked up. Use 'reset' to get back.
Academic tradition requires you to cite works you base your article on. ZZZZ
When using programs that use GNU Parallel to process data for publication Academic tradition requires you to cite works you base your article on.
please cite: When using programs that use GNU Parallel to process data for publication
please cite:
O. Tange (2011): GNU Parallel - The Command-Line Power Tool,
;login: The USENIX Magazine, February 2011:42-47. O. Tange (2011): GNU Parallel - The Command-Line Power Tool,
;login: The USENIX Magazine, February 2011:42-47.
This helps funding further development; AND IT WON'T COST YOU A CENT.
If you pay 10000 EUR you should feel free to use GNU Parallel without citing. This helps funding further development; AND IT WON'T COST YOU A CENT.
If you pay 10000 EUR you should feel free to use GNU Parallel without citing.
To silence the citation notice: run 'parallel --citation'.
To silence the citation notice: run 'parallel --citation'.
10 files to edit
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"file1" [New File]~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ [?12l[?25h[?25lE173: 9 more files to edit[?12l[?25h[?1l>[?1049lAcademic tradition requires you to cite works you base your article on. 10 files to edit
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"file1" [New File]~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ [?12l[?25h[?25lE173: 9 more files to edit[?12l[?25h[?1l>[?1049lAcademic tradition requires you to cite works you base your article on.
When using programs that use GNU Parallel to process data for publication When using programs that use GNU Parallel to process data for publication
please cite: please cite:

View file

@ -32,6 +32,8 @@ rld
echo '### -E_ -0 echo < eof_-0.xi' echo '### -E_ -0 echo < eof_-0.xi'
### -E_ -0 echo < eof_-0.xi ### -E_ -0 echo < eof_-0.xi
stdout xargs -E_ -0 echo < eof_-0.xi stdout xargs -E_ -0 echo < eof_-0.xi
xargs: warning: the -E option has no effect if -0 or -d is used.
one two _ three four one two _ three four
stdout parallel -X -k -E_ -0 echo < eof_-0.xi stdout parallel -X -k -E_ -0 echo < eof_-0.xi
one one
@ -82,12 +84,12 @@ n
y y
echo '### -i -s26 -0 echo from \{\} to x{}y < items-0.xi' echo '### -i -s26 -0 echo from \{\} to x{}y < items-0.xi'
### -i -s26 -0 echo from \{\} to x{}y < items-0.xi ### -i -s26 -0 echo from \{\} to x{}y < items-0.xi
stdout xargs -i -s26 -0 echo from \{\} to x{}y < items-0.xi stdsort xargs -i -s26 -0 echo from \{\} to x{}y < items-0.xi
xargs: argument list too long
from one to xoney from one to xoney
stdout parallel -k -i -s26 -0 echo from \{\} to x{}y < items-0.xi xargs: argument list too long
parallel: Error: Command line too long (42 >= 26) at input 0: stdsort parallel -k -i -s26 -0 echo from \{\} to x{}y < items-0.xi
parallel: Error: Command line too long (42 >= 26) at input 0:
echo '### -l -0 echo < ldata-0.xi' echo '### -l -0 echo < ldata-0.xi'
### -l -0 echo < ldata-0.xi ### -l -0 echo < ldata-0.xi
stdout xargs -l -0 echo < ldata-0.xi stdout xargs -l -0 echo < ldata-0.xi
@ -1089,20 +1091,20 @@ stdout parallel -k -L2 echo < ldata.xi
999999999 999999999
echo '### echo < unmatched2.xi' echo '### echo < unmatched2.xi'
### echo < unmatched2.xi ### echo < unmatched2.xi
stdout xargs echo < unmatched2.xi stdsort xargs echo < unmatched2.xi
one
xargs: unmatched double quote; by default quotes are special to xargs unless you use the -0 option xargs: unmatched double quote; by default quotes are special to xargs unless you use the -0 option
one stdsort parallel -k echo < unmatched2.xi
stdout parallel -k echo < unmatched2.xi
one
"two "two
one
echo '### echo < unmatched.xi' echo '### echo < unmatched.xi'
### echo < unmatched.xi ### echo < unmatched.xi
stdout xargs echo < unmatched.xi stdsort xargs echo < unmatched.xi
one
xargs: unmatched double quote; by default quotes are special to xargs unless you use the -0 option xargs: unmatched double quote; by default quotes are special to xargs unless you use the -0 option
one stdsort parallel -k echo < unmatched.xi
stdout parallel -k echo < unmatched.xi
one
"two "two
one
three three
echo '### -n2 -x echo < unmatched.xi' echo '### -n2 -x echo < unmatched.xi'
### -n2 -x echo < unmatched.xi ### -n2 -x echo < unmatched.xi
@ -1206,10 +1208,10 @@ from: can't read /var/mail/{}
from: can't read /var/mail/{} from: can't read /var/mail/{}
echo '### -i -s26 echo from \{\} to x{}y < items.xi' echo '### -i -s26 echo from \{\} to x{}y < items.xi'
### -i -s26 echo from \{\} to x{}y < items.xi ### -i -s26 echo from \{\} to x{}y < items.xi
stdout xargs -i -s26 echo from \{\} to x{}y < items.xi stdsort xargs -i -s26 echo from \{\} to x{}y < items.xi
xargs: argument list too long
from dumb to xdumby from dumb to xdumby
stdout parallel -k -i -s26 echo from \{\} to x{}y < items.xi xargs: argument list too long
stdsort parallel -k -i -s26 echo from \{\} to x{}y < items.xi
parallel: Error: Command line too long (36 >= 26) at input 0: parallel: Error: Command line too long (36 >= 26) at input 0:
echo '### -i__ echo FIRST __ IS OK < quotes.xi' echo '### -i__ echo FIRST __ IS OK < quotes.xi'
### -i__ echo FIRST __ IS OK < quotes.xi ### -i__ echo FIRST __ IS OK < quotes.xi

View file

@ -345,7 +345,7 @@ bug #34241: --pipe should not spawn unneeded processes - part 2
seq 500 | parallel --tmpdir . -j10 --pipe --block 1k --files wc >/dev/null; ls *.par | wc -l; rm *.par; seq 500 | parallel --tmpdir . -j10 --pipe --block 1k --files --dry-run wc >/dev/null; echo No .par should exist; stdout ls *.par seq 500 | parallel --tmpdir . -j10 --pipe --block 1k --files wc >/dev/null; ls *.par | wc -l; rm *.par; seq 500 | parallel --tmpdir . -j10 --pipe --block 1k --files --dry-run wc >/dev/null; echo No .par should exist; stdout ls *.par
2 2
No .par should exist No .par should exist
ls: cannot access *.par: No such file or directory ls: cannot access '*.par': No such file or directory
echo "bug: --gnu was ignored if env var started with space: PARALLEL=' --gnu'" echo "bug: --gnu was ignored if env var started with space: PARALLEL=' --gnu'"
bug: --gnu was ignored if env var started with space: PARALLEL=' --gnu' bug: --gnu was ignored if env var started with space: PARALLEL=' --gnu'
export PARALLEL=" -v" && parallel echo ::: 'space in envvar OK' export PARALLEL=" -v" && parallel echo ::: 'space in envvar OK'

View file

@ -88,7 +88,7 @@ echo '### bug #42902: profiles containing arguments with space'
echo /bin/bash\=/bin/bash echo /bin/bash\=/bin/bash
/bin/bash=/bin/bash /bin/bash=/bin/bash
PARALLEL="--rpl 'FULLPATH chomp(\$_=\"/bin/bash=\".\`readlink -f \$_\`);' perl -e \'print \\\"@ARGV\\\n\\\"\' " parallel With script in \\\$PARALLEL FULLPATH ::: . PARALLEL="--rpl 'FULLPATH chomp(\$_=\"/bin/bash=\".\`readlink -f \$_\`);' perl -e \'print \\\"@ARGV\\\n\\\"\' " parallel With script in \\\$PARALLEL FULLPATH ::: .
With script in $PARALLEL /bin/bash=/home/tange/privat/parallel/testsuite With script in $PARALLEL /bin/bash=/mnt/4tb/home/tange/privat/parallel/testsuite
echo '### bug #42892: parallel -a nonexiting --pipepart' echo '### bug #42892: parallel -a nonexiting --pipepart'
### bug #42892: parallel -a nonexiting --pipepart ### bug #42892: parallel -a nonexiting --pipepart
parallel --pipepart -a nonexisting wc parallel --pipepart -a nonexisting wc
@ -97,7 +97,7 @@ echo '### bug #42913: Dont use $SHELL but the shell currently running'
### bug #42913: Dont use $SHELL but the shell currently running ### bug #42913: Dont use $SHELL but the shell currently running
echo '## Unknown shell => $SHELL (bash)' echo '## Unknown shell => $SHELL (bash)'
## Unknown shell => $SHELL (bash) ## Unknown shell => $SHELL (bash)
parallel -kj1 "cp \`which {}\` /tmp/SHELL; /tmp/SHELL -c 'parallel -Dinit echo ::: 1' | grep which;" ::: ash bash csh dash fish fizsh ksh ksh93 mksh pdksh posh rbash rush rzsh sash sh static-sh tcsh yash zsh; rm -f /tmp/SHELL /tmp/par*.par parallel -kj1 "cp \`which {}\` /tmp/SHELL; /tmp/SHELL -c 'parallel -Dinit echo ::: 1' | grep which;" ::: ash bash csh dash fish fizsh ksh ksh93 mksh posh rbash rush rzsh sash sh static-sh tcsh yash zsh; rm -f /tmp/SHELL /tmp/par*.par
shell? /bin/bash -c cp `which ash` /tmp/SHELL; /tmp/SHELL -c 'parallel -Dinit echo ::: 1' | grep which; shell? /bin/bash -c cp `which ash` /tmp/SHELL; /tmp/SHELL -c 'parallel -Dinit echo ::: 1' | grep which;
which bash => shell path /bin/bash which bash => shell path /bin/bash
shell? /bin/bash -c cp `which bash` /tmp/SHELL; /tmp/SHELL -c 'parallel -Dinit echo ::: 1' | grep which; shell? /bin/bash -c cp `which bash` /tmp/SHELL; /tmp/SHELL -c 'parallel -Dinit echo ::: 1' | grep which;
@ -115,8 +115,6 @@ shell? /bin/bash -c cp `which ksh93` /tmp/SHELL; /tmp/SHELL -c 'parallel -Dinit
which bash => shell path /bin/bash which bash => shell path /bin/bash
shell? /bin/bash -c cp `which mksh` /tmp/SHELL; /tmp/SHELL -c 'parallel -Dinit echo ::: 1' | grep which; shell? /bin/bash -c cp `which mksh` /tmp/SHELL; /tmp/SHELL -c 'parallel -Dinit echo ::: 1' | grep which;
which bash => shell path /bin/bash which bash => shell path /bin/bash
shell? /bin/bash -c cp `which pdksh` /tmp/SHELL; /tmp/SHELL -c 'parallel -Dinit echo ::: 1' | grep which;
which bash => shell path /bin/bash
shell? /bin/bash -c cp `which posh` /tmp/SHELL; /tmp/SHELL -c 'parallel -Dinit echo ::: 1' | grep which; shell? /bin/bash -c cp `which posh` /tmp/SHELL; /tmp/SHELL -c 'parallel -Dinit echo ::: 1' | grep which;
which bash => shell path /bin/bash which bash => shell path /bin/bash
shell? /bin/bash -c cp `which rbash` /tmp/SHELL; /tmp/SHELL -c 'parallel -Dinit echo ::: 1' | grep which; shell? /bin/bash -c cp `which rbash` /tmp/SHELL; /tmp/SHELL -c 'parallel -Dinit echo ::: 1' | grep which;
@ -138,7 +136,7 @@ Contact the systems administrator for further assistance.
SHELL: applet not found SHELL: applet not found
echo '## Known shells -c' echo '## Known shells -c'
## Known shells -c ## Known shells -c
parallel -k "\`which {}\` -c 'parallel -Dinit echo ::: 1' | grep which;" ::: ash bash csh dash fdsh fish fizsh ksh ksh93 mksh pdksh posh rbash rush rzsh sash sh static-sh tcsh yash zsh; rm -f /tmp/par*.par parallel -k "\`which {}\` -c 'parallel -Dinit echo ::: 1' | grep which;" ::: ash bash csh dash fdsh fish fizsh ksh ksh93 mksh posh rbash rush rzsh sash sh static-sh tcsh yash zsh; rm -f /tmp/par*.par
which ash => shell path /bin/ash which ash => shell path /bin/ash
shell? /bin/bash -c `which bash` -c 'parallel -Dinit echo ::: 1' | grep which; shell? /bin/bash -c `which bash` -c 'parallel -Dinit echo ::: 1' | grep which;
which bash => shell path /bin/bash which bash => shell path /bin/bash
@ -153,8 +151,6 @@ shell? /bin/bash -c `which ksh93` -c 'parallel -Dinit echo ::: 1' | grep which;
which bash => shell path /bin/bash which bash => shell path /bin/bash
shell? /bin/bash -c `which mksh` -c 'parallel -Dinit echo ::: 1' | grep which; shell? /bin/bash -c `which mksh` -c 'parallel -Dinit echo ::: 1' | grep which;
which bash => shell path /bin/bash which bash => shell path /bin/bash
shell? /bin/bash -c `which pdksh` -c 'parallel -Dinit echo ::: 1' | grep which;
which bash => shell path /bin/bash
which posh => shell path /bin/posh which posh => shell path /bin/posh
shell? /bin/bash -c `which rbash` -c 'parallel -Dinit echo ::: 1' | grep which; shell? /bin/bash -c `which rbash` -c 'parallel -Dinit echo ::: 1' | grep which;
which bash => shell path /bin/bash which bash => shell path /bin/bash
@ -172,7 +168,7 @@ Local configuration error occurred.
Contact the systems administrator for further assistance. Contact the systems administrator for further assistance.
echo '## Known shells |' echo '## Known shells |'
## Known shells | ## Known shells |
parallel -k "echo 'parallel -Dinit echo ::: 1' | \`which {}\` | grep which;" ::: ash bash csh dash fdsh fish fizsh ksh ksh93 mksh pdksh posh rbash rush rzsh sash sh static-sh tcsh yash zsh; rm -f /tmp/par*.par parallel -k "echo 'parallel -Dinit echo ::: 1' | \`which {}\` | grep which;" ::: ash bash csh dash fdsh fish fizsh ksh ksh93 mksh posh rbash rush rzsh sash sh static-sh tcsh yash zsh; rm -f /tmp/par*.par
which ash => shell path /bin/ash which ash => shell path /bin/ash
which bash => shell path /bin/bash which bash => shell path /bin/bash
which csh => shell path /bin/csh which csh => shell path /bin/csh
@ -183,7 +179,6 @@ which zsh => shell path /usr/bin/zsh
which ksh => shell path /usr/bin/ksh which ksh => shell path /usr/bin/ksh
which ksh93 => shell path /bin/ksh93 which ksh93 => shell path /bin/ksh93
which mksh => shell path /bin/mksh which mksh => shell path /bin/mksh
which pdksh => shell path /bin/pdksh
which posh => shell path /bin/posh which posh => shell path /bin/posh
which rbash => shell path /bin/rbash which rbash => shell path /bin/rbash
which rzsh => shell path /bin/rzsh which rzsh => shell path /bin/rzsh
@ -354,5 +349,5 @@ Send Receive Exitval
Send Receive Exitval Send Receive Exitval
echo '### --tmux test - check termination' echo '### --tmux test - check termination'
### --tmux test - check termination ### --tmux test - check termination
perl -e 'map {printf "$_%o%c\n",$_,$_}1..255' | stdout parallel --tmux echo {} :::: - ::: a b | perl -pe 's:(/tmp\S+/tms).....:$1XXXXX:;' perl -e 'map {printf "$_%o%c\n",$_,$_}1..255' | stdout parallel --tmux 'sleep 0.2;echo {}' :::: - ::: a b | perl -pe 's:(/tmp\S+/tms).....:$1XXXXX:;'
See output with: tmux -S /tmp/parallel-local22-tmpdir/tmsXXXXX attach See output with: tmux -S /tmp/parallel-local22-tmpdir/tmsXXXXX attach

View file

@ -52,24 +52,12 @@ echo '### test round-robin'; nice seq 1000 | $NICEPAR -j4 --block 1k --pipe --
277 277 1000 277 277 1000
echo '### bug #43600: --pipe --linebuffer --round does not work' echo '### bug #43600: --pipe --linebuffer --round does not work'
### bug #43600: --pipe --linebuffer --round does not work ### bug #43600: --pipe --linebuffer --round does not work
seq 10000000000 | parallel --pipe --linebuffer --round cat | head seq 10000000000 | parallel --pipe --linebuffer --round cat | head | wc -l
1
2
3
4
5
6
7
8
9
10 10
echo '### Check that 4 processes are really used' echo '### Check that 4 processes are really used'
### Check that 4 processes are really used ### Check that 4 processes are really used
seq 1000000 | parallel -j4 --pipe --round --line-buf wc |sort seq 1000000 | parallel -j4 --pipe --round --line-buf wc | wc -l
149796 149796 1048572 4
235148 235148 1646037
299592 299592 2097144
315464 315464 2097143
echo '### --version must have higher priority than retired options' echo '### --version must have higher priority than retired options'
### --version must have higher priority than retired options ### --version must have higher priority than retired options
$NICEPAR --version -g -Y -U -W -T | tail $NICEPAR --version -g -Y -U -W -T | tail

View file

@ -1,17 +1,15 @@
bug #46120: Suspend should suspend (at least local) children bug #46120: Suspend should suspend (at least local) children
2048 0a:c0:70:5b:ec:f6:c2:de:67:c3:53:7f:29:81:65:54 tange@hk (RSA1) 1024 SHA256:SXgag2Z2L91JsrT5WjNBcARD1EpyCCj4JctVJ6Zpzm0 /mnt/4tb/home/tange/.ssh/id_dsa (DSA)
1024 93:d1:21:c5:ff:e3:c3:be:6d:73:ea:aa:1e:a2:dc:06 /home/tange/.ssh/id_dsa (DSA) 8192 SHA256:lYn04AefJq/5r0e4FftceviJ7JVnq9NGKY3CW9XMpO8 /mnt/4tb/home/tange/.ssh/id_rsa (RSA)
8192 e1:95:e3:ff:99:a6:3a:b5:53:5a:54:59:d0:72:94:7f /home/tange/.ssh/id_rsa (RSA) 4096 SHA256:jUQ9ysfprs7UOckttjjVb+j3qikUmKWDEWC+eEJkbDQ /mnt/4tb/home/tange/.ssh/id_rsa_openindiana (RSA)
4096 94:2a:e3:cb:6b:66:63:21:13:51:8d:e8:4e:09:49:b2 /home/tange/.ssh/id_rsa_openindiana (RSA)
stdout /usr/bin/time -f CPUTIME=%U parallel --timeout 5 burnP6 ::: 1 | grep --colour=auto -q CPUTIME=1 stdout /usr/bin/time -f CPUTIME=%U parallel --timeout 5 burnP6 ::: 1 | grep -q CPUTIME=1
Zero=OK 0 Zero=OK 0
2048 0a:c0:70:5b:ec:f6:c2:de:67:c3:53:7f:29:81:65:54 tange@hk (RSA1) 1024 SHA256:SXgag2Z2L91JsrT5WjNBcARD1EpyCCj4JctVJ6Zpzm0 /mnt/4tb/home/tange/.ssh/id_dsa (DSA)
1024 93:d1:21:c5:ff:e3:c3:be:6d:73:ea:aa:1e:a2:dc:06 /home/tange/.ssh/id_dsa (DSA) 8192 SHA256:lYn04AefJq/5r0e4FftceviJ7JVnq9NGKY3CW9XMpO8 /mnt/4tb/home/tange/.ssh/id_rsa (RSA)
8192 e1:95:e3:ff:99:a6:3a:b5:53:5a:54:59:d0:72:94:7f /home/tange/.ssh/id_rsa (RSA) 4096 SHA256:jUQ9ysfprs7UOckttjjVb+j3qikUmKWDEWC+eEJkbDQ /mnt/4tb/home/tange/.ssh/id_rsa_openindiana (RSA)
4096 94:2a:e3:cb:6b:66:63:21:13:51:8d:e8:4e:09:49:b2 /home/tange/.ssh/id_rsa_openindiana (RSA)
echo 1 | stdout /usr/bin/time -f CPUTIME=%U parallel --timeout 5 burnP6 | grep --colour=auto -q CPUTIME=1 echo 1 | stdout /usr/bin/time -f CPUTIME=%U parallel --timeout 5 burnP6 | grep -q CPUTIME=1
Zero=OK 0 Zero=OK 0
echo '### -L -n with pipe' echo '### -L -n with pipe'
### -L -n with pipe ### -L -n with pipe

View file

@ -1,6 +1,6 @@
echo 'bug #41412: --timeout + --delay causes deadlock'; echo 'bug #41412: --timeout + --delay causes deadlock';
bug #41412: --timeout + --delay causes deadlock bug #41412: --timeout + --delay causes deadlock
seq 10 | parallel -j10 --timeout 1 --delay .3 echo; seq 10 | parallel -j10 --timeout 1 --delay 0.3 echo;
1 1
2 2
3 3

View file

@ -138,7 +138,7 @@ num8
num_%header num_%header
tsv-file.tsv tsv-file.tsv
foo foo
/home/tange/privat/parallel/testsuite/tmp /mnt/4tb/home/tange/privat/parallel/testsuite/tmp
my_func() { my_func() {
echo in my_func $1 echo in my_func $1
} }
@ -516,7 +516,8 @@ Computers / CPU cores / Max jobs to run
Computer:jobs running/jobs completed/%of started jobs/Average seconds to complete Computer:jobs running/jobs completed/%of started jobs/Average seconds to complete
seq 1000 | parallel -j10 --bar '(echo -n {};sleep 0.1)' 2> >(zenity --timeout=15 --progress --auto-kill --auto-close) seq 1000 | parallel -j10 --bar '(echo -n {};sleep 0.1)' 2> >(zenity --timeout=15 --progress --auto-kill --auto-close)
BASE64 parallel --joblog /tmp/log exit ::: 1 2 3 0 BASE64-Message: GtkDialog mapped without a transient parent. This is discouraged.
parallel --joblog /tmp/log exit ::: 1 2 3 0
cat /tmp/log; cat /tmp/log;
parallel --joblog /tmp/log exit ::: 1 2 3 0 parallel --joblog /tmp/log exit ::: 1 2 3 0
cat /tmp/log; parallel --resume --joblog /tmp/log exit ::: 1 2 3 0 0 0 cat /tmp/log; parallel --resume --joblog /tmp/log exit ::: 1 2 3 0 0 0
@ -675,9 +676,9 @@ foo
parallel -S $SERVER1 pwd ::: "" parallel -S $SERVER1 pwd ::: ""
parallel --workdir . -S $SERVER1 pwd ::: "" parallel --workdir . -S $SERVER1 pwd ::: ""
parallel --workdir ... -S $SERVER1 pwd ::: "" parallel --workdir ... -S $SERVER1 pwd ::: ""
/home/parallel /mnt/4tb/home/parallel
/home/parallel/privat/parallel/testsuite/tmp BASE64
/home/parallel/.TMPWORKDIR /mnt/4tb/home/parallel/.TMPWORKDIR
parallel -S $SERVER1 --sshdelay 0.2 echo ::: 1 2 3 parallel -S $SERVER1 --sshdelay 0.2 echo ::: 1 2 3
9 9
9 9
@ -708,34 +709,34 @@ Unknown option: :::
Unknown option: green Unknown option: green
env_parallel only works if it is a function. Do the below and restart your shell. env_parallel only works if it is a function. Do the below and restart your shell.
bash: Put this in /home/tange/.bashrc: . /usr/local/bin/env_parallel.bash bash: Put this in /mnt/4tb/home/tange/.bashrc: . /usr/local/bin/env_parallel.bash
E.g. by doing: echo '. /usr/local/bin/env_parallel.bash' >> /home/tange/.bashrc E.g. by doing: echo '. /usr/local/bin/env_parallel.bash' >> /mnt/4tb/home/tange/.bashrc
Supports: aliases, functions, variables, arrays Supports: aliases, functions, variables, arrays
zsh: Put this in /home/tange/.zshrc: . /usr/local/bin/env_parallel.zsh zsh: Put this in /mnt/4tb/home/tange/.zshrc: . /usr/local/bin/env_parallel.zsh
E.g. by doing: echo '. /usr/local/bin/env_parallel.zsh' >> /home/tange/.zshenv E.g. by doing: echo '. /usr/local/bin/env_parallel.zsh' >> /mnt/4tb/home/tange/.zshenv
Supports: functions, variables, arrays Supports: functions, variables, arrays
fish: Put this in /home/tange/.config/fish/config.fish: fish: Put this in /mnt/4tb/home/tange/.config/fish/config.fish:
. (which env_parallel.fish) . (which env_parallel.fish)
E.g. by doing: E.g. by doing:
echo '. (which env_parallel.fish)' >> /home/tange/.config/fish/config.fish echo '. (which env_parallel.fish)' >> /mnt/4tb/home/tange/.config/fish/config.fish
Supports: aliases, functions, variables, arrays Supports: aliases, functions, variables, arrays
ksh: Put this in /home/tange/.kshrc: source /usr/local/bin/env_parallel.ksh ksh: Put this in /mnt/4tb/home/tange/.kshrc: source /usr/local/bin/env_parallel.ksh
E.g. by doing: echo 'source /usr/local/bin/env_parallel.ksh' >> /home/tange/.kshrc E.g. by doing: echo 'source /usr/local/bin/env_parallel.ksh' >> /mnt/4tb/home/tange/.kshrc
Supports: aliases, functions, variables, arrays Supports: aliases, functions, variables, arrays
pdksh: Put this in /home/tange/.profile: source /usr/local/bin/env_parallel.pdksh pdksh: Put this in /mnt/4tb/home/tange/.profile: source /usr/local/bin/env_parallel.pdksh
E.g. by doing: echo '. /usr/local/bin/env_parallel.pdksh' >> /home/tange/.profile E.g. by doing: echo '. /usr/local/bin/env_parallel.pdksh' >> /mnt/4tb/home/tange/.profile
Supports: aliases, functions, variables, arrays Supports: aliases, functions, variables, arrays
csh: Put this in /home/tange/.cshrc: source /usr/local/bin/env_parallel.csh csh: Put this in /mnt/4tb/home/tange/.cshrc: source /usr/local/bin/env_parallel.csh
E.g. by doing: echo 'source /usr/local/bin/env_parallel.csh' >> /home/tange/.cshrc E.g. by doing: echo 'source /usr/local/bin/env_parallel.csh' >> /mnt/4tb/home/tange/.cshrc
Supports: aliases, variables, arrays with no special chars Supports: aliases, variables, arrays with no special chars
tcsh: Put this in /home/tange/.tcshrc: source /usr/local/bin/env_parallel.tcsh tcsh: Put this in /mnt/4tb/home/tange/.tcshrc: source /usr/local/bin/env_parallel.tcsh
E.g. by doing: echo 'source /usr/local/bin/env_parallel.tcsh' >> /home/tange/.tcshrc E.g. by doing: echo 'source /usr/local/bin/env_parallel.tcsh' >> /mnt/4tb/home/tange/.tcshrc
Supports: aliases, variables, arrays with no special chars Supports: aliases, variables, arrays with no special chars
To install in all shells run: To install in all shells run:
@ -757,7 +758,6 @@ in my_func baz
parallel --record-env parallel --record-env
cat ~/.parallel/ignored_vars|sort cat ~/.parallel/ignored_vars|sort
BASH_FUNC_run_test%% BASH_FUNC_run_test%%
CLUTTER_IM_MODULE
COLORFGBG COLORFGBG
DBUS_SESSION_BUS_ADDRESS DBUS_SESSION_BUS_ADDRESS
DEBEMAIL DEBEMAIL
@ -765,27 +765,25 @@ DEBFULLNAME
DEFAULTS_PATH DEFAULTS_PATH
DESKTOP_SESSION DESKTOP_SESSION
DISPLAY DISPLAY
DM_CONTROL
GLADE_CATALOG_PATH
GLADE_MODULE_PATH
GLADE_PIXMAP_PATH
GNOME_KEYRING_CONTROL
GNOME_KEYRING_PID
GPG_AGENT_INFO GPG_AGENT_INFO
GTK_IM_MODULE GS_LIB
GTK2_RC_FILES
GTK_RC_FILES
HISTCONTROL HISTCONTROL
HOME HOME
IM_CONFIG_PHASE
INSTANCE
JAVA_HOME JAVA_HOME
JDK_HOME JDK_HOME
JOB KDE_FULL_SESSION
KDE_MULTIHEAD
KDE_SESSION_UID
KDE_SESSION_VERSION
KONSOLE_DBUS_SERVICE KONSOLE_DBUS_SERVICE
KONSOLE_DBUS_SESSION KONSOLE_DBUS_SESSION
KONSOLE_DBUS_WINDOW KONSOLE_DBUS_WINDOW
KONSOLE_PROFILE_NAME KONSOLE_PROFILE_NAME
LANG LANG
LANGUAGE LANGUAGE
LC_TIME
LESS LESS
LESSCLOSE LESSCLOSE
LESSOPEN LESSOPEN
@ -793,6 +791,8 @@ LOGNAME
LS_COLORS LS_COLORS
MAKEFLAGS MAKEFLAGS
MAKELEVEL MAKELEVEL
MAKE_TERMERR
MAKE_TERMOUT
MANDATORY_PATH MANDATORY_PATH
MFLAGS MFLAGS
MOZ_NO_REMOTE MOZ_NO_REMOTE
@ -807,13 +807,11 @@ PERL_MB_OPT
PERL_MM_OPT PERL_MM_OPT
PROFILEHOME PROFILEHOME
PWD PWD
QT4_IM_MODULE QT_ACCESSIBILITY
QT_IM_MODULE QT_IM_MODULE
SELINUX_INIT QT_LINUX_ACCESSIBILITY_ALWAYS_ON
SERVER1 SERVER1
SERVER2 SERVER2
SESSION
SESSIONTYPE
SESSION_MANAGER SESSION_MANAGER
SHELL SHELL
SHELL_SESSION_ID SHELL_SESSION_ID
@ -821,29 +819,27 @@ SHLVL
SSH_AGENT_PID SSH_AGENT_PID
SSH_AUTH_SOCK SSH_AUTH_SOCK
TERM TERM
TEXTDOMAIN
TEXTDOMAINDIR
TIMEOUT TIMEOUT
TMPDIR TMPDIR
TRIES TRIES
UPSTART_EVENTS
UPSTART_INSTANCE
UPSTART_JOB
UPSTART_SESSION
USER USER
VISUAL VISUAL
WINDOWID WINDOWID
WINDOWPATH XAUTHORITY
XCURSOR_SIZE
XCURSOR_THEME
XDG_CONFIG_DIRS XDG_CONFIG_DIRS
XDG_CURRENT_DESKTOP XDG_CURRENT_DESKTOP
XDG_DATA_DIRS XDG_DATA_DIRS
XDG_MENU_PREFIX
XDG_RUNTIME_DIR XDG_RUNTIME_DIR
XDG_SEAT XDG_SEAT
XDG_SEAT_PATH
XDG_SESSION_CLASS
XDG_SESSION_DESKTOP
XDG_SESSION_ID XDG_SESSION_ID
XDG_SESSION_PATH
XDG_SESSION_TYPE
XDG_VTNR XDG_VTNR
XDM_MANAGED
XMODIFIERS
_ _
# The function is only copied if using Bash # The function is only copied if using Bash
my_func2() { my_func2() {
@ -863,7 +859,7 @@ _
} }
export -f my_func3 export -f my_func3
parallel -vv --workdir ... --nice 17 --env _ --trc {}.out -S $SERVER1 my_func3 {} ::: abc-file parallel -vv --workdir ... --nice 17 --env _ --trc {}.out -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\\\=\\\(\\\"use\\\",\\\"IPC::Open3\\\;\\\",\\\"use\\\",\\\"MIME::Base64\\\"\\\)\\\;eval\\\"@GNU_Parallel\\\"\\\;\\\$SIG\\\{CHLD\\\}\\\=\\\"IGNORE\\\"\\\;my\\\$zip\\\=\\\(grep\\\{-x\\\$_\\\}\\\"/usr/local/bin/bzip2\\\"\\\)\\\[0\\\]\\\|\\\|\\\"bzip2\\\"\\\;my\\\(\\\$in,\\\$out,\\\$eval\\\)\\\;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\\\;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 -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\\\"\\\;\\\$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\\\;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;
parallel --sqlandworker csv:////%2Ftmp%2Flog.csv seq ::: 10 ::: 12 13 14 parallel --sqlandworker csv:////%2Ftmp%2Flog.csv seq ::: 10 ::: 12 13 14
cat /tmp/log.csv cat /tmp/log.csv
99 99
@ -1082,21 +1078,21 @@ JOB4
/bin/bash: line 1: foo: command not found /bin/bash: line 1: foo: command not found
#!/usr/bin/perl #!/usr/bin/perl
print "@ARGV\n" print "@ARGV\n"
Warning: unknown mime-type for "@ARGV\n" -- using "application/octet-stream" Unescaped left brace in regex is deprecated, passed through in regex; marked by <-- HERE in m/%{ <-- HERE (.*?)}/ at /usr/bin/print line 528.
Error: no such file "@ARGV\n" Error: no such file "@ARGV\n"
parallel perl_echo ::: foo bar parallel perl_echo ::: foo bar
/bin/bash: perl_echo: command not found /bin/bash: perl_echo: command not found
/bin/bash: perl_echo: command not found /bin/bash: perl_echo: command not found
#!/usr/bin/parallel --shebang-wrap /usr/bin/perl #!/usr/bin/parallel --shebang-wrap /usr/bin/perl
print "@ARGV\n" print "@ARGV\n"
Warning: unknown mime-type for "@ARGV\n" -- using "application/octet-stream" Unescaped left brace in regex is deprecated, passed through in regex; marked by <-- HERE in m/%{ <-- HERE (.*?)}/ at /usr/bin/print line 528.
Error: no such file "@ARGV\n" Error: no such file "@ARGV\n"
perl_echo foo bar perl_echo foo bar
/bin/bash: perl_echo: command not found /bin/bash: perl_echo: command not found
#!/usr/bin/parallel --shebang-wrap /usr/bin/perl #!/usr/bin/parallel --shebang-wrap /usr/bin/perl
print "Arguments @ARGV\n"; print "Arguments @ARGV\n";
Warning: unknown mime-type for "Arguments @ARGV\n" -- using "application/octet-stream" Unescaped left brace in regex is deprecated, passed through in regex; marked by <-- HERE in m/%{ <-- HERE (.*?)}/ at /usr/bin/print line 528.
Error: no such file "Arguments @ARGV\n" Error: no such file "Arguments @ARGV\n"
#!/usr/bin/parallel --shebang-wrap /usr/bin/python #!/usr/bin/parallel --shebang-wrap /usr/bin/python
@ -1131,7 +1127,7 @@ Arguments
print "Arguments " print "Arguments "
puts ARGV puts ARGV
Warning: unknown mime-type for "Arguments " -- using "application/octet-stream" Unescaped left brace in regex is deprecated, passed through in regex; marked by <-- HERE in m/%{ <-- HERE (.*?)}/ at /usr/bin/print line 528.
Error: no such file "Arguments " Error: no such file "Arguments "
/bin/bash: line 3: puts: command not found /bin/bash: line 3: puts: command not found
#!/usr/bin/parallel --shebang-wrap /usr/bin/octave #!/usr/bin/parallel --shebang-wrap /usr/bin/octave

View file

@ -1,53 +1,79 @@
mysql: [Warning] Using a password on the command line interface can be insecure.
mysql: [Warning] Using a password on the command line interface can be insecure.
mysql: [Warning] Using a password on the command line interface can be insecure.
mysql: [Warning] Using a password on the command line interface can be insecure.
mysql: [Warning] Using a password on the command line interface can be insecure.
### Test of #! -Y with file as input ### Test of #! -Y with file as input
mysql: [Warning] Using a password on the command line interface can be insecure.
Testing if -Y works Testing if -Y works
Yes it does Yes it does
### Test of #! --shebang with file as input ### Test of #! --shebang with file as input
mysql: [Warning] Using a password on the command line interface can be insecure.
Testing if --shebang works Testing if --shebang works
Yes it does Yes it does
### Test reading sql on command line ### Test reading sql on command line
mysql: [Warning] Using a password on the command line interface can be insecure.
Test reading SQL from command line Test reading SQL from command line
Yes it does Yes it does
### Test reading sql from file ### Test reading sql from file
mysql: [Warning] Using a password on the command line interface can be insecure.
Test reading SQL from file works Test reading SQL from file works
Yes it does Yes it does
### Test dburl with username password host port ### Test dburl with username password host port
mysql: [Warning] Using a password on the command line interface can be insecure.
Test reading SQL from file works Test reading SQL from file works
Yes it does Yes it does
### Test .sql/aliases ### Test .sql/aliases
mysql: [Warning] Using a password on the command line interface can be insecure.
Test if .sql/aliases works Test if .sql/aliases works
Yes it does Yes it does
### Test sql:sql::alias ### Test sql:sql::alias
mysql: [Warning] Using a password on the command line interface can be insecure.
Test sql:sql::alias Test sql:sql::alias
Yes it works Yes it works
### Test --noheaders --no-headers -n ### Test --noheaders --no-headers -n
mysql: [Warning] Using a password on the command line interface can be insecure.
abc 1 abc 1
def 3 def 3
mysql: [Warning] Using a password on the command line interface can be insecure.
abc 1 abc 1
def 3 def 3
mysql: [Warning] Using a password on the command line interface can be insecure.
abc 1 abc 1
def 3 def 3
### Test --sep -s ### Test --sep -s
2 1 2 1
2 1 2 1
### Test --passthrough -p ### Test --passthrough -p
mysql: [Warning] Using a password on the command line interface can be insecure.
<TABLE BORDER=1><TR><TH>id</TH><TH>data</TH></TR><TR><TD>1</TD><TD>abc</TD></TR><TR><TD>3</TD><TD>def</TD></TR></TABLE> <TABLE BORDER=1><TR><TH>id</TH><TH>data</TH></TR><TR><TD>1</TD><TD>abc</TD></TR><TR><TD>3</TD><TD>def</TD></TR></TABLE>
mysql: [Warning] Using a password on the command line interface can be insecure.
<TABLE BORDER=1><TR><TH>id</TH><TH>data</TH></TR><TR><TD>1</TD><TD>abc</TD></TR><TR><TD>3</TD><TD>def</TD></TR></TABLE> <TABLE BORDER=1><TR><TH>id</TH><TH>data</TH></TR><TR><TD>1</TD><TD>abc</TD></TR><TR><TD>3</TD><TD>def</TD></TR></TABLE>
### Test --html ### Test --html
mysql: [Warning] Using a password on the command line interface can be insecure.
<TABLE BORDER=1><TR><TH>id</TH><TH>data</TH></TR><TR><TD>1</TD><TD>abc</TD></TR><TR><TD>3</TD><TD>def</TD></TR></TABLE> <TABLE BORDER=1><TR><TH>id</TH><TH>data</TH></TR><TR><TD>1</TD><TD>abc</TD></TR><TR><TD>3</TD><TD>def</TD></TR></TABLE>
### Test --show-processlist|proclist|listproc ### Test --show-processlist|proclist|listproc
mysql: [Warning] Using a password on the command line interface can be insecure.
2 17 2 17
mysql: [Warning] Using a password on the command line interface can be insecure.
2 17 2 17
mysql: [Warning] Using a password on the command line interface can be insecure.
2 17 2 17
### Test --db-size --dbsize ### Test --db-size --dbsize
mysql: [Warning] Using a password on the command line interface can be insecure.
2 6 54 2 6 54
mysql: [Warning] Using a password on the command line interface can be insecure.
2 6 54 2 6 54
### Test --table-size --tablesize ### Test --table-size --tablesize
42 mysql: [Warning] Using a password on the command line interface can be insecure.
42 63
mysql: [Warning] Using a password on the command line interface can be insecure.
63
### Test --debug ### Test --debug
dburl mysql://sqlunittest:CB5A1FFFA5A@localhost:3306/sqlunittest dburl mysql://sqlunittest:CB5A1FFFA5A@localhost:3306/sqlunittest
databasedriver mysql user sqlunittest password CB5A1FFFA5A host localhost port 3306 database sqlunittest query databasedriver mysql user sqlunittest password CB5A1FFFA5A host localhost port 3306 database sqlunittest query
mysql -C --host=localhost --user=sqlunittest --port=3306 --password=CB5A1FFFA5A sqlunittest mysql -C --host=localhost --user=sqlunittest --port=3306 --password=CB5A1FFFA5A sqlunittest
mysql: [Warning] Using a password on the command line interface can be insecure.
Test if --debug works Test if --debug works
Yes it does Yes it does
### Test --version -V ### Test --version -V

View file

@ -1,10 +1,18 @@
mysql: [Warning] Using a password on the command line interface can be insecure.
mysql: [Warning] Using a password on the command line interface can be insecure.
mysql: [Warning] Using a password on the command line interface can be insecure.
mysql: [Warning] Using a password on the command line interface can be insecure.
mysql: [Warning] Using a password on the command line interface can be insecure.
### Test reading sql from url command line ### Test reading sql from url command line
mysql: [Warning] Using a password on the command line interface can be insecure.
Test reading SQL from command line Test reading SQL from command line
Yes it works Yes it works
### Test reading sql from url command line %-quoting ### Test reading sql from url command line %-quoting
mysql: [Warning] Using a password on the command line interface can be insecure.
Test %-quoting SQL from command line Test %-quoting SQL from command line
Yes it works Yes it works
### Test .sql/aliases with url on commandline ### Test .sql/aliases with url on commandline
mysql: [Warning] Using a password on the command line interface can be insecure.
Test if .sql/aliases with %-quoting works Test if .sql/aliases with %-quoting works
Yes it works Yes it works
### Test cyclic alias .sql/aliases ### Test cyclic alias .sql/aliases
@ -14,6 +22,7 @@ Test statement in alias
It works It works
Test statement in alias Test statement in alias
It works It works
mysql: [Warning] Using a password on the command line interface can be insecure.
Test statement in alias Test statement in alias
It works It works
### Test alias followed by SQL as arg ### Test alias followed by SQL as arg
@ -33,6 +42,7 @@ It works
Query added to alias Query added to alias
'Query from stdin' 'Query from stdin'
Query from stdin Query from stdin
mysql: [Warning] Using a password on the command line interface can be insecure.
Test statement in alias Test statement in alias
It works It works
Query added to alias Query added to alias
@ -46,7 +56,7 @@ Error:
sql [-hnr] [--table-size] [--db-size] [-p pass-through] [-s string] dburl [command] sql [-hnr] [--table-size] [--db-size] [-p pass-through] [-s string] dburl [command]
### Test dburl : ### Test dburl :
Error: Error:
: is not defined in /home/tange/.sql/aliases /home/tange/.dburl.aliases /etc/sql/aliases /usr/local/bin/dburl.aliases /usr/local/bin/dburl.aliases.dist : is not defined in /mnt/4tb/home/tange/.sql/aliases /mnt/4tb/home/tange/.dburl.aliases /etc/sql/aliases /usr/local/bin/dburl.aliases /usr/local/bin/dburl.aliases.dist
sql [-hnr] [--table-size] [--db-size] [-p pass-through] [-s string] dburl [command] sql [-hnr] [--table-size] [--db-size] [-p pass-through] [-s string] dburl [command]
### Test oracle with multiple arguments on the command line ### Test oracle with multiple arguments on the command line
@ -76,3 +86,34 @@ arg3
---------- ----------
3 3
### Test --show-tables
OBJECT_NAME
--------------------------------------------------------------------------------------------------------------------------------
JOB_HISTORY
EMPLOYEES
JOBS
DEPARTMENTS
LOCATIONS
COUNTRIES
REGIONS
7 rows selected.
### Test --show-databases
TABLESPACE_NAME BLOCK_SIZE INITIAL_EXTENT NEXT_EXTENT MIN_EXTENTS MAX_EXTENTS MAX_SIZE PCT_INCREASE MIN_EXTLEN STATUS CONTENTS LOGGING FOR EXTENT_MAN ALLOCATIO SEGMEN DEF_TAB_ RETENTION BIG PREDICA ENC COMPRESS_FOR
------------------------------ ---------- -------------- ----------- ----------- ----------- ---------- ------------ ---------- --------- --------- --------- --- ---------- --------- ------ -------- ----------- --- ------- --- ------------
SYSTEM 8192 65536 1 2147483645 2147483645 65536 ONLINE PERMANENT LOGGING NO LOCAL SYSTEM MANUAL DISABLED NOT APPLY NO HOST NO
SYSAUX 8192 65536 1 2147483645 2147483645 65536 ONLINE PERMANENT LOGGING NO LOCAL SYSTEM AUTO DISABLED NOT APPLY NO HOST NO
UNDOTBS1 8192 65536 1 2147483645 2147483645 65536 ONLINE UNDO LOGGING NO LOCAL SYSTEM MANUAL DISABLED NOGUARANTEE NO HOST NO
TEMP 8192 1048576 1048576 1 2147483645 0 1048576 ONLINE TEMPORARY NOLOGGING NO LOCAL UNIFORM MANUAL DISABLED NOT APPLY NO HOST NO
USERS 8192 65536 1 2147483645 2147483645 65536 ONLINE PERMANENT LOGGING NO LOCAL SYSTEM AUTO DISABLED NOT APPLY NO HOST NO
### Test --listproc
SELECT CPU_TIME/100000, SYS.V_$SQL.SQL_TEXT, USERNAME FROM SYS.V_$SQL, SYS.V_$SESSION WHERE SYS.V_$SQL.SQL_ID = SYS.V_$SESSION.SQL_ID(+) AND username IS NOT NULL ORDER BY CPU_TIME DESC
*
ERROR at line 1:
ORA-00942: table or view does not exist

View file

@ -46,18 +46,18 @@ xargs Expect: 3 1 2
1 1
2 2
parallel Expect: 3 1 via psedotty 2 parallel Expect: 3 1 via psedotty 2
Academic tradition requires you to cite works you base your article on. Academic tradition requires you to cite works you base your article on.
When using programs that use GNU Parallel to process data for publication When using programs that use GNU Parallel to process data for publication
please cite: please cite:
O. Tange (2011): GNU Parallel - The Command-Line Power Tool, O. Tange (2011): GNU Parallel - The Command-Line Power Tool,
;login: The USENIX Magazine, February 2011:42-47. ;login: The USENIX Magazine, February 2011:42-47.
This helps funding further development; AND IT WON'T COST YOU A CENT. This helps funding further development; AND IT WON'T COST YOU A CENT.
If you pay 10000 EUR you should feel free to use GNU Parallel without citing. If you pay 10000 EUR you should feel free to use GNU Parallel without citing.
To silence the citation notice: run 'parallel --citation'. To silence the citation notice: run 'parallel --citation'.
3 3
1 1
via pseudotty via pseudotty
@ -67,17 +67,17 @@ xargs Expect: 1 3 2
3 3
2 2
parallel Expect: 1 3 2 via pseudotty parallel Expect: 1 3 2 via pseudotty
Academic tradition requires you to cite works you base your article on. Academic tradition requires you to cite works you base your article on.
When using programs that use GNU Parallel to process data for publication When using programs that use GNU Parallel to process data for publication
please cite: please cite:
O. Tange (2011): GNU Parallel - The Command-Line Power Tool, O. Tange (2011): GNU Parallel - The Command-Line Power Tool,
;login: The USENIX Magazine, February 2011:42-47. ;login: The USENIX Magazine, February 2011:42-47.
This helps funding further development; AND IT WON'T COST YOU A CENT. This helps funding further development; AND IT WON'T COST YOU A CENT.
If you pay 10000 EUR you should feel free to use GNU Parallel without citing. If you pay 10000 EUR you should feel free to use GNU Parallel without citing.
To silence the citation notice: run 'parallel --citation'. To silence the citation notice: run 'parallel --citation'.
1 1
3 3

View file

@ -76,28 +76,28 @@ ls: tmp/parallel.file*: No such file or directory
OK 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.iLs . ./. -l parallel one-server rsync --server -lDrRze.iLsfx . ./.
-l parallel one-server -- exec perl -e @GNU_Parallel\=\(\"use\",\"IPC::Open3\;\",\"use\",\"MIME::Base64\"\)\;eval\"@GNU_Parallel\"\;\$SIG\{CHLD\}\=\"IGNORE\"\;my\$zip\=\(grep\{-x\$_\}\"/usr/local/bin/bzip2\"\)\[0\]\|\|\"bzip2\"\;my\(\$in,\$out,\$eval\)\;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\;eval\$eval\; base64 -l parallel one-server -- exec perl -e @GNU_Parallel\=split/_/,\"use_IPC::Open3\;_use_MIME::Base64\"\;eval\"@GNU_Parallel\"\;\$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\;eval\$eval\; base64
-l parallel one-server cd ././tmp; rsync --server --sender -lDrRze.iLs . ./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.iLs . ./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.iLs . ./. -l parallel one-server rsync --server -lDrRze.iLsfx . ./.
-l parallel one-server -- exec perl -e @GNU_Parallel\=\(\"use\",\"IPC::Open3\;\",\"use\",\"MIME::Base64\"\)\;eval\"@GNU_Parallel\"\;\$SIG\{CHLD\}\=\"IGNORE\"\;my\$zip\=\(grep\{-x\$_\}\"/usr/local/bin/bzip2\"\)\[0\]\|\|\"bzip2\"\;my\(\$in,\$out,\$eval\)\;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\;eval\$eval\; base64 -l parallel one-server -- exec perl -e @GNU_Parallel\=split/_/,\"use_IPC::Open3\;_use_MIME::Base64\"\;eval\"@GNU_Parallel\"\;\$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\;eval\$eval\; base64
-l parallel one-server cd ././tmp; rsync --server --sender -lDrRze.iLs . ./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.iLs . ./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\;

View file

@ -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-server3 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-server3 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\\\=\\\(\\\"use\\\",\\\"IPC::Open3\\\;\\\",\\\"use\\\",\\\"MIME::Base64\\\"\\\)\\\;eval\\\"@GNU_Parallel\\\"\\\;\\\$SIG\\\{CHLD\\\}\\\=\\\"IGNORE\\\"\\\;my\\\$zip\\\=\\\(grep\\\{-x\\\$_\\\}\\\"/usr/local/bin/bzip2\\\"\\\)\\\[0\\\]\\\|\\\|\\\"bzip2\\\"\\\;my\\\(\\\$in,\\\$out,\\\$eval\\\)\\\;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\\\;eval\\\$eval\\\; base64;_EXIT_status=$?; mkdir -p ./.; rsync --protocol 30 --rsync-path=cd\ ././.\;\ rsync -rlDzR -essh\ -l\ parallel parallel-server3:./aa\\\<\\\$\\\{\\\#\\\}\\\"\\\ b ./.; exit $_EXIT_status; ssh -l parallel one-server -- exec perl -e @GNU_Parallel\\\=split/_/,\\\"use_IPC::Open3\\\;_use_MIME::Base64\\\"\\\;eval\\\"@GNU_Parallel\\\"\\\;\\\$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\\\;eval\\\$eval\\\; base64;_EXIT_status=$?; mkdir -p ./. && rsync --protocol 30 --rsync-path=cd\ ././.\;\ rsync -rlDzR -essh\ -l\ parallel parallel-server3:./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\\\=\\\(\\\"use\\\",\\\"IPC::Open3\\\;\\\",\\\"use\\\",\\\"MIME::Base64\\\"\\\)\\\;eval\\\"@GNU_Parallel\\\"\\\;\\\$SIG\\\{CHLD\\\}\\\=\\\"IGNORE\\\"\\\;my\\\$zip\\\=\\\(grep\\\{-x\\\$_\\\}\\\"/usr/local/bin/bzip2\\\"\\\)\\\[0\\\]\\\|\\\|\\\"bzip2\\\"\\\;my\\\(\\\$in,\\\$out,\\\$eval\\\)\\\;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\\\;eval\\\$eval\\\; base64; ssh -l csh localhost -- exec perl -e @GNU_Parallel\\\=split/_/,\\\"use_IPC::Open3\\\;_use_MIME::Base64\\\"\\\;eval\\\"@GNU_Parallel\\\"\\\;\\\$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\\\;eval\\\$eval\\\; base64;
3 3
ssh -l csh localhost -- exec perl -e @GNU_Parallel\\\=\\\(\\\"use\\\",\\\"IPC::Open3\\\;\\\",\\\"use\\\",\\\"MIME::Base64\\\"\\\)\\\;eval\\\"@GNU_Parallel\\\"\\\;\\\$SIG\\\{CHLD\\\}\\\=\\\"IGNORE\\\"\\\;my\\\$zip\\\=\\\(grep\\\{-x\\\$_\\\}\\\"/usr/local/bin/bzip2\\\"\\\)\\\[0\\\]\\\|\\\|\\\"bzip2\\\"\\\;my\\\(\\\$in,\\\$out,\\\$eval\\\)\\\;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\\\;eval\\\$eval\\\; base64; ssh -l csh localhost -- exec perl -e @GNU_Parallel\\\=split/_/,\\\"use_IPC::Open3\\\;_use_MIME::Base64\\\"\\\;eval\\\"@GNU_Parallel\\\"\\\;\\\$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\\\;eval\\\$eval\\\; base64;
3 3
ssh -l csh localhost -- exec perl -e @GNU_Parallel\\\=\\\(\\\"use\\\",\\\"IPC::Open3\\\;\\\",\\\"use\\\",\\\"MIME::Base64\\\"\\\)\\\;eval\\\"@GNU_Parallel\\\"\\\;\\\$SIG\\\{CHLD\\\}\\\=\\\"IGNORE\\\"\\\;my\\\$zip\\\=\\\(grep\\\{-x\\\$_\\\}\\\"/usr/local/bin/bzip2\\\"\\\)\\\[0\\\]\\\|\\\|\\\"bzip2\\\"\\\;my\\\(\\\$in,\\\$out,\\\$eval\\\)\\\;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\\\;eval\\\$eval\\\; base64; ssh -l csh localhost -- exec perl -e @GNU_Parallel\\\=split/_/,\\\"use_IPC::Open3\\\;_use_MIME::Base64\\\"\\\;eval\\\"@GNU_Parallel\\\"\\\;\\\$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\\\;eval\\\$eval\\\; base64;
3 3