2015-07-29 00:33:28 +00:00
echo '### Test bug #45619: "--halt" erroneous error exit code (should give 0)'; seq 10 | parallel --halt now,fail=1 true; echo $?
### Test bug #45619: "--halt" erroneous error exit code (should give 0)
0
echo '**'
**
2014-07-15 00:40:38 +00:00
echo '### Test exit val - true'; echo true | parallel; echo $?
2013-12-19 01:19:19 +00:00
### Test exit val - true
0
2014-07-15 00:40:38 +00:00
echo '**'
2013-12-19 01:19:19 +00:00
**
2014-07-15 00:40:38 +00:00
echo '### Test exit val - false'; echo false | parallel; echo $?
2013-12-19 01:19:19 +00:00
### Test exit val - false
1
2014-07-15 00:40:38 +00:00
echo '**'
2013-12-19 01:19:19 +00:00
**
2014-09-23 18:14:57 +00:00
echo '### Test bug #43284: {%} and {#} with --xapply'; parallel --xapply 'echo {1} {#} {%} {2}' ::: a ::: b; parallel -N2 'echo {%}' ::: a b
### Test bug #43284: {%} and {#} with --xapply
a 1 1 b
1
echo '**'
**
2016-04-04 21:37:54 +00:00
echo '### bug #47501: --xapply for some input sources'
### bug #47501: --xapply for some input sources
# Wrapping does not work yet
parallel -k echo ::: a b c aWRAP :::+ aa bb cc ::: A B :::+ AA BB AAwrap
a aa A AA
a aa B BB
b bb A AA
b bb B BB
c cc A AA
c cc B BB
echo '**'
**
2014-10-14 20:56:03 +00:00
echo '### Test bug #43376: {%} and {#} with --pipe'
### Test bug #43376: {%} and {#} with --pipe
2015-01-02 21:32:00 +00:00
echo foo | parallel -q --pipe -k echo {#}
2014-10-14 20:56:03 +00:00
1
2015-01-02 21:32:00 +00:00
echo foo | parallel --pipe -k echo {%}
2014-10-14 20:56:03 +00:00
1
2015-01-02 21:32:00 +00:00
echo foo | parallel -q --pipe -k echo {%}
2014-10-14 20:56:03 +00:00
1
2015-01-02 21:32:00 +00:00
echo foo | parallel --pipe -k echo {#}
2014-10-14 20:56:03 +00:00
1
echo '**'
**
2014-12-12 12:30:54 +00:00
echo '### {= and =} in different groups separated by space'
### {= and =} in different groups separated by space
2015-01-02 21:32:00 +00:00
parallel echo {= s/a/b/ =} ::: a
b
parallel echo {= s/a/b/=} ::: a
b
parallel echo {= s/a/b/=}{= s/a/b/=} ::: a
bb
parallel echo {= s/a/b/=}{=s/a/b/=} ::: a
bb
parallel echo {= s/a/b/=}{= {= s/a/b/=} ::: a
b{= b
parallel echo {= s/a/b/=}{={=s/a/b/=} ::: a
b{=b
parallel echo {= s/a/b/ =} {={==} ::: a
b {=a
parallel echo {={= =} ::: a
{=a
parallel echo {= {= =} ::: a
{= a
parallel echo {= {= =} =} ::: a
{= a =}
2014-12-12 12:30:54 +00:00
echo '**'
**
echo '### {} as part of the command'
### {} as part of the command
echo p /bin/ls | parallel l{= s/p/s/ =}
/bin/ls
echo /bin/ls-p | parallel --colsep '-' l{=2 s/p/s/ =} {1}
/bin/ls
echo s /bin/ls | parallel l{}
/bin/ls
echo /bin/ls | parallel ls {}
/bin/ls
echo ls /bin/ls | parallel {}
/bin/ls
echo ls /bin/ls | parallel
/bin/ls
2014-12-14 08:44:32 +00:00
echo '**'
**
echo '### bug #43817: Some JP char cause problems in positional replacement strings'
### bug #43817: Some JP char cause problems in positional replacement strings
parallel -k echo ::: '<27> <<3C> >' '<27> <1 $_=2<> >' 'ワ'
<EFBFBD> <<3C> >
<EFBFBD> <1 $_=2<> >
ワ
parallel -k echo {1} ::: '<27> <<3C> >' '<27> <1 $_=2<> >' 'ワ'
<EFBFBD> <<3C> >
<EFBFBD> <1 $_=2<> >
ワ
parallel -Xj1 echo ::: '<27> <<3C> >' '<27> <1 $_=2<> >' 'ワ'
<EFBFBD> <<3C> > <20> <1 $_=2<> > ワ
parallel -Xj1 echo {1} ::: '<27> <<3C> >' '<27> <1 $_=2<> >' 'ワ'
<EFBFBD> <<3C> >
2015-03-16 18:51:08 +00:00
echo '**'
**
2015-03-17 20:36:12 +00:00
echo '### --rpl % that is a substring of longer --rpl %D'
### --rpl % that is a substring of longer --rpl %D
2017-03-11 20:19:10 +00:00
parallel --rpl '{+.} s:.*\.::' --rpl '%' --rpl '%D $_=::shell_quote(::dirname($_));' --rpl '%B s:.*/::;s:\.[^/.]+$::;' --rpl '%E s:.*\.::' 'echo {}=%;echo %D={//};echo %B={/.};echo %E={+.};echo %D/%B.%E={}' ::: a.b/c.d/e.f
2015-03-16 18:51:08 +00:00
a.b/c.d/e.f=a.b/c.d/e.f
a.b/c.d=a.b/c.d
e=e
f=f
a.b/c.d/e.f=a.b/c.d/e.f
echo '**'
**
2015-03-17 20:36:12 +00:00
echo '### Disk full'
### Disk full
2015-07-22 06:28:05 +00:00
cat /dev/zero >$SMALLDISK/out; parallel --tmpdir $SMALLDISK echo ::: OK; rm $SMALLDISK/out
2015-03-17 20:36:12 +00:00
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: Change $TMPDIR with --tmpdir or use --compress.
2017-01-01 16:51:14 +00:00
Warning: unable to close filehandle properly: No space left on device during global destruction.
2015-03-22 00:51:30 +00:00
echo '**'
**
2015-03-24 23:14:50 +00:00
echo '### bug #44614: --pipepart --header off by one'
### bug #44614: --pipepart --header off by one
seq 10 >/tmp/parallel_44616; parallel --pipepart -a /tmp/parallel_44616 -k --block 5 'echo foo; cat'; parallel --pipepart -a /tmp/parallel_44616 -k --block 2 --regexp --recend 3'\n' 'echo foo; cat'; rm /tmp/parallel_44616
foo
1
2
3
foo
4
5
6
foo
7
8
9
foo
10
foo
1
2
3
foo
4
5
6
7
8
9
10
2016-10-30 16:07:59 +00:00
echo '### PARALLEL_TMUX not found'
### PARALLEL_TMUX not found
PARALLEL_TMUX=not-existing parallel --tmux echo ::: 1
2015-03-28 11:14:30 +00:00
parallel: Error: not-existing not found in $PATH.
2015-04-20 22:08:08 +00:00
echo '**'
2015-05-06 22:40:36 +00:00
**
echo '### bug #44995: parallel echo {#} ::: 1 2 ::: 1 2'
### bug #44995: parallel echo {#} ::: 1 2 ::: 1 2
parallel -k echo {#} ::: 1 2 ::: 1 2
1
2
3
4
2015-05-25 20:07:37 +00:00
echo '**'
**
2016-08-03 21:45:13 +00:00
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
2015-05-25 22:08:31 +00:00
ash "#&/
ash ()*=?'
bash "#&/
bash ()*=?'
csh "#&/
csh ()*=?'
dash "#&/
dash ()*=?'
fdsh "#&/
fdsh ()*=?'
fish "#&/
fish ()*=?'
fizsh "#&/
fizsh ()*=?'
ksh "#&/
ksh ()*=?'
ksh93 "#&/
ksh93 ()*=?'
mksh "#&/
mksh ()*=?'
posh "#&/
posh ()*=?'
2015-06-21 17:40:58 +00:00
rbash "#&/
rbash ()*=?'
2015-05-25 22:08:31 +00:00
rc "#&/
rc ()*=?'
2015-06-21 17:40:58 +00:00
rzsh "#&/
rzsh ()*=?'
2015-05-25 22:08:31 +00:00
sash "#&/
sash ()*=?'
sh "#&/
sh ()*=?'
static-sh "#&/
static-sh ()*=?'
tcsh "#&/
tcsh ()*=?'
yash "#&/
yash ()*=?'
zsh "#&/
zsh ()*=?'
2015-05-25 20:07:37 +00:00
echo '**'
**
2015-08-27 20:28:32 +00:00
echo '### bug #45769: --round-robin --pipepart gives wrong results'
### bug #45769: --round-robin --pipepart gives wrong results
seq 10000 >/tmp/seq10000; parallel -j2 --pipepart -a /tmp/seq10000 --block 14 --round-robin wc | wc -l; rm /tmp/seq10000
2
echo '**'
**
2015-08-30 23:57:14 +00:00
echo '### bug #45842: Do not evaluate {= =} twice'
### bug #45842: Do not evaluate {= =} twice
2016-05-17 00:11:38 +00:00
parallel -k echo '{= $_=++$::G =}' ::: {1001..1004}
2015-08-30 23:57:14 +00:00
1
2
3
4
2016-05-17 00:11:38 +00:00
parallel -k echo '{=1 $_=++$::G =}' ::: {1001..1004}
2015-08-30 23:57:14 +00:00
1
2
3
4
2016-05-17 00:11:38 +00:00
parallel -k echo '{= $_=++$::G =}' ::: {1001..1004} ::: {a..c}
2015-08-30 23:57:14 +00:00
1 2
3 4
5 6
7 8
9 10
11 12
13 14
15 16
17 18
19 20
21 22
23 24
2016-05-17 00:11:38 +00:00
parallel -k echo '{=1 $_=++$::G =}' ::: {1001..1004} ::: {a..c}
2015-08-30 23:57:14 +00:00
1
2
3
4
5
6
7
8
9
10
11
12
echo '**'
**
2015-09-12 15:51:43 +00:00
echo '### bug #45939: {2} in {= =} fails'
### bug #45939: {2} in {= =} fails
2016-05-17 00:11:38 +00:00
parallel echo '{= s/O{2}//=}' ::: OOOK
2015-09-12 15:51:43 +00:00
OK
2016-05-17 00:11:38 +00:00
parallel echo '{2}-{=1 s/O{2}//=}' ::: OOOK ::: OK
2015-09-12 15:51:43 +00:00
OK-OK
2015-09-18 20:28:47 +00:00
echo '**'
**
echo '### bug #45998: --pipe to function broken'
### bug #45998: --pipe to function broken
2016-08-03 21:45:13 +00:00
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'
2015-09-18 20:28:47 +00:00
1
2016-08-03 21:45:13 +00:00
pipefunc OK
1
pipefunc and more OK
and more OK
2015-09-21 23:35:52 +00:00
echo '**'
**
echo 'bug #46016: --joblog should not log when --dryrun'
bug #46016: --joblog should not log when --dryrun
2016-05-17 00:11:38 +00:00
parallel --dryrun --joblog - echo ::: Only_this
2015-09-21 23:35:52 +00:00
echo Only_this
echo '**'
**
2015-10-17 14:54:15 +00:00
echo 'bug #46232: {%} with --bar/--eta/--shuf or --halt xx% broken'
bug #46232: {%} with --bar/--eta/--shuf or --halt xx% broken
2015-10-18 13:18:30 +00:00
parallel --bar -kj2 --delay 0.1 echo {%} ::: a b ::: c d e 2>/dev/null
2015-10-17 14:54:15 +00:00
1
2
1
2
1
2
2015-10-18 13:18:30 +00:00
parallel --halt now,fail=10% -kj2 --delay 0.1 echo {%} ::: a b ::: c d e
2015-10-17 14:54:15 +00:00
1
2
1
2
1
2
2015-10-18 13:18:30 +00:00
parallel --eta -kj2 --delay 0.1 echo {%} ::: a b ::: c d e 2>/dev/null
2015-10-17 14:54:15 +00:00
1
2
1
2
1
2
2015-10-18 13:18:30 +00:00
parallel --shuf -kj2 --delay 0.1 echo {%} ::: a b ::: c d e 2>/dev/null
2015-10-17 14:54:15 +00:00
1
2
1
2
1
2
echo '**'
**
echo 'bug #46231: {%} with --pipepart broken. Should give 1+2'
bug #46231: {%} with --pipepart broken. Should give 1+2
2016-05-17 00:11:38 +00:00
seq 10000 > /tmp/num10000; parallel -k --pipepart -ka /tmp/num10000 --block 10k -j2 --delay 0.05 echo {%}; rm /tmp/num10000
2015-10-17 14:54:15 +00:00
1
2
1
2
1
2015-10-17 15:10:04 +00:00
echo '**'
**
2015-10-18 09:44:02 +00:00
echo '{##} bug #45841: Replacement string for total no of jobs'
{##} bug #45841: Replacement string for total no of jobs
2015-11-29 23:47:21 +00:00
parallel -k --plus echo {##} ::: {a..j}; parallel -k 'echo {= $::G++ > 3 and ($_=$Global::JobQueue->total_jobs());=}' ::: {1..10}
2015-10-18 09:44:02 +00:00
10
10
10
10
10
10
10
10
10
10
1
2
3
4
10
10
10
10
10
10
2015-11-29 23:47:21 +00:00
parallel -k -N7 --plus echo {#} {##} ::: {1..14}
2015-10-18 13:18:30 +00:00
1 2 2 2 2 2 2 2
2 2 2 2 2 2 2 2
2015-11-29 23:47:21 +00:00
parallel -k -N7 --plus echo {#} {##} ::: {1..15}
2015-10-18 13:18:30 +00:00
1 3 3 3 3 3 3 3
2 3 3 3 3 3 3 3
3 3
2016-01-23 08:54:05 +00:00
parallel -k -S 8/: -X --plus echo {#} {##} ::: {1..15}
2015-10-18 13:18:30 +00:00
1 15 15
2017-10-09 22:33:43 +00:00
2 14 14
3 14 14
4 14 14
5 14 14
6 14 14
7 14 14
8 14
2015-10-18 09:44:02 +00:00
echo '**'
**
2016-01-28 22:45:11 +00:00
echo 'bug #47002: --tagstring with -d \n\n'
bug #47002: --tagstring with -d \n\n
2016-05-29 21:06:15 +00:00
(seq 3;echo;seq 4) | parallel -k -d '\n\n' --tagstring {%} echo ABC';'echo
2016-01-28 22:45:11 +00:00
1 ABC
1 1
1 2
1 3
2 ABC
2 1
2 2
2 3
2 4
2
echo '**'
**
2016-02-19 21:15:08 +00:00
echo 'bug #47086: [PATCH] Initialize total_completed from joblog'
bug #47086: [PATCH] Initialize total_completed from joblog
rm -f /tmp/parallel-47086; parallel -j1 --joblog /tmp/parallel-47086 --halt now,fail=1 echo '{= $_=$Global::total_completed =};exit {}' ::: 0 0 0 1 0 0; parallel -j1 --joblog /tmp/parallel-47086 --halt now,fail=1 --resume echo '{= $_=$Global::total_completed =};exit {}' ::: 0 0 0 1 0 0
0
1
2
3
4
5
parallel: This job failed:
echo 3;exit 1
echo '**'
**
2016-03-26 09:35:13 +00:00
echo 'bug #47290: xargs: Warning: a NUL character occurred in the input'
bug #47290: xargs: Warning: a NUL character occurred in the input
perl -e 'print "foo\0not printed"' | parallel echo
foo
parallel: Warning: a NUL character occurred in the input.
parallel: Warning: It cannot be passed through in the argument list.
parallel: Warning: Did you mean to use the --null option?
echo '**'
**
2016-05-17 00:11:38 +00:00
echo '### Test --shellquote'
### Test --shellquote
2016-08-03 21:45:13 +00:00
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
2016-05-17 00:11:38 +00:00
ash \ \ \ \ \ \ \ \ '
ash '\ \ \
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \!\"\#\$%\&\'\(\)\*+,-./0123456789:\;\<\=\>\?@ABCDEFGHIJKLMNOPQRSTUVWXYZ\[\\\]\^_\`abcdefghijklmnopqrstuvwxyz\{\|\}\~ <> <7F> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C>
bash \ \ \ \ \ \ \ \ '
bash '\ \ \
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \!\"\#\$%\&\'\(\)\*+,-./0123456789:\;\<\=\>\?@ABCDEFGHIJKLMNOPQRSTUVWXYZ\[\\\]\^_\`abcdefghijklmnopqrstuvwxyz\{\|\}\~ <> <7F> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C>
csh \ \ \ \ \ \ \ \ "\
csh "\ \ \
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \!\"\#\$%\&\'\(\)\*+,-./0123456789:\;\<\=\>\?@ABCDEFGHIJKLMNOPQRSTUVWXYZ\[\\\]\^_\`abcdefghijklmnopqrstuvwxyz\{\|\}\~ <> <7F> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C>
dash \ \ \ \ \ \ \ \ '
dash '\ \ \
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \!\"\#\$%\&\'\(\)\*+,-./0123456789:\;\<\=\>\?@ABCDEFGHIJKLMNOPQRSTUVWXYZ\[\\\]\^_\`abcdefghijklmnopqrstuvwxyz\{\|\}\~ <> <7F> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C>
fish \ \ \ \ \ \ \ \ '
fish '\ \ \
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \!\"\#\$%\&\'\(\)\*+,-./0123456789:\;\<\=\>\?@ABCDEFGHIJKLMNOPQRSTUVWXYZ\[\\\]\^_\`abcdefghijklmnopqrstuvwxyz\{\|\}\~ <> <7F> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C>
fizsh \ \ \ \ \ \ \ \ '
fizsh '\ \ \
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \!\"\#\$%\&\'\(\)\*+,-./0123456789:\;\<\=\>\?@ABCDEFGHIJKLMNOPQRSTUVWXYZ\[\\\]\^_\`abcdefghijklmnopqrstuvwxyz\{\|\}\~ <> <7F> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C>
ksh \ \ \ \ \ \ \ \ '
ksh '\ \ \
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \!\"\#\$%\&\'\(\)\*+,-./0123456789:\;\<\=\>\?@ABCDEFGHIJKLMNOPQRSTUVWXYZ\[\\\]\^_\`abcdefghijklmnopqrstuvwxyz\{\|\}\~ <> <7F> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C>
ksh93 \ \ \ \ \ \ \ \ '
ksh93 '\ \ \
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \!\"\#\$%\&\'\(\)\*+,-./0123456789:\;\<\=\>\?@ABCDEFGHIJKLMNOPQRSTUVWXYZ\[\\\]\^_\`abcdefghijklmnopqrstuvwxyz\{\|\}\~ <> <7F> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C>
lksh \ \ \ \ \ \ \ \ '
lksh '\ \ \
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \!\"\#\$%\&\'\(\)\*+,-./0123456789:\;\<\=\>\?@ABCDEFGHIJKLMNOPQRSTUVWXYZ\[\\\]\^_\`abcdefghijklmnopqrstuvwxyz\{\|\}\~ <> <7F> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C>
mksh \ \ \ \ \ \ \ \ '
mksh '\ \ \
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \!\"\#\$%\&\'\(\)\*+,-./0123456789:\;\<\=\>\?@ABCDEFGHIJKLMNOPQRSTUVWXYZ\[\\\]\^_\`abcdefghijklmnopqrstuvwxyz\{\|\}\~ <> <7F> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C>
posh \ \ \ \ \ \ \ \ '
posh '\ \ \
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \!\"\#\$%\&\'\(\)\*+,-./0123456789:\;\<\=\>\?@ABCDEFGHIJKLMNOPQRSTUVWXYZ\[\\\]\^_\`abcdefghijklmnopqrstuvwxyz\{\|\}\~ <> <7F> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C>
sash \ \ \ \ \ \ \ \ '
sash '\ \ \
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \!\"\#\$%\&\'\(\)\*+,-./0123456789:\;\<\=\>\?@ABCDEFGHIJKLMNOPQRSTUVWXYZ\[\\\]\^_\`abcdefghijklmnopqrstuvwxyz\{\|\}\~ <> <7F> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C>
sh \ \ \ \ \ \ \ \ '
sh '\ \ \
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \!\"\#\$%\&\'\(\)\*+,-./0123456789:\;\<\=\>\?@ABCDEFGHIJKLMNOPQRSTUVWXYZ\[\\\]\^_\`abcdefghijklmnopqrstuvwxyz\{\|\}\~ <> <7F> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C>
static-sh \ \ \ \ \ \ \ \ '
static-sh '\ \ \
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \!\"\#\$%\&\'\(\)\*+,-./0123456789:\;\<\=\>\?@ABCDEFGHIJKLMNOPQRSTUVWXYZ\[\\\]\^_\`abcdefghijklmnopqrstuvwxyz\{\|\}\~ <> <7F> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C>
tcsh \ \ \ \ \ \ \ \ "\
tcsh "\ \ \
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \!\"\#\$%\&\'\(\)\*+,-./0123456789:\;\<\=\>\?@ABCDEFGHIJKLMNOPQRSTUVWXYZ\[\\\]\^_\`abcdefghijklmnopqrstuvwxyz\{\|\}\~ <> <7F> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C>
yash \ \ \ \ \ \ \ \ '
yash '\ \ \
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \!\"\#\$%\&\'\(\)\*+,-./0123456789:\;\<\=\>\?@ABCDEFGHIJKLMNOPQRSTUVWXYZ\[\\\]\^_\`abcdefghijklmnopqrstuvwxyz\{\|\}\~ <> <7F> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C>
zsh \ \ \ \ \ \ \ \ '
zsh '\ \ \
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \!\"\#\$%\&\'\(\)\*+,-./0123456789:\;\<\=\>\?@ABCDEFGHIJKLMNOPQRSTUVWXYZ\[\\\]\^_\`abcdefghijklmnopqrstuvwxyz\{\|\}\~ <> <7F> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C>
csh \ \ \ \ \ \ \ \ "\
csh "\ \ \
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \!\"\#\$%\&\'\(\)\*+,-./0123456789:\;\<\=\>\?@ABCDEFGHIJKLMNOPQRSTUVWXYZ\[\\\]\^_\`abcdefghijklmnopqrstuvwxyz\{\|\}\~ <> <7F> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C>
tcsh \ \ \ \ \ \ \ \ "\
tcsh "\ \ \
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \!\"\#\$%\&\'\(\)\*+,-./0123456789:\;\<\=\>\?@ABCDEFGHIJKLMNOPQRSTUVWXYZ\[\\\]\^_\`abcdefghijklmnopqrstuvwxyz\{\|\}\~ <> <7F> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C> \<5C>
2017-01-01 16:51:14 +00:00
rzsh zsh:1: /bin/echo: restricted
2016-05-17 00:11:38 +00:00
echo '**'
**
echo xargs compatibility
xargs compatibility
echo '### Test -L -l and --max-lines'
### Test -L -l and --max-lines
(echo a_b;echo c) | parallel -km -L2 echo
a_b
c
(echo a_b;echo c) | parallel -k -L2 echo
a_b c
(echo a_b;echo c) | xargs -L2 echo
a_b c
echo '### xargs -L1 echo'
### xargs -L1 echo
(echo a_b;echo c) | parallel -km -L1 echo
a_b
c
(echo a_b;echo c) | parallel -k -L1 echo
a_b
c
(echo a_b;echo c) | xargs -L1 echo
a_b
c
echo 'Lines ending in space should continue on next line'
Lines ending in space should continue on next line
echo '### xargs -L1 echo'
### xargs -L1 echo
(echo a_b' ';echo c;echo d) | parallel -km -L1 echo
a_b c
d
(echo a_b' ';echo c;echo d) | parallel -k -L1 echo
a_b c
d
(echo a_b' ';echo c;echo d) | xargs -L1 echo
a_b c
d
echo '### xargs -L2 echo'
### xargs -L2 echo
(echo a_b' ';echo c;echo d;echo e) | parallel -km -L2 echo
a_b c d
e
(echo a_b' ';echo c;echo d;echo e) | parallel -k -L2 echo
a_b c d
e
(echo a_b' ';echo c;echo d;echo e) | xargs -L2 echo
a_b c d
e
echo '### xargs -l echo'
### xargs -l echo
(echo a_b' ';echo c;echo d;echo e) | parallel -l -km echo # This behaves wrong
a_b c
d
e
(echo a_b' ';echo c;echo d;echo e) | parallel -l -k echo # This behaves wrong
a_b c
d
e
(echo a_b' ';echo c;echo d;echo e) | xargs -l echo
a_b c
d
e
echo '### xargs -l2 echo'
### xargs -l2 echo
(echo a_b' ';echo c;echo d;echo e) | parallel -km -l2 echo
a_b c d
e
(echo a_b' ';echo c;echo d;echo e) | parallel -k -l2 echo
a_b c d
e
(echo a_b' ';echo c;echo d;echo e) | xargs -l2 echo
a_b c d
e
echo '### xargs -l1 echo'
### xargs -l1 echo
(echo a_b' ';echo c;echo d;echo e) | parallel -km -l1 echo
a_b c
d
e
(echo a_b' ';echo c;echo d;echo e) | parallel -k -l1 echo
a_b c
d
e
(echo a_b' ';echo c;echo d;echo e) | xargs -l1 echo
a_b c
d
e
echo '### xargs --max-lines=2 echo'
### xargs --max-lines=2 echo
(echo a_b' ';echo c;echo d;echo e) | parallel -km --max-lines 2 echo
a_b c d
e
(echo a_b' ';echo c;echo d;echo e) | parallel -k --max-lines 2 echo
a_b c d
e
(echo a_b' ';echo c;echo d;echo e) | xargs --max-lines=2 echo
a_b c d
e
echo '### xargs --max-lines echo'
### xargs --max-lines echo
(echo a_b' ';echo c;echo d;echo e) | parallel --max-lines -km echo # This behaves wrong
a_b c
d
e
(echo a_b' ';echo c;echo d;echo e) | parallel --max-lines -k echo # This behaves wrong
a_b c
d
e
(echo a_b' ';echo c;echo d;echo e) | xargs --max-lines echo
a_b c
d
e
echo '### test too long args'
### test too long args
perl -e 'print "z"x1000000' | parallel echo 2>&1
2018-02-22 19:43:33 +00:00
parallel: Error: Command line too long (1000005 >= 131057) at input 0: zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz...
2016-05-17 00:11:38 +00:00
perl -e 'print "z"x1000000' | xargs echo 2>&1
xargs: argument line too long
2016-08-13 17:11:15 +00:00
(seq 1 10; perl -e 'print "z"x1000000'; seq 12 15) | stdsort parallel -j1 -km -s 10 echo
2016-05-17 00:11:38 +00:00
1 2
3 4
5 6
7 8
9 10
parallel: Error: Command line too long (1000007 >= 10) at input 0: zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz...
2016-08-13 17:11:15 +00:00
(seq 1 10; perl -e 'print "z"x1000000'; seq 12 15) | stdsort xargs -s 10 echo
2016-05-17 00:11:38 +00:00
1 2
3 4
5 6
7 8
9 10
2016-08-13 17:11:15 +00:00
xargs: argument line too long
(seq 1 10; perl -e 'print "z"x1000000'; seq 12 15) | stdsort parallel -j1 -kX -s 10 echo
2016-05-17 00:11:38 +00:00
1 2
3 4
5 6
7 8
9 10
parallel: Error: Command line too long (1000007 >= 10) at input 0: zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz...
echo '### Test -x'
### Test -x
2016-08-03 21:45:13 +00:00
(seq 1 10; echo 12345; seq 12 15) | stdsort parallel -j1 -km -s 10 -x echo
2016-05-17 00:11:38 +00:00
1 2
3 4
5 6
7 8
9 10
parallel: Error: Command line too long (10 >= 10) at input 0: 12345
2016-08-03 21:45:13 +00:00
(seq 1 10; echo 12345; seq 12 15) | stdsort parallel -j1 -kX -s 10 -x echo
2016-05-17 00:11:38 +00:00
1 2
3 4
5 6
7 8
9 10
parallel: Error: Command line too long (10 >= 10) at input 0: 12345
2016-08-03 21:45:13 +00:00
(seq 1 10; echo 12345; seq 12 15) | stdsort xargs -s 10 -x echo
2016-05-17 00:11:38 +00:00
1 2
3 4
5 6
7 8
2016-08-03 21:45:13 +00:00
xargs: argument line too long
(seq 1 10; echo 1234; seq 12 15) | stdsort parallel -j1 -km -s 10 -x echo
2016-05-17 00:11:38 +00:00
1 2
12
2016-08-03 21:45:13 +00:00
1234
2016-05-17 00:11:38 +00:00
13
14
15
3 4
5 6
7 8
9 10
2016-08-03 21:45:13 +00:00
(seq 1 10; echo 1234; seq 12 15) | stdsort parallel -j1 -kX -s 10 -x echo
1 2
2016-05-17 00:11:38 +00:00
12
2016-08-03 21:45:13 +00:00
1234
2016-05-17 00:11:38 +00:00
13
14
15
3 4
5 6
7 8
9 10
2016-08-03 21:45:13 +00:00
(seq 1 10; echo 1234; seq 12 15) | stdsort xargs -s 10 -x echo
1 2
2016-05-17 00:11:38 +00:00
12
2016-08-03 21:45:13 +00:00
1234
2016-05-17 00:11:38 +00:00
13
14
15
2016-08-03 21:45:13 +00:00
3 4
5 6
7 8
9 10
2016-05-17 00:11:38 +00:00
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
seq 1 10 >/tmp/parallel_$$-1; parallel -k -a /tmp/parallel_$$-1 echo; rm /tmp/parallel_$$-1
1
2
3
4
5
6
7
8
9
10
seq 1 10 >/tmp/parallel_$$-2; parallel -k --arg-file /tmp/parallel_$$-2 echo; rm /tmp/parallel_$$-2
1
2
3
4
5
6
7
8
9
10
echo '### Test -i and --replace: Replace with argument'
### Test -i and --replace: Replace with argument
(echo a; echo END; echo b) | parallel -k -i -eEND echo repl{}ce
replace
(echo a; echo END; echo b) | parallel -k --replace -eEND echo repl{}ce
replace
(echo a; echo END; echo b) | parallel -k -i+ -eEND echo repl+ce
replace
(echo e; echo END; echo b) | parallel -k -i'*' -eEND echo r'*'plac'*'
replace
(echo a; echo END; echo b) | parallel -k --replace + -eEND echo repl+ce
replace
(echo a; echo END; echo b) | parallel -k --replace== -eEND echo repl=ce
replace
(echo a; echo END; echo b) | parallel -k --replace = -eEND echo repl=ce
replace
(echo a; echo END; echo b) | parallel -k --replace=^ -eEND echo repl^ce
replace
(echo a; echo END; echo b) | parallel -k -I^ -eEND echo repl^ce
replace
echo '### Test -E: Artificial end-of-file'
### Test -E: Artificial end-of-file
(echo include this; echo END; echo not this) | parallel -k -E END echo
include this
(echo include this; echo END; echo not this) | parallel -k -EEND echo
include this
echo '### Test -e and --eof: Artificial end-of-file'
### Test -e and --eof: Artificial end-of-file
(echo include this; echo END; echo not this) | parallel -k -e END echo
include this
(echo include this; echo END; echo not this) | parallel -k -eEND echo
include this
(echo include this; echo END; echo not this) | parallel -k --eof=END echo
include this
(echo include this; echo END; echo not this) | parallel -k --eof END echo
include this
echo '### Test -n and --max-args: Max number of args per line (only with -X and -m)'
### Test -n and --max-args: Max number of args per line (only with -X and -m)
(echo line 1;echo line 2;echo line 3) | parallel -k -n1 -m echo
line 1
line 2
line 3
(echo line 1;echo line 1;echo line 2) | parallel -k -n2 -m echo
line 1 line 1
line 2
(echo line 1;echo line 2;echo line 3) | parallel -k -n1 -X echo
line 1
line 2
line 3
(echo line 1;echo line 1;echo line 2) | parallel -k -n2 -X echo
line 1 line 1
line 2
(echo line 1;echo line 2;echo line 3) | parallel -k -n1 echo
line 1
line 2
line 3
(echo line 1;echo line 1;echo line 2) | parallel -k -n2 echo
line 1 line 1
line 2
(echo line 1;echo line 2;echo line 3) | parallel -k --max-args=1 -X echo
line 1
line 2
line 3
(echo line 1;echo line 2;echo line 3) | parallel -k --max-args 1 -X echo
line 1
line 2
line 3
(echo line 1;echo line 1;echo line 2) | parallel -k --max-args=2 -X echo
line 1 line 1
line 2
(echo line 1;echo line 1;echo line 2) | parallel -k --max-args 2 -X echo
line 1 line 1
line 2
(echo line 1;echo line 2;echo line 3) | parallel -k --max-args 1 echo
line 1
line 2
line 3
(echo line 1;echo line 1;echo line 2) | parallel -k --max-args 2 echo
line 1 line 1
line 2
echo '### Test --max-procs and -P: Number of processes'
### Test --max-procs and -P: Number of processes
seq 1 10 | parallel -k --max-procs +0 echo max proc
max proc 1
max proc 2
max proc 3
max proc 4
max proc 5
max proc 6
max proc 7
max proc 8
max proc 9
max proc 10
seq 1 10 | parallel -k -P 200% echo 200% proc
200% proc 1
200% proc 2
200% proc 3
200% proc 4
200% proc 5
200% proc 6
200% proc 7
200% proc 8
200% proc 9
200% proc 10
echo '### Test --delimiter and -d: Delimiter instead of newline'
### Test --delimiter and -d: Delimiter instead of newline
echo '# Yes there is supposed to be an extra newline for -d N'
# Yes there is supposed to be an extra newline for -d N
echo line 1Nline 2Nline 3 | parallel -k -d N echo This is
This is line 1
This is line 2
This is line 3
echo line 1Nline 2Nline 3 | parallel -k --delimiter N echo This is
This is line 1
This is line 2
This is line 3
printf "delimiter NUL line 1\0line 2\0line 3" | parallel -k -d '\0' echo
delimiter NUL line 1
line 2
line 3
printf "delimiter TAB line 1\tline 2\tline 3" | parallel -k --delimiter '\t' echo
delimiter TAB line 1
line 2
line 3
echo '### Test --max-chars and -s: Max number of chars in a line'
### Test --max-chars and -s: Max number of chars in a line
(echo line 1;echo line 1;echo line 2) | parallel -k --max-chars 25 -X echo
line 1 line 1
line 2
(echo line 1;echo line 1;echo line 2) | parallel -k -s 25 -X echo
line 1 line 1
line 2
echo '### Test --no-run-if-empty and -r: This should give no output'
### Test --no-run-if-empty and -r: This should give no output
echo " " | parallel -r echo
echo " " | parallel --no-run-if-empty echo
echo '### Test --help and -h: Help output (just check we get the same amount of lines)'
### Test --help and -h: Help output (just check we get the same amount of lines)
echo Output from -h and --help
Output from -h and --help
parallel -h | wc -l
37
parallel --help | wc -l
37
echo '### Test --version: Version output (just check we get the same amount of lines)'
### Test --version: Version output (just check we get the same amount of lines)
parallel --version | wc -l
11
echo '### Test --verbose and -t'
### Test --verbose and -t
(echo b; echo c; echo f) | parallel -k -t echo {}ar 2>&1 >/dev/null
echo bar
echo car
echo far
(echo b; echo c; echo f) | parallel -k --verbose echo {}ar 2>&1 >/dev/null
echo bar
echo car
echo far
echo '### Test --show-limits'
### Test --show-limits
(echo b; echo c; echo f) | parallel -k --show-limits echo {}ar
Maximal size of command: 131049
2018-02-22 19:43:33 +00:00
Maximal used size of command: 131057
2016-05-17 00:11:38 +00:00
Execution of will continue now, and it will try to read its input
and run commands; if this is not what you wanted to happen, please
press CTRL-D or CTRL-C
bar
car
far
(echo b; echo c; echo f) | parallel -j1 -kX --show-limits -s 100 echo {}ar
Maximal size of command: 131049
Maximal used size of command: 100
Execution of will continue now, and it will try to read its input
and run commands; if this is not what you wanted to happen, please
press CTRL-D or CTRL-C
bar car far
echo '### Test empty line as input'
### Test empty line as input
echo | parallel echo empty input line
empty input line
echo '### Tests if (cat | sh) works'
### Tests if (cat | sh) works
perl -e 'for(1..25) {print "echo a $_; echo b $_\n"}' | parallel 2>&1 | sort
a 1
a 10
a 11
a 12
a 13
a 14
a 15
a 16
a 17
a 18
a 19
a 2
a 20
a 21
a 22
a 23
a 24
a 25
a 3
a 4
a 5
a 6
a 7
a 8
a 9
b 1
b 10
b 11
b 12
b 13
b 14
b 15
b 16
b 17
b 18
b 19
b 2
b 20
b 21
b 22
b 23
b 24
b 25
b 3
b 4
b 5
b 6
b 7
b 8
b 9
echo '### Test if xargs-mode works'
### Test if xargs-mode works
perl -e 'for(1..25) {print "a $_\nb $_\n"}' | parallel echo 2>&1 | sort
a 1
a 10
a 11
a 12
a 13
a 14
a 15
a 16
a 17
a 18
a 19
a 2
a 20
a 21
a 22
a 23
a 24
a 25
a 3
a 4
a 5
a 6
a 7
a 8
a 9
b 1
b 10
b 11
b 12
b 13
b 14
b 15
b 16
b 17
b 18
b 19
b 2
b 20
b 21
b 22
b 23
b 24
b 25
b 3
b 4
b 5
b 6
b 7
b 8
b 9
echo '### Test -q'
### Test -q
parallel -kq perl -e '$ARGV[0]=~/^\S+\s+\S+$/ and print $ARGV[0],"\n"' ::: "a b" c "d e f" g "h i"
a b
h i
echo '### Test -q {#}'
### Test -q {#}
parallel -kq echo {#} ::: a b
1
2
parallel -kq echo {\#} ::: a b
1
2
parallel -kq echo {\\#} ::: a b
{\#} a
{\#} b
echo '### Test long commands do not take up all memory'
### Test long commands do not take up all memory
seq 1 100 | parallel -j0 -qv perl -e '$r=rand(shift);for($f=0;$f<$r;$f++){$a="a"x100};print shift,"\n"' 10000 2>/dev/null | sort
1
10
100
11
12
13
14
15
16
17
18
19
2
20
21
22
23
24
25
26
27
28
29
3
30
31
32
33
34
35
36
37
38
39
4
40
41
42
43
44
45
46
47
48
49
5
50
51
52
53
54
55
56
57
58
59
6
60
61
62
63
64
65
66
67
68
69
7
70
71
72
73
74
75
76
77
78
79
8
80
81
82
83
84
85
86
87
88
89
9
90
91
92
93
94
95
96
97
98
99
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 1
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 10
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 100
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 11
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 12
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 13
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 14
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 15
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 16
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 17
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 18
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 19
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 2
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 20
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 21
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 22
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 23
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 24
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 25
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 26
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 27
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 28
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 29
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 3
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 30
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 31
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 32
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 33
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 34
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 35
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 36
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 37
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 38
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 39
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 4
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 40
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 41
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 42
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 43
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 44
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 45
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 46
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 47
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 48
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 49
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 5
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 50
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 51
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 52
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 53
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 54
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 55
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 56
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 57
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 58
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 59
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 6
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 60
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 61
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 62
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 63
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 64
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 65
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 66
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 67
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 68
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 69
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 7
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 70
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 71
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 72
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 73
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 74
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 75
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 76
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 77
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 78
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 79
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 8
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 80
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 81
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 82
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 83
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 84
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 85
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 86
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 87
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 88
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 89
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 9
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 90
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 91
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 92
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 93
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 94
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 95
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 96
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 97
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 98
perl -e \$r\=rand\(shift\)\;for\(\$f\=0\;\$f\<\$r\;\$f++\)\{\$a\=\"a\"x100\}\;print\ shift,\"\\n\" 10000 99
echo '### Test 0-arguments'
### Test 0-arguments
seq 1 2 | parallel -k -n0 echo n0
n0
n0
seq 1 2 | parallel -k -L0 echo L0
L0
L0
seq 1 2 | parallel -k -N0 echo N0
N0
N0
echo '### Because of --tollef -l, then -l0 == -l1, sorry'
### Because of --tollef -l, then -l0 == -l1, sorry
seq 1 2 | parallel -k -l0 echo l0
l0 1
l0 2
echo '### Test replace {}'
### Test replace {}
seq 1 2 | parallel -k -N0 echo replace {} curlies
replace curlies
replace curlies
echo '### Test arguments on commandline'
### Test arguments on commandline
parallel -k -N0 echo args on cmdline ::: 1 2
args on cmdline
args on cmdline
echo '### Test --nice locally'
### Test --nice locally
parallel --nice 1 -vv 'PAR=a bash -c "echo \$PAR {}"' ::: b
PAR=a bash -c "echo \$PAR b"
a b
echo '### Test distribute arguments at EOF to 2 jobslots'
### Test distribute arguments at EOF to 2 jobslots
2017-01-01 16:51:14 +00:00
seq 1 92 | parallel -j2 -kX -s 100 echo
2016-05-17 00:11:38 +00:00
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65
2016-12-08 11:04:22 +00:00
66 67 68 69 70 71 72 73 74 75 76 77 78 79
80 81 82 83 84 85 86 87 88 89 90 91 92
2016-05-17 00:11:38 +00:00
echo '### Test distribute arguments at EOF to 5 jobslots'
### Test distribute arguments at EOF to 5 jobslots
2017-01-01 16:51:14 +00:00
seq 1 92 | parallel -j5 -kX -s 100 echo
2016-05-17 00:11:38 +00:00
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65
2016-12-08 11:04:22 +00:00
66 67 68 69 70 71
72 73 74 75 76 77
78 79 80 81 82 83
84 85 86 87 88 89
2016-05-17 00:11:38 +00:00
90 91 92
echo '### Test distribute arguments at EOF to infinity jobslots'
### Test distribute arguments at EOF to infinity jobslots
seq 1 92 | parallel -j0 -kX -s 100 echo 2>/dev/null
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
echo '### Test -N is not broken by distribution - single line'
### Test -N is not broken by distribution - single line
seq 9 | parallel -N 10 echo
1 2 3 4 5 6 7 8 9
echo '### Test -N is not broken by distribution - two lines'
### Test -N is not broken by distribution - two lines
seq 19 | parallel -k -N 10 echo
1 2 3 4 5 6 7 8 9 10
11 12 13 14 15 16 17 18 19
echo '### Test -N context replace'
### Test -N context replace
seq 19 | parallel -k -N 10 echo a{}b
a1b a2b a3b a4b a5b a6b a7b a8b a9b a10b
a11b a12b a13b a14b a15b a16b a17b a18b a19b
echo '### Test -L context replace'
### Test -L context replace
seq 19 | parallel -k -L 10 echo a{}b
a1b a2b a3b a4b a5b a6b a7b a8b a9b a10b
a11b a12b a13b a14b a15b a16b a17b a18b a19b
echo '**'
**
echo '### Test {} multiple times in different commands'
### Test {} multiple times in different commands
seq 10 | parallel -v -Xj1 echo {} \; echo {}
echo 1 2 3 4 5 6 7 8 9 10 ; echo 1 2 3 4 5 6 7 8 9 10
1 2 3 4 5 6 7 8 9 10
1 2 3 4 5 6 7 8 9 10
echo '### Test of -X {1}-{2} with multiple input sources'
### Test of -X {1}-{2} with multiple input sources
parallel -j1 -kX echo {1}-{2} ::: a ::: b
a-b
parallel -j2 -kX echo {1}-{2} ::: a b ::: c d
a-c
b-c
parallel -j2 -kX echo {1}-{2} ::: a b c ::: d e f
a-d
b-f
parallel -j0 -kX echo {1}-{2} ::: a b c ::: d e f
a-d
a-e
a-f
b-d
b-e
b-f
c-d
c-e
c-f
echo '### Test of -X {}-{.} with multiple input sources'
### Test of -X {}-{.} with multiple input sources
parallel -j1 -kX echo {}-{.} ::: a ::: b
a-a b-b
parallel -j2 -kX echo {}-{.} ::: a b ::: c d
a-a c-c a-a d-d
b-b c-c b-b d-d
parallel -j2 -kX echo {}-{.} ::: a b c ::: d e f
a-a d-d a-a e-e a-a f-f b-b d-d b-b e-e
b-b f-f c-c d-d c-c e-e c-c f-f
parallel -j0 -kX echo {}-{.} ::: a b c ::: d e f
a-a d-d
a-a e-e
a-a f-f
b-b d-d
b-b e-e
b-b f-f
c-c d-d
c-c e-e
c-c f-f
echo '### Test of -r with --pipe - the first should give an empty line. The second should not.'
### Test of -r with --pipe - the first should give an empty line. The second should not.
echo | parallel -j2 -N1 --pipe cat | wc -l
1
echo | parallel -r -j2 -N1 --pipe cat | wc -l
0
echo '### Test --tty'
### Test --tty
seq 0.1 0.1 0.5 | parallel -j1 --tty tty\;sleep
/dev/tty
/dev/tty
/dev/tty
/dev/tty
/dev/tty
### 1 .par file from --files expected
2017-08-19 23:15:28 +00:00
0
2017-07-21 19:43:34 +00:00
par_X_eta_div_zero ### bug #34422: parallel -X --eta crashes with div by zero
par_X_eta_div_zero
par_X_eta_div_zero Computers / CPU cores / Max jobs to run
par_X_eta_div_zero 0:local / 0 / 0
par_X_eta_div_zero
par_X_eta_div_zero Computer:jobs running/jobs completed/%of started jobs/Average seconds to complete
2017-01-01 11:42:52 +00:00
par_append_joblog ### can you append to a joblog using +
par_append_joblog 1
par_append_joblog 1
par_append_joblog 3 /tmp/parallel_append_joblog
2017-06-22 11:35:58 +00:00
par_basic_halt parallel: This job failed:
par_basic_halt false
par_basic_halt parallel: This job succeeded:
par_basic_halt true
par_basic_halt parallel: Error: --halt must have 'never', 'soon', or 'now'.
par_basic_halt parallel: Error: --halt soon must be followed by ,success or ,fail.
par_basic_halt parallel: Error: --halt now must be followed by ,success or ,fail.
2017-12-26 14:46:00 +00:00
par_blocking_redir 0 0 0
par_blocking_redir 0 0 0
par_blocking_redir 1 9 54
par_blocking_redir 3 3 6
par_blocking_redir Test stderr
par_blocking_redir Test stdout
par_blocking_redir bug #52740: Bash redirection with process substitution blocks
par_blocking_redir stderr
par_blocking_redir stderr
par_blocking_redir stdout
par_blocking_redir stdout
2017-08-19 23:15:28 +00:00
par_colsep_0 bug --colsep 0
par_colsep_0 OK
par_colsep_0 OK
2018-01-03 08:03:16 +00:00
par_dryrun_append_joblog --dry-run should not append to joblog
par_dryrun_append_joblog 1
par_dryrun_append_joblog 2
par_dryrun_append_joblog 3
par_dryrun_append_joblog echo 1
par_dryrun_append_joblog echo 2
par_dryrun_append_joblog echo 3
par_dryrun_append_joblog echo 4
par_dryrun_append_joblog 4
2016-12-18 10:14:06 +00:00
par_empty bug #:
par_empty true
2017-01-01 11:42:52 +00:00
par_empty_line ### Test bug: empty line for | sh with -k
par_empty_line a
par_empty_line b
2017-08-19 23:15:28 +00:00
par_expansion_in_colsep ### bug #36260: {n} expansion in --colsep files fails for empty fields if all following fields are also empty
par_expansion_in_colsep AB
par_extglob env_parallel
2017-01-01 11:42:52 +00:00
par_file_ending_in_newline ### Hans found a bug giving unitialized variable
par_file_ending_in_newline gzip /tmp/parallel_f1
par_file_ending_in_newline gzip /tmp/parallel_f2'
par_file_ending_in_newline '
2017-12-21 17:40:03 +00:00
par_halt_one_job # Halt soon if there is a single job
par_halt_one_job should run 0 1 = job 1 2
par_halt_one_job 1
par_halt_one_job 2
par_halt_one_job parallel: This job failed:
par_halt_one_job echo 2;exit 1
par_halt_one_job should run 1 = job 1
par_halt_one_job 1
par_halt_one_job parallel: This job failed:
par_halt_one_job echo 1;exit 1
par_halt_one_job should run 0 1 = job 1 2
par_halt_one_job 1
par_halt_one_job 2
par_halt_one_job parallel: This job failed:
par_halt_one_job echo 2;exit 1
par_halt_one_job parallel: Starting no more jobs. Waiting for 0 jobs to finish.
par_halt_one_job should run 1 = job 1
par_halt_one_job 1
par_halt_one_job parallel: This job failed:
par_halt_one_job echo 1;exit 1
par_halt_one_job parallel: Starting no more jobs. Waiting for 0 jobs to finish.
2017-08-19 23:15:28 +00:00
par_header_parens bug #49538: --header and {= =}
par_header_parens OK
par_header_parens OK
par_header_parens file
par_header_parens sub/dir
par_header_parens file
par_header_parens file.ext
par_header_parens sub/dir/file
par_inefficient_L bug #37325: Inefficiency of --pipe -L
par_inefficient_L 276 276 996
par_inefficient_L FOO
par_inefficient_L 248 248 992
par_inefficient_L FOO
par_inefficient_L 248 248 992
par_inefficient_L FOO
par_inefficient_L 244 244 993
par_inefficient_L FOO
par_inefficient_L 200 200 1000
par_inefficient_L FOO
par_inefficient_L 200 200 1000
par_inefficient_L FOO
par_inefficient_L 200 200 1000
par_inefficient_L FOO
par_inefficient_L 200 200 1000
par_inefficient_L FOO
par_inefficient_L 184 184 920
par_inefficient_L FOO
par_linebuffer_files ### bug #48658: --linebuffer --files
par_linebuffer_files 10
2017-04-01 02:04:47 +00:00
par_link_files_as_only_arg bug #50685: single ::::+ does not work
par_link_files_as_only_arg 1 1 1
par_link_files_as_only_arg 2 2 2
par_link_files_as_only_arg 3 3 3
2017-06-05 09:29:04 +00:00
par_macron <09>
par_macron <09>
par_macron <09> <20>
2017-06-22 11:35:58 +00:00
par_macron <09> <20>
par_macron <09>
2017-06-23 05:44:14 +00:00
par_macron <09> <20>
par_macron "<22> " <20>
2017-06-05 09:29:04 +00:00
par_macron <09> <>
par_macron <09> <>
par_macron <09> <> <20> <>
2017-06-22 11:35:58 +00:00
par_macron <09> <> <20> <>
par_macron <09> <>
2017-06-23 05:44:14 +00:00
par_macron <09> <> <20>
par_macron "<22> <> " <20>
2017-06-22 11:35:58 +00:00
par_macron /bin/bash: -c: line 0: syntax error near unexpected token `newline'
par_macron /bin/bash: -c: line 0: `echo <20> <<3C> <<3C> ><3E> >'
2017-06-05 09:29:04 +00:00
par_macron <09> <<3C> <<3C> ><3E> >
2017-06-22 11:35:58 +00:00
par_macron /bin/bash: <20> : No such file or directory
2017-06-05 09:29:04 +00:00
par_macron <09> <<3C> <<3C> ><3E> > <20> <<3C> <<3C> ><3E> >
2017-06-22 11:35:58 +00:00
par_macron <09> <<3C> <<3C> ><3E> >
2017-06-23 05:44:14 +00:00
par_macron <09> <<3C> <<3C> ><3E> > <20> <<3C> <<3C> ><3E> >
par_macron "<22> <<3C> <<3C> ><3E> >" <20> <<3C> <<3C> ><3E> >
2017-07-06 12:36:06 +00:00
par_newline_in_command Command with newline and positional replacement strings
par_newline_in_command O K
2017-08-19 23:15:28 +00:00
par_no_command_given ### Test bugfix if no command given
par_no_command_given 1 2
par_no_command_given /bin/bash: 3: command not found
par_no_command_given parallel: Error: Command line too long (1000002 >= 10) at input 0: zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz...
par_parcat_args_stdin bug #51690: parcat: read args from stdin
par_parcat_args_stdin OK1
par_parcat_args_stdin OK2
par_parcat_rm bug #51691: parcat --rm remove fifo when opened
par_parcat_rm OK1
par_parcat_rm OK file removed
2017-11-22 22:29:03 +00:00
par_parset ### parset into array
par_parset foo bar baz
par_parset ### parset into vars with comma
par_parset foo bar baz
par_parset ### parset into vars with space
par_parset foo bar baz
par_parset ### parset with newlines
par_parset 1
par_parset 1
par_parset 2
par_parset 1
par_parset 2
par_parset 3
par_parset ### parset into indexed array vars
par_parset foo bar baz
par_parset foo bar bar
2017-11-26 15:18:55 +00:00
par_parset ### env_parset
par_parset myecho myvar myarr 1 foo myecho myvar myarr 1 bar myecho myvar myarr 1 baz
par_parset myecho myvar myarr 1 foo myecho myvar myarr 1 bar myecho myvar myarr 1 baz
par_parset myecho myvar myarr 1 foo myecho myvar myarr 1 bar myecho myvar myarr 1 baz
par_parset newline1
par_parset newline2
par_parset 1
par_parset newline1
par_parset newline2
par_parset 1
par_parset 2
par_parset newline1
par_parset newline2
par_parset 1
par_parset 2
par_parset 3
par_parset myecho myvar myarr 1 foo myecho myvar myarr 1 bar myecho myvar myarr 1 baz
par_parset myecho myvar myarr 1 foo myecho myvar myarr 1 bar myecho myvar myarr 1 bar
2018-01-03 08:03:16 +00:00
par_parset_v bug #52507: parset arr1 -v echo ::: fails
par_parset_v seq 3
par_parset_v 1
par_parset_v 2
par_parset_v 3
2017-08-19 23:15:28 +00:00
par_pipe_compress_blocks ### bug #41482: --pipe --compress blocks at different -j/seq combinations
par_pipe_compress_blocks 1
par_pipe_compress_blocks echo 1-4 + 1-4
par_pipe_compress_blocks echo 1
par_pipe_compress_blocks 1
par_pipe_compress_blocks echo 2
par_pipe_compress_blocks 2
par_pipe_compress_blocks echo 3
par_pipe_compress_blocks 3
par_pipe_compress_blocks echo 4
par_pipe_compress_blocks 4
par_pipe_compress_blocks 4 times wc to stderr to stdout
par_pipe_compress_blocks 1 1 2
par_pipe_compress_blocks 1 1 2
par_pipe_compress_blocks 1 1 2
par_pipe_compress_blocks 1 1 2
par_pipe_compress_blocks 1 2 3 4
par_pipe_compress_blocks 1
par_pipe_compress_blocks 2
par_pipe_compress_blocks 3
par_pipe_compress_blocks 4
par_pipe_compress_blocks 1 2 3 4
par_pipe_compress_blocks 1
par_pipe_compress_blocks 2
par_pipe_compress_blocks 3
par_pipe_compress_blocks 4
par_pipe_compress_blocks 1 2
par_pipe_compress_blocks 1
par_pipe_compress_blocks 2
par_pipe_compress_blocks 1 2 3
par_pipe_compress_blocks 1
par_pipe_compress_blocks 2
par_pipe_compress_blocks 3
par_pipe_no_command ### --pipe without command
par_pipe_no_command parallel: Error: --pipe/--pipepart must have a command to pipe into (e.g. 'cat').
par_pipe_record_size_in_lines bug #34958: --pipe with record size measured in lines
par_pipe_record_size_in_lines 1
par_pipe_record_size_in_lines 2
par_pipe_record_size_in_lines 3
par_pipe_record_size_in_lines 4
par_pipe_record_size_in_lines 5
par_pipe_record_size_in_lines 6
par_pipe_record_size_in_lines 7
par_pipe_record_size_in_lines 8
par_pipe_record_size_in_lines bug 34958-1
par_pipe_record_size_in_lines 9
par_pipe_record_size_in_lines 10
par_pipe_record_size_in_lines bug 34958-1
par_pipe_record_size_in_lines 1
par_pipe_record_size_in_lines 2
par_pipe_record_size_in_lines 3
par_pipe_record_size_in_lines 4
par_pipe_record_size_in_lines 5
par_pipe_record_size_in_lines 6
par_pipe_record_size_in_lines 7
par_pipe_record_size_in_lines 8
par_pipe_record_size_in_lines bug 34958-2
par_pipe_record_size_in_lines 9
par_pipe_record_size_in_lines 10
par_pipe_record_size_in_lines bug 34958-2
2018-01-03 08:03:16 +00:00
par_pipe_tag_v pipe with --tag -v
par_pipe_tag_v foo cat
par_pipe_tag_v foo 1
par_pipe_tag_v foo 2
par_pipe_tag_v foo 3
par_pipe_tag_v foo /tmp/tmpfile.par
2017-01-21 17:09:01 +00:00
par_pipepart_block_bigger_2G ### Test that --pipepart can have blocks > 2GB
par_pipepart_block_bigger_2G 1 1 4
2018-01-03 08:03:16 +00:00
par_pipepart_recend_recstart bug #52343: --recend/--recstart does wrong thing with --pipepart
par_pipepart_recend_recstart a
par_pipepart_recend_recstart 1
par_pipepart_recend_recstart 2
par_pipepart_recend_recstart 3
par_pipepart_recend_recstart 4
par_pipepart_recend_recstart 5
par_pipepart_recend_recstart a
par_pipepart_recend_recstart 6
par_pipepart_recend_recstart 7
par_pipepart_recend_recstart 8
par_pipepart_recend_recstart 9
par_pipepart_recend_recstart 10
par_pipepart_recend_recstart parallel: Warning: A record was longer than 1. Increasing to --blocksize 3.
par_pipepart_recend_recstart parallel: Warning: A record was longer than 3. Increasing to --blocksize 5.
par_pipepart_recend_recstart parallel: Warning: A record was longer than 5. Increasing to --blocksize 8.
par_pipepart_recend_recstart parallel: Warning: A record was longer than 8. Increasing to --blocksize 12.
par_pipepart_recend_recstart a
par_pipepart_recend_recstart 1
par_pipepart_recend_recstart 2
par_pipepart_recend_recstart 3
par_pipepart_recend_recstart 4
par_pipepart_recend_recstart 5
par_pipepart_recend_recstart a
par_pipepart_recend_recstart 6
par_pipepart_recend_recstart 7
par_pipepart_recend_recstart 8
par_pipepart_recend_recstart 9
par_pipepart_recend_recstart 10
2017-01-01 16:51:14 +00:00
par_python_children ### bug #49970: Python child process dies if --env is used
2017-02-04 15:01:42 +00:00
par_retries_replacement_string 11
par_retries_replacement_string 22
par_retries_replacement_string 22
par_retries_replacement_string 33
par_retries_replacement_string 33
par_retries_replacement_string 33
2017-02-05 02:24:23 +00:00
par_tagstring_pipe bug #50228: --pipe --tagstring broken
par_tagstring_pipe 1 1000 1000 3893
par_tagstring_pipe 2 1000 1000 5000
par_tagstring_pipe 3 1000 1000 5000
2017-02-05 01:46:29 +00:00
par_tee 1 a 1
par_tee 1 a 1000000 1000000 6888896
par_tee 1 b 2
par_tee 1 b 1000000 1000000 6888896
par_tee 2 a 3
par_tee 2 a 1000000 1000000 6888896
par_tee 2 b 4
par_tee 2 b 1000000 1000000 6888896
par_tee 3 a 5
par_tee 3 a 1000000 1000000 6888896
par_tee 3 b 6
par_tee 3 b 1000000 1000000 6888896
par_tee 4 a 7
par_tee 4 a 1000000 1000000 6888896
par_tee 4 b 8
par_tee 4 b 1000000 1000000 6888896
par_tee 5 a 9
par_tee 5 a 1000000 1000000 6888896
par_tee 5 b 10
par_tee 5 b 1000000 1000000 6888896
2017-02-05 22:53:28 +00:00
par_tee 1 -l 181902
par_tee 1 -c 1228633
par_tee 2 -l 181902
par_tee 2 -c 1228633
par_tee 3 -l 122854
par_tee 3 -c 815297
par_tee 4 -l 122853
par_tee 4 -c 815290
par_tee 5 -l 122853
par_tee 5 -c 815290
2017-08-19 23:15:28 +00:00
par_tricolonplus ### bug #48745: :::+ bug
par_tricolonplus 11 1 21 a aa
par_tricolonplus 11 1 21 b bb
par_tricolonplus 11 1 21 c cc
par_tricolonplus 22 2 22 a aa
par_tricolonplus 22 2 22 b bb
par_tricolonplus 22 2 22 c cc
par_tricolonplus 33 3 23 a aa
par_tricolonplus 33 3 23 b bb
par_tricolonplus 33 3 23 c cc
par_tricolonplus 1 21 a aa
par_tricolonplus 1 21 a bb
par_tricolonplus 1 21 a cc
par_tricolonplus 1 22 b aa
par_tricolonplus 1 22 b bb
par_tricolonplus 1 22 b cc
par_tricolonplus 1 23 c aa
par_tricolonplus 1 23 c bb
par_tricolonplus 1 23 c cc
par_tricolonplus 2 21 a aa
par_tricolonplus 2 21 a bb
par_tricolonplus 2 21 a cc
par_tricolonplus 2 22 b aa
par_tricolonplus 2 22 b bb
par_tricolonplus 2 22 b cc
par_tricolonplus 2 23 c aa
par_tricolonplus 2 23 c bb
par_tricolonplus 2 23 c cc
par_tricolonplus 3 21 a aa
par_tricolonplus 3 21 a bb
par_tricolonplus 3 21 a cc
par_tricolonplus 3 22 b aa
par_tricolonplus 3 22 b bb
par_tricolonplus 3 22 b cc
par_tricolonplus 3 23 c aa
par_tricolonplus 3 23 c bb
par_tricolonplus 3 23 c cc
par_tricolonplus 1 21 a aa
par_tricolonplus 1 21 a bb
par_tricolonplus 1 21 a cc
par_tricolonplus 1 22 b aa
par_tricolonplus 1 22 b bb
par_tricolonplus 1 22 b cc
par_tricolonplus 1 23 c aa
par_tricolonplus 1 23 c bb
par_tricolonplus 1 23 c cc
par_tricolonplus 2 21 a aa
par_tricolonplus 2 21 a bb
par_tricolonplus 2 21 a cc
par_tricolonplus 2 22 b aa
par_tricolonplus 2 22 b bb
par_tricolonplus 2 22 b cc
par_tricolonplus 2 23 c aa
par_tricolonplus 2 23 c bb
par_tricolonplus 2 23 c cc
par_tricolonplus 3 21 a aa
par_tricolonplus 3 21 a bb
par_tricolonplus 3 21 a cc
par_tricolonplus 3 22 b aa
par_tricolonplus 3 22 b bb
par_tricolonplus 3 22 b cc
par_tricolonplus 3 23 c aa
par_tricolonplus 3 23 c bb
par_tricolonplus 3 23 c cc
2017-07-21 19:43:34 +00:00
par_wd_3dot_local bug #45993: --wd ... should also work when run locally
par_wd_3dot_local parallel: Error: Cannot change into non-executable dir /bi: No such file or directory
par_wd_3dot_local /bin
par_wd_3dot_local ~/privat/parallel/testsuite
par_wd_3dot_local OK
par_wd_3dot_local /
par_wd_3dot_local ~/privat/parallel/testsuite
par_wd_3dot_local OK
par_wd_3dot_local /tmp
par_wd_3dot_local ~/privat/parallel/testsuite
par_wd_3dot_local OK
2018-01-03 08:03:16 +00:00
par_wd_3dot_local ~/.parallel/tmp/hostname-0-0
par_wd_3dot_local ~/privat/parallel/testsuite
2017-07-21 19:43:34 +00:00
par_wd_3dot_local OK
par_wd_3dot_local ~/privat/parallel/testsuite
par_wd_3dot_local ~/privat/parallel/testsuite
par_wd_3dot_local OK