특정 업데이트로 인해 powershell에서 직접 실행할 때 셸 스크립트가 실패하고 정상적으로 작동합니다.

특정 업데이트로 인해 powershell에서 직접 실행할 때 셸 스크립트가 실패하고 정상적으로 작동합니다.

전화

instaloader --post-filter="likes > 16720 and not is_video and date_utc >= datetime(2021, 5, 
29)" --no-profile-pic --no-videos --count=12 cristiano

잘 작동합니다.

그러나 동일한 코드를 입력 test.sh하고 다음과 같이 powershell에서 실행하십시오.

sh .\test.sh

또는

sh ./test.sh

또는

sh test.sh

이런 오류가 발생합니다

usage: 

instaloader [--comments] [--geotags]
            [--stories] [--highlights] [--tagged] [--igtv]
            [--login YOUR-USERNAME] [--fast-update]
            profile | "#hashtag" | %location_id | :stories | :feed | :saved
instaloader --help

instaloader: error: unrecognized arguments: cristiano

직접 테스트하고 싶다면 instaloader설치 하면 됩니다.pip install instaloader==4.7.1

.sh추신: 며칠 전에는 -files에서 동일한 스크립트가 제대로 작동했는데, bash/powershell/windows10에 대한 일부 업데이트로 인해 문제가 발생한 것일 수 있습니다. 문제는 따옴표 안의 공백을 이스케이프 처리할 수 있다는 것입니다.

나는 bash 4.4를 사용하고 있습니다. 그리고 WSL은 사용되지 않습니다.

편집하다:

이 문제가 해결될 때까지 스크립트가 제대로 작동하도록 임시 수정하여 스크립트를 수정했습니다. 내가 한 일은 Python을 사용하여 명령을 실행한 것이었고 이제 내 test.sh모습은 다음과 같습니다.

FILTER="likes > 16720 and not is_video and date_utc >= datetime(2021, 5,  29)"
CMD="instaloader --post-filter=\""$FILTER"\" --no-profile-pic --no-videos --count=12 cristiano"
echo "import os" > test.py
echo "os.system('"$CMD"')" >> test.py
python test.py

Python의 호출은 정상적으로 작동합니다. 여러분, 이 해킹은 훌륭하게 작동하고 문제가 없습니다. @roaima는 내가 여기에 추가한 작동하는 Python 코드를 보고 싶었기 때문에 여기서 질문은 별로 의미가 없습니다. 따라서 혼란을 피하기 위해 이 편집 섹션을 보지 말고 위의 주요 질문에만 집중하세요.

관련 정보