셸의 Python 프로그램에 매개변수 전달

셸의 Python 프로그램에 매개변수 전달

쉘 스크립트에서 Python 스크립트를 실행할 수 없습니다. 다음은 Python 스크립트에 3개의 매개변수가 전달되는 script.sh 파일입니다.

python main.py 1.0 0.1 10

Python 프로그램이 매개변수를 읽지 못했습니다. 명령줄 터미널에서 동일한 줄을 실행하면 정상적으로 작동합니다.

main.py<<>> 방금 하드코딩에 매개변수를 정의 하고 매개변수 없이 명령을 실행하여 이를 확인했습니다 . 여전히 작동하지 않습니다. 이 main.py파일은 동일한 디렉터리에 있는 다른 파일도 사용합니다. 또한 스크립트도 동일한 디렉터리에 있습니다.

답변1

붙여넣은 내용 으로 볼 때 SyntaxError잘못된 Python 버전, 특히 Python 3 대신 Python 2에서 스크립트를 실행하고 있는 것 같습니다( SyntaxError댓글에서 불평할 수 있음).Python 3에만 존재합니다.).

받은 실제 오류를 읽어보면 이것이 실제로 매개변수(질문 제목) 전달과 전혀 관련이 없다는 것을 알 수 있습니다.

올바른 해결책은 스크립트에 인터프리터 이름을 추가하여 호출하는 것이 아니라 자체 인터프리터를 호출하도록 하는 것입니다.

./main.py 1.0 0.1 10

바꾸다

python main.py 1.0 0.1 10

올바르게 작성된 경우 스크립트에는셰르본 라인처음에 어떤 인터프리터에서 실행해야 하는지 지정하면 그렇게 될 것입니다 python3.

스크립트가 자체 인터프리터를 지정하도록 함으로써 호출 스크립트는 어떤 인터프리터가 필요한지 알거나 신경 쓸 필요가 없습니다. 완전히 다른 언어를 사용하도록 스크립트를 다시 작성할 수도 있고(또는 전혀 스크립트가 아닌 컴파일된 바이너리로 대체할 수도 있음) 호출자는 수정하지 않고도 다르게 호출할 수 있습니다.

관련 정보