mirror of
https://git.savannah.gnu.org/git/parallel.git
synced 2024-11-21 21:47:54 +00:00
parallel: --sslogin with , => use \, or ,, instead.
This commit is contained in:
parent
5535b7cbeb
commit
a91ba03bac
10
src/parallel
10
src/parallel
|
@ -2654,7 +2654,7 @@ sub check_invalid_option_combinations() {
|
||||||
|
|
||||||
sub init_globals() {
|
sub init_globals() {
|
||||||
# Defaults:
|
# Defaults:
|
||||||
$Global::version = 20220605;
|
$Global::version = 20220607;
|
||||||
$Global::progname = 'parallel';
|
$Global::progname = 'parallel';
|
||||||
$::name = "GNU Parallel";
|
$::name = "GNU Parallel";
|
||||||
$Global::infinity = 2**31;
|
$Global::infinity = 2**31;
|
||||||
|
@ -4583,7 +4583,15 @@ sub parse_sshlogin() {
|
||||||
if(not @Global::sshlogin) { @Global::sshlogin = (":"); }
|
if(not @Global::sshlogin) { @Global::sshlogin = (":"); }
|
||||||
for my $sshlogin (@Global::sshlogin) {
|
for my $sshlogin (@Global::sshlogin) {
|
||||||
# Split up -S sshlogin,sshlogin
|
# Split up -S sshlogin,sshlogin
|
||||||
|
# Parse ,, and \, as , but do not split on that
|
||||||
|
# -S "ssh -J jump1,,jump2 host1,host2" =>
|
||||||
|
# ssh -J jump1,jump2 host1
|
||||||
|
# host2
|
||||||
|
# Protect \, and ,, as \0
|
||||||
|
$sshlogin =~ s/\\,|,,/\0/g;
|
||||||
for my $s (split /,|\n/, $sshlogin) {
|
for my $s (split /,|\n/, $sshlogin) {
|
||||||
|
# Replace \0 => ,
|
||||||
|
$s =~ s/\0/,/g;
|
||||||
if ($s eq ".." or $s eq "-") {
|
if ($s eq ".." or $s eq "-") {
|
||||||
# This may add to @Global::sshlogin - possibly bug
|
# This may add to @Global::sshlogin - possibly bug
|
||||||
read_sshloginfile(expand_slf_shorthand($s));
|
read_sshloginfile(expand_slf_shorthand($s));
|
||||||
|
|
|
@ -3040,6 +3040,9 @@ The sshlogin '-' is special, too, it read sshlogins from stdin
|
||||||
To specify more sshlogins separate the sshlogins by comma, newline (in
|
To specify more sshlogins separate the sshlogins by comma, newline (in
|
||||||
the same string), or repeat the options multiple times.
|
the same string), or repeat the options multiple times.
|
||||||
|
|
||||||
|
GNU B<parallel> splits on , (comma) so if your sshlogin contains ,
|
||||||
|
(comma) you need to replace it with \, or ,,
|
||||||
|
|
||||||
For examples: see B<--sshloginfile>.
|
For examples: see B<--sshloginfile>.
|
||||||
|
|
||||||
The remote host must have GNU B<parallel> installed.
|
The remote host must have GNU B<parallel> installed.
|
||||||
|
|
|
@ -18,6 +18,14 @@ echo TODO
|
||||||
|
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
|
par_sshlogin_with_comma() {
|
||||||
|
echo "### --sshlogin with \,"
|
||||||
|
parallel -S 'ssh -J lo\,localhost 127.0.0.1' echo ::: OK
|
||||||
|
echo "### --sshlogin with ,,"
|
||||||
|
parallel -S 'ssh -J lo,,localhost 127.0.0.1' echo ::: OK
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
par_sshpass_with_password() {
|
par_sshpass_with_password() {
|
||||||
echo '### sshpass'
|
echo '### sshpass'
|
||||||
echo OK | parallel -S "sshpass -p $withpassword ssh withpassword@lo:22" echo
|
echo OK | parallel -S "sshpass -p $withpassword ssh withpassword@lo:22" echo
|
||||||
|
|
|
@ -93,6 +93,10 @@ par_ssh_ssh aspire
|
||||||
par_ssh_ssh OK
|
par_ssh_ssh OK
|
||||||
par_ssh_ssh aspire
|
par_ssh_ssh aspire
|
||||||
par_ssh_ssh OK
|
par_ssh_ssh OK
|
||||||
|
par_sshlogin_with_comma ### --sshlogin with \,
|
||||||
|
par_sshlogin_with_comma OK
|
||||||
|
par_sshlogin_with_comma ### --sshlogin with ,,
|
||||||
|
par_sshlogin_with_comma OK
|
||||||
par_sshpass_with_password ### sshpass
|
par_sshpass_with_password ### sshpass
|
||||||
par_sshpass_with_password OK
|
par_sshpass_with_password OK
|
||||||
par_sshpass_with_password OK
|
par_sshpass_with_password OK
|
||||||
|
|
Loading…
Reference in a new issue