SCP: 명령줄에서 작동하지만 cp: 스크립트의 오류를 계산할 수 없습니다. 왜?

SCP: 명령줄에서 작동하지만 cp: 스크립트의 오류를 계산할 수 없습니다. 왜?

scp를 사용하여 서버에서 내 컴퓨터로 파일을 복사하고 있습니다. 명령줄에서 명령을 입력하면 명령이 제대로 작동하지만 이를 실행하기 위해 스크립트를 작성하려고 하면 "cp: can count" 오류와 함께 실패합니다. 스크립트가 내 컴퓨터에 디렉터리가 있는지 확인하려고 하는 것 같은데, 저는 그럴 생각이 없습니다.

user@server와 동일한 $LOGIN 변수가 있습니다.

명령줄에서 실행할 명령은 다음과 같습니다.

scp $LOGIN:dir/dir/file.txt .

이것이 내 bash 스크립트에 있는 것입니다:

scp "$LOGIN:$1 $2"

이것이 내가 스크립트를 호출하는 방법입니다.

./scriptname dir/dir/file.txt .

그리고 오류:

cp: ':dir/dir/file.txt'를 stat할 수 없습니다: 해당 파일이나 디렉터리가 없습니다

이 스크립트를 작동시키는 방법에 대한 아이디어가 있습니까?

답변1

환경 변수로 내보내지지 않기 때문에 LOGIN스크립트를 입력하면 손실되므로 스크립트가 실행을 시도합니다.

scp :dir/dir/file.txt .

원하는 것 대신:

scp user@server::dir/dir/file.txt .

가장 짧은 "수정"은 다음과 같습니다.

export LOGIN

스크립트를 실행하기 전에.

또한 인용하는 것이 더 좋습니다.

scp "$LOGIN":"$1" "$2"

이렇게 하면 scp하나가 아닌 두 개의 별도 문자열을 볼 수 있습니다.

관련 정보