비밀번호에 $를 사용하세요

비밀번호에 $를 사용하세요

내 서버의 비밀번호가 다음과 같다고 가정해 보겠습니다.Abcd$1234

쉘 스크립트에서 다음을 사용하여 다른 서버에서 내 서버로 파일을 ftp하려고 합니다.

ftp -inv (IP) << EOF
user Username Abcd$1234

"lines to ftp file"

bye

FTP를 사용할 수 없습니다. 비밀번호를 Abcd\$1234and 로 바꾸려고 시도했지만 "Abcd\$1234"작동하지 않았습니다.

하지만 FTP 없이도 내 서버에 로그인할 수 있습니다(비밀번호가 유효한지 확인하기 위해).

누구든지 도와줄 수 있나요? $내 비밀번호를 어떻게든 사용하고 싶어요

답변1

여기에 파일을 제출하세요. cat <<EOF그 뒤에는 여러 줄의 텍스트가 오고, EOF들여쓰기 없이 새 줄에 텍스트 문자열이 옵니다. EOF 사이의 부분은 표준 입력으로 명령에 전달됩니다. "EOF"가 "인용"되면 대체가 이루어지지 않습니다. 들여쓰기 유형은 <<-를 참조하세요.

그래서..

    ftp -inv (IP) <<'EOF'
    user Username Abcd$1234

    "lines to ftp file"

    bye
   EOF

유효해야 하며 $문자 그대로 받아들여 집니다 $. 변수로 참조하지 않습니다.

답변2

여기에 있는 문서 대신 다음과 같이 시도해 보세요.

    pw='Abcd$1234'

    exec 6>&1
    ftp -nvi >&6 2>&6 |&

    print -p open Server
    print -p user User $pw

    "lines to ftp file"

    print -p bye

관련 정보