왜 한 스크립트에서는 컬 -n이 실패하지만 다른 스크립트에서는 실패하지 않습니까?

왜 한 스크립트에서는 컬 -n이 실패하지만 다른 스크립트에서는 실패하지 않습니까?

왜 한 스크립트에서는 컬 -n이 실패하지만 다른 스크립트에서는 실패하지 않습니까?

MacOS High Sierra에서 실행되는 컬 7.67.0

스크립트에는 다음 코드가 포함되어 있습니다.

host="ftp.xxxxxx.com/public_html/"
/opt/local/bin/curl -n -T $file $host -v

나에게 이것을 주었다:

> USER xxxx
< 331 User xxxx OK. Password required
> PASS xxxxxxxxxx
< 230 OK. Current restricted directory is /

다른 스크립트의 다음 코드:

host="ftp.xxxxxx.com/public_html/"
/opt/local/bin/curl -n -T $file $host -v

나에게 이것을 주었다:

* Couldn't find host ftp.mgnewman.com in the .netrc file; using defaults
<snip>
> USER anonymous
< 331 User anonymous OK. Password required
> PASS [email protected]
  0     0    0     0    0     0      0      0 --:--:--  0:00:05 --:--:--     0< 530 Login authentication failed
* Access denied: 530

두 스크립트 모두 동일한 시스템의 동일한 디렉토리에 있는 bash 스크립트입니다. .netrc 파일은 하나만 있습니다. 분명히 이것은 스크립트가 성공적으로 사용하기 때문에 괜찮습니다. 컬 코드와 호스트 변수는 동일합니다. 실제로 첫 번째 스크립트의 코드는 두 번째 스크립트에서 직접 복사됩니다.

하나의 컬 명령이 .netrc 파일을 사용할 수 있지만 다른 명령은 사용할 수 없는 이유를 알아내는 방법은 무엇입니까? 두 번째 스크립트에는 컬이 실패하게 만드는 뭔가가 있어야 하는데 그게 무엇인지는 모르겠습니다.

답변1

.netrc문제는 파일의 기록에 있습니다. 첫 번째 호스트에는 사용할 수 있지만 두 번째 호스트에는 사용할 수 없습니다. 당신이 할 수 있는 일은 두 번째 호스트에 대해 이와 같은 레코드를 추가하는 것입니다. 예상되는 형식은 다음과 같습니다.

machine <host name>
login <user-email or anonymous>
password <user-password or some mail for anonymous access>

운영 체제에 따라 필요한 레코드는 다음과 같습니다.

machine <host name> login <user-email or anonymous> password <user-password or some mail for anonymous access>

관련 정보