0

I am trying to make the below command by passing runtime arguments

host=10.130.21.182
user=test-lftp
cert=/tools/abc/a200338-ivon.ppk

lftp sftp://$user:@$host -e 'set net:max-retries 2; set net:reconnect-interval-base 5; set net:reconnect-interval-multiplier 1; set sftp:connect-program "ssh -a -x -i $cert"'

But the final command is like below which is incorrect

lftp sftp://test-lftp:@10.130.21.182 -e 'set net:max-retries 2; set net:reconnect-interval-base 5; set net:reconnect-interval-multiplier 1; set sftp:connect-program "ssh -a -x -i $cert"'

Please help me to generate the expected below command

lftp sftp://test-lftp:@10.130.21.182 -e 'set net:max-retries 2; set net:reconnect-interval-base 5; set net:reconnect-interval-multiplier 1; set sftp:connect-program "ssh -a -x -i /tools/abc/a200338-ivon.ppk"'
Antonio Petricca
  • 6,313
  • 5
  • 28
  • 63
  • This worked for me : lftp sftp://${user}:@${host} -e 'set net:max-retries 2; set net:reconnect-interval-base 5; set net:reconnect-interval-multiplier 1; set sftp:connect-program "ssh -a -x -i '${cert}'"' – Rupesh Patil Sep 21 '21 at 11:19

2 Answers2

0

The single quotes don't expand variables so you have to chage it in

lftp sftp://test-lftp:@10.130.21.182 -e "set net:max-retries 2; set net:reconnect-interval-base 5; set net:reconnect-interval-multiplier 1; set sftp:connect-program \"ssh -a -x -i $cert\""
Antonio Petricca
  • 6,313
  • 5
  • 28
  • 63
  • lftp sftp://${user}:@${host} -e 'set net:max-retries 2; set net:reconnect-interval-base 5; set net:reconnect-interval-multiplier 1; set sftp:connect-program "ssh -a -x -i '${cert}'"' – Rupesh Patil Sep 21 '21 at 11:18
0

Here you go:

host=10.130.21.182
user=test-lftp
cert=/tools/abc/a200338-ivon.ppk

lftp sftp://$user:@$host -e 'set net:max-retries 2; set net:reconnect-interval-base 5; set net:reconnect-interval-multiplier 1; set sftp:connect-program '"ssh -a -x -i $cert"

Inside single quotes everything is preserved literally, without exception:

foo="bar"

echo 'baz "$foo"'
echo 'baz '"$foo"

Will print:

baz "$foo"
baz bar
serghei
  • 2,776
  • 2
  • 28
  • 45