FTP 연결에 변수를 전달하는 방법은 무엇입니까? [복사]

FTP 연결에 변수를 전달하는 방법은 무엇입니까? [복사]

저는 lftpFTP 서버에 연결하고 cd특정 디렉토리로 이동하여 해당 디렉토리 위치를 변수로 저장하는 데 사용하고 있습니다 REMOTE_DIRECTORY.

폴더 이름에 공백이 있기 때문에 이것이 작동하지 않을 것이라고 확신합니다. 그러나 작은따옴표와 큰따옴표를 사용해 보았지만 문제가 해결되지 않았습니다. 무엇을 더 시도해야 할지 모르겠습니다. 내가 시도한 것은 다음과 같습니다.

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

이 스크립트의 출력은 다음과 같습니다.

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

따라서 명령에 폴더 이름을 명시적으로 입력한 경우에만 작동하는 것 같습니다 cd. 이를 위해 변수를 어떻게 사용할 수 있습니까?

답변1

변수가 확장되면 입력과 같습니다.

cd SRC Test Data

우주는 폭발을 일으킨다.

노력하다:

 cd "$REMOTE_DIRECTORY"

또한보십시오공백이나 기타 특수 문자 때문에 쉘 스크립트가 멈추는 이유는 무엇입니까?

관련 정보