wget 배치 리눅스 파일

wget 배치 리눅스 파일

제조사 홈페이지에서 이미지 다운로드를 이용하려고 합니다 wget. 쉘에서 명령을 실행하면 정상적으로 작동합니다. 하지만 파일에서 실행하면 자리표시자 파일이 생성됩니다.

이것은 명령입니다:

wget --wait=2 --output-document=1000.jpg 'http://distributorcentral.com/resources/productimage.cfm?prod=8cb7afa6-73bf-4f9f-b251-38dc652779c9&size=large'

파일에 표시되는 내용은 다음과 같습니다.

wget --wait=5 --output-document=1101.jpg 'http://distributorcentral.com/resources/productimage.cfm?prod=4d41b2ff-90a4-40c1-9159-2780cd642244&size=large'
wget --wait=5 --output-document=1102.jpg 'http://distributorcentral.com/resources/productimage.cfm?prod=5e88f32e-48f2-40db-bdbd-53624448392d&size=large'
wget --wait=5 --output-document=1103.jpg 'http://distributorcentral.com/resources/productimage.cfm?prod=59292a17-ae6f-49df-a028-0a9f71686f80&size=large'

왜 배치 쉘 파일로 작동하지 않는지 이해할 수 없습니다.

답변1

쉘 스크립트를 실행하려면 Unix에서 x(실행) 플래그를 추가해야 한다는 것을 알고 계셨습니까? DOS 사용자의 또 다른 일반적인 함정은 보안상의 이유로 일반적으로 "."이 없다는 것입니다. PATH 환경에서는 "your-script"뿐만 아니라 "./your-script"도 실행해야 합니다.

다른 답변에서 언급된 she-bang에 관해서. 적어도 Linux에서는 she-bang이 스크립트에 제공되지 않은 경우 /bin/sh가 사용되는 기본 쉘입니다. 항상 모든 스크립트에 하나를 추가하는 것이 좋습니다.

답변2

여기에서 테스트했는데 훌륭하게 작동합니다. 상단에 쉬뱅 라인이 있나요? #!/path/to/shell

답변3

출력 받기

which bash

그리고

which wget

그런 다음 파운드 기호(#!)를 사용하여 스크립트 상단에 bash에 반환된 경로를 추가합니다. 즉, 어떤 bash가 /bin/bash를 반환한다면 사용하세요.

#!/bin/bash

그런 다음 wget의 반환 경로를 추가합니다. 예

/usr/bin/wget --wait=5 --output-document=1101.jpg 'http://distributorcentral.com/resources/productimage

마지막으로 생성한 스크립트가 실행 가능한지 확인하세요.chmod +x name-of-your-script

작동하지 않으면 스크립트에 -x를 추가하여 디버깅 정보를 얻으십시오.

#!/bin/bash -x

관련 정보