mirror of
https://git.savannah.gnu.org/git/parallel.git
synced 2024-11-22 14:07:55 +00:00
parallel: Fixed: csh length before base64 quoting too high.
This commit is contained in:
parent
499dfe9acb
commit
e57ec6deec
|
@ -236,7 +236,7 @@ New in this release:
|
|||
|
||||
* --fifo now works in csh, too.
|
||||
|
||||
* <<afventer opdatering>> CIDER: a pipeline for detecting waves of coordinated transcriptional regulation in gene expression time-course data http://biorxiv.org/content/biorxiv/early/2015/03/17/012518.full.pdf
|
||||
* GNU Parallel was cited in: DockBench: An Integrated Informatic Platform Bridging the Gap between the Robust Validation of Docking Protocols and Virtual Screening Simulations http://www.mdpi.com/1420-3049/20/6/9977
|
||||
|
||||
* <<Har angiveligt submittet ny version - afventer opdatering>> GNU Parallel was used (unfortunately without citation) in: MUGBAS: a species free gene-based programme suite for post-GWAS analysis http://www.ncbi.nlm.nih.gov/pubmed/25765345
|
||||
|
||||
|
|
|
@ -3221,7 +3221,7 @@ sub killall {
|
|||
# Wait up to 200 ms between each
|
||||
|
||||
$Global::start_no_new_jobs ||= 1;
|
||||
$Global::killall = 1;
|
||||
$Global::killall ||= 1;
|
||||
# pids of the all children and (grand*)children
|
||||
# before we start the blood bath
|
||||
my @family_pids = family_pids(keys %Global::running);
|
||||
|
@ -6800,7 +6800,8 @@ sub sshlogin_wrap {
|
|||
my $remote_command = $pwd.$envset.$bashfuncset.
|
||||
'@ARGV="'.::perl_quote_scalar($command).'";'. monitor_parent_sshd_script();
|
||||
$quoted_remote_command = "perl -e ".::shell_quote_scalar($remote_command);
|
||||
if(length $quoted_remote_command > 999
|
||||
my $dq_remote_command = ::shell_quote_scalar($quoted_remote_command);
|
||||
if(length $dq_remote_command > 999
|
||||
or
|
||||
not $csh_friendly
|
||||
or
|
||||
|
@ -6810,7 +6811,7 @@ sub sshlogin_wrap {
|
|||
$quoted_remote_command = "perl -e \\''".base64_zip_eval()."'\\' ".
|
||||
join" ",string_zip_base64($remote_command);
|
||||
} else {
|
||||
$quoted_remote_command = ::shell_quote_scalar($quoted_remote_command);
|
||||
$quoted_remote_command = $dq_remote_command;
|
||||
}
|
||||
|
||||
my $sshcmd = $sshlogin->sshcommand();
|
||||
|
|
|
@ -469,6 +469,29 @@ a Perl script in `` or using B<system> if called as a single string.
|
|||
|
||||
While these cover most cases, there are situations where it will fail:
|
||||
|
||||
=over 2
|
||||
|
||||
=item *
|
||||
|
||||
When run using B<exec>.
|
||||
|
||||
=item *
|
||||
|
||||
When run as the last command using B<-c> from another shell (because
|
||||
some shells use B<exec>):
|
||||
|
||||
zsh% bash -c "parallel 'echo {} is not run in bash; set | grep BASH_VERSION' ::: This"
|
||||
|
||||
You can work around that by appending '&& true':
|
||||
|
||||
zsh% bash -c "parallel 'echo {} is run in bash; set | grep BASH_VERSION' ::: This && true"
|
||||
|
||||
=item *
|
||||
|
||||
When run in a Perl script using B<system> with parallel as the first
|
||||
string:
|
||||
|
||||
|
||||
#!/usr/bin/perl
|
||||
|
||||
system("parallel",'setenv a {}; echo $a',":::",2);
|
||||
|
@ -478,17 +501,24 @@ Perl script is called from B<tcsh> it will work just fine, but if it
|
|||
is called from B<bash> it will fail, because the command B<setenv> is
|
||||
not known to B<bash>.
|
||||
|
||||
=back
|
||||
|
||||
|
||||
=head2 Quoting
|
||||
|
||||
Quoting is kept simple: Use \ for all special chars and ' for
|
||||
newline. Whether a char is special depends on the shell and the
|
||||
context. Luckily quoting a bit too many does not break things.
|
||||
Quoting depends on the shell. For most shells \ is used for all
|
||||
special chars and ' is used for newline. Whether a char is special
|
||||
depends on the shell and the context. Luckily quoting a bit too many
|
||||
chars does not break things.
|
||||
|
||||
It is fast, but had the distinct disadvantage that if a string needs
|
||||
to be quoted multiple times, the \'s double every time - increasing
|
||||
the string length exponentially.
|
||||
|
||||
For B<tcsh>/B<csh> newline is quoted as \ followed by newline.
|
||||
|
||||
For B<rc> everything is quoted using '.
|
||||
|
||||
|
||||
=head2 --pipepart vs. --pipe
|
||||
|
||||
|
|
Loading…
Reference in a new issue