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?
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?
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?