Como faço para passar uma variável para uma conexão FTP? [duplicado]

0

Estou usando lftp para se conectar a um servidor FTP e estou tentando cd em um diretório específico, com esse local de diretório salvo como uma variável, REMOTE_DIRECTORY .

Tenho certeza de que isso não está funcionando por causa dos espaços no nome das pastas, mas tentei aspas simples e duplas, que não resolveram os problemas que estou recebendo. Não tenho certeza o que mais tentar. Isso é o que eu tentei:

REMOTE_DIRECTORY="SRC Test Data"
export workdir=/home/ubuntu/tmp

lftp -u $USER,$PASS $HOST <<EOF
set ftp:ssl-protect-data true
set ftp:ssl-force true
set ssl:verify-certificate no
pwd 
cd $REMOTE_DIRECTORY
pwd
cd 'SRC Test Data'
pwd
ls -d > $workdir/src_list
quit
EOF

A saída desse script é:

ftp://FTP_User-RW:[email protected]
Usage: cd remote-dir
ftp://FTP_User-RW:[email protected]
ftp://FTP_User-RW:[email protected]/SRC%20Test%20Data

Portanto, está funcionando apenas quando eu entro explicitamente no nome da pasta no comando cd . Como faço isso com a variável?

    
por simplycoding 23.08.2017 / 22:10

1 resposta

0

Quando a variável se expande, é como digitar

cd SRC Test Data

e os espaços estão causando a explosão.

Tente:

 cd "$REMOTE_DIRECTORY"

Veja também Por que meu script de shell se sufoca em espaços em branco ou outros caracteres especiais?

    
por 23.08.2017 / 22:43

Tags