Se $keyfile
contiver espaços e outros exemplos:
rdiff-backup --verbosity 5 -somearguments -somemorearguments \
--remote-schema 'ssh -i "'"$keyfile"'" -C %s' \
sourcedir backup::/targetdir
Eu quero executar um comando em um script bash
que tenha este estilo:
rdiff-backup --verbosity 5 -somearguments -somemorearguments \
--remote-schema 'ssh -i $keyfile -C %s' \
sourcedir backup::/targetdir
O problema aparece com o argumento --remote-schema
. Eu tenho que fazer a variável ssh-key , neste exemplo com $keyfile
.
Eu construo o comando resultante em $rdiffcmd
. Eu não tenho um problema para construir um comando onde tudo parece que deve funcionar: Um echo $rdiffcmd
mostra as cotações necessárias em torno de --remote-schema
. Mas tem que haver uma expansão invisível porque eu sempre recebo a mensagem de que rdiff-backup
(no lado local) não entende -i
. Portanto, não está usando as aspas.
O que devo fazer para agrupar o esquema remoto e fazer com que pareça um argumento?
Muito estranho: posso colar e copiar a saída de echo $rdiffcmd
em um terminal e funciona. Mas como $rdiffcmd
no meu script, não com o problema acima.
Se $keyfile
contiver espaços e outros exemplos:
rdiff-backup --verbosity 5 -somearguments -somemorearguments \
--remote-schema 'ssh -i "'"$keyfile"'" -C %s' \
sourcedir backup::/targetdir
Tags bash