mirror of
https://git.savannah.gnu.org/git/parallel.git
synced 2024-12-22 20:57:53 +00:00
parallel: Better parent_shell detection.
This commit is contained in:
parent
f2b403b7fb
commit
9b2012f021
52
src/parallel
52
src/parallel
|
@ -1163,12 +1163,12 @@ sub parse_options {
|
|||
$Global::debug = $opt::D;
|
||||
$Global::shell = $ENV{'PARALLEL_SHELL'} || parent_shell($$)
|
||||
|| $ENV{'SHELL'} || "/bin/sh";
|
||||
if(not which($Global::shell)) {
|
||||
if(not -x $Global::shell and not which($Global::shell)) {
|
||||
::error("Shell '$Global::shell' not found.");
|
||||
wait_and_exit(255);
|
||||
}
|
||||
$Global::cshell = $Global::shell =~ m:/csh:;
|
||||
|
||||
::debug("init","Global::shell $Global::shell\n");
|
||||
$Global::cshell = $Global::shell =~ m:(/[-a-z]*)?csh:;
|
||||
if(defined $opt::X) { $Global::ContextReplace = 1; }
|
||||
if(defined $opt::silent) { $Global::verbose = 0; }
|
||||
if(defined $opt::null) { $/ = "\0"; }
|
||||
|
@ -2252,7 +2252,7 @@ sub shell_quote_scalar {
|
|||
# Speed optimization: Choose the correct shell_quote_scalar_*
|
||||
# and call that directly from now on
|
||||
no warnings 'redefine';
|
||||
if($Global::shell =~ m:(^|/)t?csh$:) {
|
||||
if($Global::cshell) {
|
||||
# (t)csh
|
||||
*shell_quote_scalar = \&shell_quote_scalar_csh;
|
||||
} elsif($Global::shell =~ m:(^|/)rc$:) {
|
||||
|
@ -4776,7 +4776,7 @@ sub which {
|
|||
}
|
||||
|
||||
{
|
||||
my ($regexp,%fakename);
|
||||
my ($regexp,$shell,%fakename);
|
||||
|
||||
sub parent_shell {
|
||||
# Input:
|
||||
|
@ -4784,13 +4784,15 @@ sub which {
|
|||
# Returns:
|
||||
# $shellpath = path to shell - undef if no shell found
|
||||
my $pid = shift;
|
||||
::debug("init","Parent of $pid\n");
|
||||
if(not $regexp) {
|
||||
# All shells known to mankind
|
||||
#
|
||||
# ash bash csh dash fdsh fish fizsh ksh ksh93 mksh pdksh
|
||||
# posh rbash rc rush rzsh sash sh static-sh tcsh yash zsh
|
||||
my @shells = (qw(ash bash csh dash fdsh fish fizsh ksh
|
||||
ksh93 lksh mksh pdksh posh rbash rc rush rzsh sash sh
|
||||
|
||||
my @shells = (qw(ash bash bsd-csh csh dash fdsh fish fizsh
|
||||
ksh ksh93 lksh mksh pdksh posh rbash rc rush rzsh sash sh
|
||||
static-sh tcsh yash zsh -sh -csh -bash),
|
||||
'-sh (sh)' # sh on FreeBSD
|
||||
);
|
||||
|
@ -4798,26 +4800,50 @@ sub which {
|
|||
# [sh] -sh sh busybox sh -sh (sh)
|
||||
# /bin/sh /sbin/sh /opt/csw/sh
|
||||
# But not: foo.sh sshd crash flush pdflush scosh fsflush ssh
|
||||
my $shell = "(?:".join("|",map { "\Q$_\E" } @shells).")";
|
||||
$regexp = '^((\[)('. $shell. ')(\])|(|\S+/|busybox )('. $shell. '))( *$| [^(])';
|
||||
$shell = "(?:".join("|",map { "\Q$_\E" } @shells).")";
|
||||
$regexp = '^((\[)(-?)('. $shell. ')(\])|(|\S+/|busybox )'.
|
||||
'(-?)('. $shell. '))( *$| [^(])';
|
||||
%fakename = (
|
||||
# sh disguises itself as -sh (sh) on FreeBSD
|
||||
"-sh (sh)" => ["sh"],
|
||||
# csh and tcsh disguise themselves as -sh/-csh
|
||||
"-sh" => ["csh", "tcsh"],
|
||||
# E.g.: ssh -tt csh@lo 'ps aux;true' |egrep ^csh
|
||||
# but sh also disguise itself as -sh
|
||||
# (When?)
|
||||
"-sh" => ["sh"],
|
||||
"-csh" => ["tcsh", "csh"],
|
||||
# ash disguises itself as -ash
|
||||
"-ash" => ["ash", "dash", "sh"],
|
||||
# dash disguises itself as -dash
|
||||
"-dash" => ["dash", "ash", "sh"],
|
||||
# bash disguises itself as -bash
|
||||
"-bash" => ["bash", "sh"],
|
||||
# ksh disguises itself as -ash
|
||||
"-ksh" => ["ksh", "sh"],
|
||||
# zsh disguises itself as -zsh
|
||||
"-zsh" => ["zsh", "sh"],
|
||||
);
|
||||
}
|
||||
# if -sh or -csh try readlink /proc/$$/exe
|
||||
my ($children_of_ref, $parent_of_ref, $name_of_ref) = pid_table();
|
||||
my $shellpath;
|
||||
my $testpid = $pid;
|
||||
while($testpid) {
|
||||
::debug("init", "shell? ". $name_of_ref->{$testpid}."\n");
|
||||
if($name_of_ref->{$testpid} =~ /$regexp/o) {
|
||||
::debug("init", "which ".($3||$6)." => ");
|
||||
$shellpath = (which($3 || $6,@{$fakename{$3 || $6}}))[0];
|
||||
my $shellname = $4 || $8;
|
||||
my $dash = $3 || $7;
|
||||
if($shellname eq "sh" and $dash) {
|
||||
# -sh => csh or sh
|
||||
if($shellpath = readlink "/proc/$testpid/exe") {
|
||||
::debug("init","procpath $shellpath\n");
|
||||
if($shellpath =~ m:/$shell$:o) {
|
||||
::debug("init", "proc which ".$shellpath." => ");
|
||||
return $shellpath;
|
||||
}
|
||||
}
|
||||
}
|
||||
::debug("init", "which ".$shellname." => ");
|
||||
$shellpath = (which($shellname,@{$fakename{$shellname}}))[0];
|
||||
::debug("init", "shell path $shellpath\n");
|
||||
$shellpath and last;
|
||||
}
|
||||
|
|
|
@ -96,9 +96,10 @@ dir that makes most sense for the sysadmin.
|
|||
|
||||
=head3 env_parallel.bash / env_parallel.zsh / env_parallel.ksh / env_parallel.pdksh
|
||||
|
||||
B<env_parallel.(bash|ksh|pdksh|zsh)> sets the function B<env_parallel>. It uses
|
||||
B<alias> and B<typeset> to dump the configuration (with a few
|
||||
exceptions) into B<$PARALLEL_ENV> before running GNU B<parallel>.
|
||||
B<env_parallel.(bash|ksh|pdksh|zsh)> defines the function
|
||||
B<env_parallel>. It uses B<alias> and B<typeset> to dump the
|
||||
configuration (with a few exceptions) into B<$PARALLEL_ENV> before
|
||||
running GNU B<parallel>.
|
||||
|
||||
After GNU B<parallel> is finished, B<$PARALLEL_ENV> is deleted.
|
||||
|
||||
|
@ -735,6 +736,49 @@ not known to B<bash>.
|
|||
If GNU B<parallel> guesses wrong in these situation, set the shell using
|
||||
B<$PARALLEL_SHELL>.
|
||||
|
||||
|
||||
=head2 Always running commands in a shell
|
||||
|
||||
If the command is a simple command with no redirection and setting of
|
||||
variables, the command I<could> be run without spawning a shell. E.g.:
|
||||
|
||||
parallel "grep -E 'a|bc' {}" ::: foo
|
||||
|
||||
could be run as:
|
||||
|
||||
system("grep","-E","a|bc","foo");
|
||||
|
||||
However, as soon as the command is a bit more complex a shell I<must>
|
||||
be spawned:
|
||||
|
||||
parallel "grep -E 'a|bc' {} | wc" ::: foo
|
||||
|
||||
It is impossible to tell the difference between these two without
|
||||
parsing the string (is the B<|> a pipe in shell or an alternation in
|
||||
B<grep>?).
|
||||
|
||||
On top of this wrapper scripts will often require a shell to be
|
||||
spawned.
|
||||
|
||||
The downside is that you need to quote special shell chars twice:
|
||||
|
||||
parallel echo '*' ::: This will expand the asterisk
|
||||
parallel echo "'*'" ::: This will not
|
||||
parallel "echo '*'" ::: This will not
|
||||
parallel echo '\*' ::: This will not
|
||||
parallel echo \''*'\' ::: This will not
|
||||
parallel -q echo '*' ::: This will not
|
||||
|
||||
B<-q> will quote all special chars, thus redirection will not work:
|
||||
this prints '* > out.1' and I<does not> save '*' into the file out.1:
|
||||
|
||||
parallel -q echo "*" ">" out.{} ::: 1
|
||||
|
||||
GNU B<parallel> tries to live up to Principle Of Least Astonishment
|
||||
(POLA), and the requirement of using B<-q> is hard to understand, when
|
||||
you do not see the whole picture.
|
||||
|
||||
|
||||
=head2 Quoting
|
||||
|
||||
Quoting depends on the shell. For most shells \ is used for all
|
||||
|
|
|
@ -129,12 +129,6 @@ parallel -k echo {#} ::: 1 2 ::: 1 2
|
|||
|
||||
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 posh rbash rc rzsh sash sh static-sh tcsh yash zsh
|
||||
|
||||
echo '**'
|
||||
|
||||
echo '### bug #45769: --round-robin --pipepart gives wrong results'
|
||||
|
||||
seq 10000 >/tmp/seq10000;
|
||||
|
@ -797,6 +791,16 @@ par_results() {
|
|||
rm /tmp/$$.csv
|
||||
}
|
||||
|
||||
par_testquote() {
|
||||
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
|
||||
}
|
||||
|
||||
|
||||
export -f $(compgen -A function | grep par_)
|
||||
compgen -A function | grep par_ | sort |
|
||||
parallel -j6 --tag -k --joblog +/tmp/jl-`basename $0` '{} 2>&1'
|
||||
|
|
|
@ -306,6 +306,8 @@ par_retries_all_fail() {
|
|||
parallel -k -j0 --retries 2 --timeout 0.1 'echo {}; sleep {}; false' 2>/dev/null
|
||||
}
|
||||
|
||||
|
||||
|
||||
export -f $(compgen -A function | grep par_)
|
||||
compgen -A function | grep par_ | sort |
|
||||
parallel --joblog /tmp/jl-`basename $0` -j10 --tag -k '{} 2>&1'
|
||||
|
|
|
@ -121,6 +121,38 @@ par_memfree() {
|
|||
stdout parallel --timeout 20 --argsep II parallel --memfree 1t echo Free mem: ::: II 1t
|
||||
}
|
||||
|
||||
par_test_detected_shell() {
|
||||
echo '### bug #42913: Dont use $SHELL but the shell currently running'
|
||||
|
||||
shells="ash bash csh dash fish fizsh ksh ksh93 mksh posh rbash rush rzsh sash sh static-sh tcsh yash zsh"
|
||||
test_unknown_shell() {
|
||||
shell="$1"
|
||||
tmp="/tmp/test_unknown_shell_$shell"
|
||||
cp $(which "$shell") "$tmp"
|
||||
chmod +x "$tmp"
|
||||
$tmp -c 'ppar -Dinit echo ::: 1; true' |
|
||||
grep Global::shell
|
||||
rm "$tmp"
|
||||
}
|
||||
export -f test_unknown_shell
|
||||
|
||||
test_known_shell_c() {
|
||||
shell="$1"
|
||||
$shell -c 'parallel -Dinit echo ::: 1; true' |
|
||||
grep Global::shell
|
||||
}
|
||||
export -f test_known_shell_c
|
||||
|
||||
test_known_shell_pipe() {
|
||||
shell="$1"
|
||||
echo 'parallel -Dinit echo ::: 1; true' |
|
||||
$shell | grep Global::shell
|
||||
}
|
||||
export -f test_known_shell_pipe
|
||||
|
||||
parallel -j0 --tag -k ::: test_unknown_shell test_known_shell_c test_known_shell_pipe ::: $shells
|
||||
}
|
||||
|
||||
export -f $(compgen -A function | grep par_)
|
||||
compgen -A function | grep par_ | sort |
|
||||
parallel -j0 --tag -k --joblog /tmp/jl-`basename $0` '{} 2>&1'
|
||||
|
|
|
@ -8,4 +8,9 @@ echo '### See if we get compile error'
|
|||
PATH=input-files/perllib:../input-files/perllib:$PATH
|
||||
perl32 `which parallel` ::: 'echo perl'
|
||||
echo '### See if we read modules outside perllib'
|
||||
echo perl | stdout strace -ff perl32 `which parallel` echo | grep open | grep perl | grep -v input-files/perllib
|
||||
echo perl |
|
||||
stdout strace -ff perl32 `which parallel` echo |
|
||||
grep open |
|
||||
grep perl |
|
||||
grep -v '] read(6' |
|
||||
grep -v input-files/perllib
|
||||
|
|
|
@ -71,26 +71,6 @@ echo '### bug #42902: profiles containing arguments with space'
|
|||
echo '### bug #42892: parallel -a nonexiting --pipepart'
|
||||
parallel --pipepart -a nonexisting wc
|
||||
|
||||
echo '### bug #42913: Dont use $SHELL but the shell currently running'
|
||||
echo '## Unknown shell => $SHELL (bash)'
|
||||
parallel -kj1 "rm -f /tmp/SHELL; 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
|
||||
|
||||
echo '## Known shells -c'
|
||||
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
|
||||
|
||||
echo '## Known shells |'
|
||||
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
|
||||
|
||||
echo '## Started directly from perl'
|
||||
perl -e 'system(qw(parallel -Dinit echo ::: 1))' | grep which;
|
||||
rm -f /tmp/par*.par
|
||||
|
||||
echo '### added transfersize/returnsize to local jobs'
|
||||
echo '### normal'
|
||||
seq 100 111 | parallel --joblog /dev/stderr seq {} '|' pv -qL100 2>&1 >/dev/null | cut -f 5-7 | sort
|
||||
|
|
|
@ -164,49 +164,6 @@ parallel -k echo {#} ::: 1 2 ::: 1 2
|
|||
4
|
||||
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 posh rbash rc rzsh sash sh static-sh tcsh yash zsh
|
||||
ash "#&/
|
||||
ash ()*=?'
|
||||
bash "#&/
|
||||
bash ()*=?'
|
||||
csh "#&/
|
||||
csh ()*=?'
|
||||
dash "#&/
|
||||
dash ()*=?'
|
||||
fdsh "#&/
|
||||
fdsh ()*=?'
|
||||
fish "#&/
|
||||
fish ()*=?'
|
||||
fizsh "#&/
|
||||
fizsh ()*=?'
|
||||
ksh "#&/
|
||||
ksh ()*=?'
|
||||
ksh93 "#&/
|
||||
ksh93 ()*=?'
|
||||
mksh "#&/
|
||||
mksh ()*=?'
|
||||
posh "#&/
|
||||
posh ()*=?'
|
||||
rbash "#&/
|
||||
rbash ()*=?'
|
||||
rc "#&/
|
||||
rc ()*=?'
|
||||
rzsh "#&/
|
||||
rzsh ()*=?'
|
||||
sash "#&/
|
||||
sash ()*=?'
|
||||
sh "#&/
|
||||
sh ()*=?'
|
||||
static-sh "#&/
|
||||
static-sh ()*=?'
|
||||
tcsh "#&/
|
||||
tcsh ()*=?'
|
||||
yash "#&/
|
||||
yash ()*=?'
|
||||
zsh "#&/
|
||||
zsh ()*=?'
|
||||
echo '**'
|
||||
**
|
||||
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
|
||||
|
@ -1575,6 +1532,46 @@ par_tee 4 -l 122853
|
|||
par_tee 4 -c 815290
|
||||
par_tee 5 -l 122853
|
||||
par_tee 5 -c 815290
|
||||
par_testquote ash "#&/
|
||||
par_testquote ash ()*=?'
|
||||
par_testquote bash "#&/
|
||||
par_testquote bash ()*=?'
|
||||
par_testquote csh "#&/
|
||||
par_testquote csh ()*=?'
|
||||
par_testquote dash "#&/
|
||||
par_testquote dash ()*=?'
|
||||
par_testquote fdsh "#&/
|
||||
par_testquote fdsh ()*=?'
|
||||
par_testquote fish "#&/
|
||||
par_testquote fish ()*=?'
|
||||
par_testquote fizsh "#&/
|
||||
par_testquote fizsh ()*=?'
|
||||
par_testquote ksh "#&/
|
||||
par_testquote ksh ()*=?'
|
||||
par_testquote ksh93 "#&/
|
||||
par_testquote ksh93 ()*=?'
|
||||
par_testquote mksh "#&/
|
||||
par_testquote mksh ()*=?'
|
||||
par_testquote posh "#&/
|
||||
par_testquote posh ()*=?'
|
||||
par_testquote rbash "#&/
|
||||
par_testquote rbash ()*=?'
|
||||
par_testquote rc "#&/
|
||||
par_testquote rc ()*=?'
|
||||
par_testquote rzsh "#&/
|
||||
par_testquote rzsh ()*=?'
|
||||
par_testquote sash "#&/
|
||||
par_testquote sash ()*=?'
|
||||
par_testquote sh "#&/
|
||||
par_testquote sh ()*=?'
|
||||
par_testquote static-sh "#&/
|
||||
par_testquote static-sh ()*=?'
|
||||
par_testquote tcsh "#&/
|
||||
par_testquote tcsh ()*=?'
|
||||
par_testquote yash "#&/
|
||||
par_testquote yash ()*=?'
|
||||
par_testquote zsh "#&/
|
||||
par_testquote zsh ()*=?'
|
||||
par_tricolonplus ### bug #48745: :::+ bug
|
||||
par_tricolonplus 11 1 21 a aa
|
||||
par_tricolonplus 11 1 21 b bb
|
||||
|
|
|
@ -40,6 +40,67 @@ par_sigterm parallel: sleep 15; echo 6
|
|||
par_sigterm parallel: sleep 15; echo 7
|
||||
par_sigterm parallel: sleep 15; echo 8
|
||||
par_sigterm parallel: sleep 15; echo 9
|
||||
par_test_detected_shell ### bug #42913: Dont use $SHELL but the shell currently running
|
||||
par_test_detected_shell test_unknown_shell ash Global::shell /bin/bash
|
||||
par_test_detected_shell test_unknown_shell bash Global::shell /bin/bash
|
||||
par_test_detected_shell test_unknown_shell csh Global::shell /bin/bash
|
||||
par_test_detected_shell test_unknown_shell dash Global::shell /bin/bash
|
||||
par_test_detected_shell test_unknown_shell fish Global::shell /bin/bash
|
||||
par_test_detected_shell test_unknown_shell fizsh Global::shell /usr/bin/zsh
|
||||
par_test_detected_shell test_unknown_shell ksh Global::shell /bin/bash
|
||||
par_test_detected_shell test_unknown_shell ksh93 Global::shell /bin/bash
|
||||
par_test_detected_shell test_unknown_shell mksh Global::shell /bin/bash
|
||||
par_test_detected_shell test_unknown_shell posh Global::shell /bin/bash
|
||||
par_test_detected_shell test_unknown_shell rbash Global::shell /bin/bash
|
||||
par_test_detected_shell test_unknown_shell rush Local configuration error occurred.
|
||||
par_test_detected_shell test_unknown_shell rush Contact the systems administrator for further assistance.
|
||||
par_test_detected_shell test_unknown_shell rzsh Global::shell /bin/bash
|
||||
par_test_detected_shell test_unknown_shell sash Global::shell /bin/sh
|
||||
par_test_detected_shell test_unknown_shell sh Global::shell /bin/bash
|
||||
par_test_detected_shell test_unknown_shell static-sh test_unknown_shell_static-sh: applet not found
|
||||
par_test_detected_shell test_unknown_shell tcsh Global::shell /bin/bash
|
||||
par_test_detected_shell test_unknown_shell yash Global::shell /bin/bash
|
||||
par_test_detected_shell test_unknown_shell zsh Global::shell /bin/bash
|
||||
par_test_detected_shell test_known_shell_c ash Global::shell /bin/ash
|
||||
par_test_detected_shell test_known_shell_c bash Global::shell /bin/bash
|
||||
par_test_detected_shell test_known_shell_c csh Global::shell /bin/csh
|
||||
par_test_detected_shell test_known_shell_c dash Global::shell /bin/dash
|
||||
par_test_detected_shell test_known_shell_c fish Global::shell /usr/bin/fish
|
||||
par_test_detected_shell test_known_shell_c fizsh Global::shell /usr/bin/zsh
|
||||
par_test_detected_shell test_known_shell_c ksh Global::shell /usr/bin/ksh
|
||||
par_test_detected_shell test_known_shell_c ksh93 Global::shell /bin/ksh93
|
||||
par_test_detected_shell test_known_shell_c mksh Global::shell /bin/mksh
|
||||
par_test_detected_shell test_known_shell_c posh Global::shell /bin/posh
|
||||
par_test_detected_shell test_known_shell_c rbash Global::shell /bin/rbash
|
||||
par_test_detected_shell test_known_shell_c rush Local configuration error occurred.
|
||||
par_test_detected_shell test_known_shell_c rush Contact the systems administrator for further assistance.
|
||||
par_test_detected_shell test_known_shell_c rzsh Global::shell /bin/rzsh
|
||||
par_test_detected_shell test_known_shell_c sash Global::shell /bin/sh
|
||||
par_test_detected_shell test_known_shell_c sh Global::shell /bin/sh
|
||||
par_test_detected_shell test_known_shell_c static-sh Global::shell /bin/static-sh
|
||||
par_test_detected_shell test_known_shell_c tcsh Global::shell /usr/bin/tcsh
|
||||
par_test_detected_shell test_known_shell_c yash Global::shell /usr/bin/yash
|
||||
par_test_detected_shell test_known_shell_c zsh Global::shell /usr/bin/zsh
|
||||
par_test_detected_shell test_known_shell_pipe ash Global::shell /bin/ash
|
||||
par_test_detected_shell test_known_shell_pipe bash Global::shell /bin/bash
|
||||
par_test_detected_shell test_known_shell_pipe csh Global::shell /bin/csh
|
||||
par_test_detected_shell test_known_shell_pipe dash Global::shell /bin/dash
|
||||
par_test_detected_shell test_known_shell_pipe fish Global::shell /usr/bin/fish
|
||||
par_test_detected_shell test_known_shell_pipe fizsh Global::shell /usr/bin/zsh
|
||||
par_test_detected_shell test_known_shell_pipe ksh Global::shell /usr/bin/ksh
|
||||
par_test_detected_shell test_known_shell_pipe ksh93 Global::shell /bin/ksh93
|
||||
par_test_detected_shell test_known_shell_pipe mksh Global::shell /bin/mksh
|
||||
par_test_detected_shell test_known_shell_pipe posh Global::shell /bin/posh
|
||||
par_test_detected_shell test_known_shell_pipe rbash Global::shell /bin/rbash
|
||||
par_test_detected_shell test_known_shell_pipe rush Local configuration error occurred.
|
||||
par_test_detected_shell test_known_shell_pipe rush Contact the systems administrator for further assistance.
|
||||
par_test_detected_shell test_known_shell_pipe rzsh Global::shell /bin/rzsh
|
||||
par_test_detected_shell test_known_shell_pipe sash Global::shell /bin/sh
|
||||
par_test_detected_shell test_known_shell_pipe sh Global::shell /bin/sh
|
||||
par_test_detected_shell test_known_shell_pipe static-sh Global::shell /bin/static-sh
|
||||
par_test_detected_shell test_known_shell_pipe tcsh Global::shell /usr/bin/tcsh
|
||||
par_test_detected_shell test_known_shell_pipe yash Global::shell /usr/bin/yash
|
||||
par_test_detected_shell test_known_shell_pipe zsh Global::shell /usr/bin/zsh
|
||||
par_tmp_full ### Test --tmpdir running full. bug #40733 was caused by this
|
||||
par_tmp_full parallel: Error: Output is incomplete.
|
||||
par_tmp_full parallel: Error: Cannot append to buffer file in /tmp/shm/parallel.
|
||||
|
|
|
@ -93,108 +93,6 @@ echo '### bug #42892: parallel -a nonexiting --pipepart'
|
|||
### bug #42892: parallel -a nonexiting --pipepart
|
||||
parallel --pipepart -a nonexisting wc
|
||||
parallel: Error: nonexisting is neither a file nor a block device
|
||||
echo '### 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)'
|
||||
## Unknown shell => $SHELL (bash)
|
||||
parallel -kj1 "rm -f /tmp/SHELL; 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 rm -f /tmp/SHELL; cp `which ash` /tmp/SHELL; /tmp/SHELL -c 'parallel -Dinit echo ::: 1' | grep which;
|
||||
which bash => shell path /bin/bash
|
||||
shell? /bin/bash -c rm -f /tmp/SHELL; cp `which bash` /tmp/SHELL; /tmp/SHELL -c 'parallel -Dinit echo ::: 1' | grep which;
|
||||
which bash => shell path /bin/bash
|
||||
shell? /bin/bash -c rm -f /tmp/SHELL; cp `which csh` /tmp/SHELL; /tmp/SHELL -c 'parallel -Dinit echo ::: 1' | grep which;
|
||||
which bash => shell path /bin/bash
|
||||
shell? /bin/bash -c rm -f /tmp/SHELL; cp `which dash` /tmp/SHELL; /tmp/SHELL -c 'parallel -Dinit echo ::: 1' | grep which;
|
||||
which bash => shell path /bin/bash
|
||||
shell? /bin/bash -c rm -f /tmp/SHELL; cp `which fish` /tmp/SHELL; /tmp/SHELL -c 'parallel -Dinit echo ::: 1' | grep which;
|
||||
which bash => shell path /bin/bash
|
||||
which zsh => shell path /usr/bin/zsh
|
||||
shell? /bin/bash -c rm -f /tmp/SHELL; cp `which ksh` /tmp/SHELL; /tmp/SHELL -c 'parallel -Dinit echo ::: 1' | grep which;
|
||||
which bash => shell path /bin/bash
|
||||
shell? /bin/bash -c rm -f /tmp/SHELL; cp `which ksh93` /tmp/SHELL; /tmp/SHELL -c 'parallel -Dinit echo ::: 1' | grep which;
|
||||
which bash => shell path /bin/bash
|
||||
shell? /bin/bash -c rm -f /tmp/SHELL; cp `which mksh` /tmp/SHELL; /tmp/SHELL -c 'parallel -Dinit echo ::: 1' | grep which;
|
||||
which bash => shell path /bin/bash
|
||||
shell? /bin/bash -c rm -f /tmp/SHELL; cp `which posh` /tmp/SHELL; /tmp/SHELL -c 'parallel -Dinit echo ::: 1' | grep which;
|
||||
which bash => shell path /bin/bash
|
||||
shell? /bin/bash -c rm -f /tmp/SHELL; cp `which rbash` /tmp/SHELL; /tmp/SHELL -c 'parallel -Dinit echo ::: 1' | grep which;
|
||||
which bash => shell path /bin/bash
|
||||
shell? /bin/bash -c rm -f /tmp/SHELL; cp `which rzsh` /tmp/SHELL; /tmp/SHELL -c 'parallel -Dinit echo ::: 1' | grep which;
|
||||
which bash => shell path /bin/bash
|
||||
shell? /bin/bash -c rm -f /tmp/SHELL; cp `which sash` /tmp/SHELL; /tmp/SHELL -c 'parallel -Dinit echo ::: 1' | grep which;
|
||||
which bash => shell path /bin/bash
|
||||
shell? /bin/bash -c rm -f /tmp/SHELL; cp `which sh` /tmp/SHELL; /tmp/SHELL -c 'parallel -Dinit echo ::: 1' | grep which;
|
||||
which bash => shell path /bin/bash
|
||||
shell? /bin/bash -c rm -f /tmp/SHELL; cp `which tcsh` /tmp/SHELL; /tmp/SHELL -c 'parallel -Dinit echo ::: 1' | grep which;
|
||||
which bash => shell path /bin/bash
|
||||
shell? /bin/bash -c rm -f /tmp/SHELL; cp `which yash` /tmp/SHELL; /tmp/SHELL -c 'parallel -Dinit echo ::: 1' | grep which;
|
||||
which bash => shell path /bin/bash
|
||||
shell? /bin/bash -c rm -f /tmp/SHELL; cp `which zsh` /tmp/SHELL; /tmp/SHELL -c 'parallel -Dinit echo ::: 1' | grep which;
|
||||
which bash => shell path /bin/bash
|
||||
Local configuration error occurred.
|
||||
Contact the systems administrator for further assistance.
|
||||
SHELL: applet not found
|
||||
echo '## 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 posh rbash rush rzsh sash sh static-sh tcsh yash zsh; rm -f /tmp/par*.par
|
||||
which ash => shell path /bin/ash
|
||||
shell? /bin/bash -c `which bash` -c 'parallel -Dinit echo ::: 1' | grep which;
|
||||
which bash => shell path /bin/bash
|
||||
which csh => shell path /bin/csh
|
||||
which dash => shell path /bin/dash
|
||||
which fdsh => shell path /usr/bin/fdsh
|
||||
which fish => shell path /usr/bin/fish
|
||||
which zsh => shell path /usr/bin/zsh
|
||||
shell? /bin/bash -c `which ksh` -c 'parallel -Dinit echo ::: 1' | grep which;
|
||||
which bash => shell path /bin/bash
|
||||
shell? /bin/bash -c `which ksh93` -c 'parallel -Dinit echo ::: 1' | grep which;
|
||||
which bash => shell path /bin/bash
|
||||
shell? /bin/bash -c `which mksh` -c 'parallel -Dinit echo ::: 1' | grep which;
|
||||
which bash => shell path /bin/bash
|
||||
which posh => shell path /bin/posh
|
||||
shell? /bin/bash -c `which rbash` -c 'parallel -Dinit echo ::: 1' | grep which;
|
||||
which bash => shell path /bin/bash
|
||||
shell? /bin/bash -c `which rzsh` -c 'parallel -Dinit echo ::: 1' | grep which;
|
||||
which bash => shell path /bin/bash
|
||||
which sash => shell path /bin/sash
|
||||
which sh => shell path /bin/sh
|
||||
which static-sh => shell path /bin/static-sh
|
||||
which tcsh => shell path /usr/bin/tcsh
|
||||
shell? /bin/bash -c `which yash` -c 'parallel -Dinit echo ::: 1' | grep which;
|
||||
which bash => shell path /bin/bash
|
||||
shell? /bin/bash -c `which zsh` -c 'parallel -Dinit echo ::: 1' | grep which;
|
||||
which bash => shell path /bin/bash
|
||||
Local configuration error occurred.
|
||||
Contact the systems administrator for further assistance.
|
||||
echo '## Known shells |'
|
||||
## Known shells |
|
||||
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 bash => shell path /bin/bash
|
||||
which csh => shell path /bin/csh
|
||||
which dash => shell path /bin/dash
|
||||
which fdsh => shell path /usr/bin/fdsh
|
||||
which fish => shell path /usr/bin/fish
|
||||
which zsh => shell path /usr/bin/zsh
|
||||
which ksh => shell path /usr/bin/ksh
|
||||
which ksh93 => shell path /bin/ksh93
|
||||
which mksh => shell path /bin/mksh
|
||||
which posh => shell path /bin/posh
|
||||
which rbash => shell path /bin/rbash
|
||||
which rzsh => shell path /bin/rzsh
|
||||
which sash => shell path /bin/sash
|
||||
which sh => shell path /bin/sh
|
||||
which static-sh => shell path /bin/static-sh
|
||||
which tcsh => shell path /usr/bin/tcsh
|
||||
which yash => shell path /usr/bin/yash
|
||||
which zsh => shell path /usr/bin/zsh
|
||||
Local configuration error occurred.
|
||||
Contact the systems administrator for further assistance.
|
||||
echo '## Started directly from perl'
|
||||
## Started directly from perl
|
||||
perl -e 'system(qw(parallel -Dinit echo ::: 1))' | grep which; rm -f /tmp/par*.par
|
||||
shell? /bin/bash -c perl -e 'system(qw(parallel -Dinit echo ::: 1))' | grep which; rm -f /tmp/par*.par
|
||||
which bash => shell path /bin/bash
|
||||
echo '### added transfersize/returnsize to local jobs'
|
||||
### added transfersize/returnsize to local jobs
|
||||
echo '### normal'
|
||||
|
|
Loading…
Reference in a new issue