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
하나가 아닌 두 개의 별도 문자열을 볼 수 있습니다.