2014-01-15 1 views
0

우분투 13.10에서 파이썬 3.3에서 .sh 스크립트를 시작하려고합니다. 스크립트가 컴퓨터를 종료해야합니다. 이미 sh 스크립트를 터미널을 통해 실행 파일로 표시했습니다. os.system ("script.sh"), subprocess.Popen ("Script.sh") 및 subprocess.call ([script.sh])을 통해 sh 스크립트를 실행하려고했습니다. 계속해서 : OSError Exec 형식 오류가 반환됩니다. 도움이되면 크게 도움이 될 것입니다.Python 프로그램에서 .sh 파일을 실행하는 방법 Ubuntu

+0

스크립트에 shebang을 추가 했습니까? 그렇지 않으면 OS는 이진 실행 파일로 실행하려고 시도합니다. – Kritzefitz

+0

안녕하세요. '시 뱅'이 무슨 뜻이야? 터미널에서 스크립트를 실행할 수 있지만 파이썬에서는 실행할 수 없습니다. –

+0

유닉스 계열 시스템 스크립트 (바이너리 코드가 아닌 실행 파일)는 실행 방법에 대한 정보가 필요합니다. 따라서 .sh 스크립트의 첫 번째 줄은 소위 (shebang)라고해야합니다. shebang은 "#!/your/script/interpreter"(따옴표 제외) 형식을 가지고 있습니다 .sh 스크립트/your/script/interpreter가/bin/sh 인 경우 shebangs에 대한 자세한 내용은 https : // ko를보십시오. wikipedia.org/wiki/Shebang_%28Unix%29. – Kritzefitz

답변

1

나는 script.sh가 PATH가 아니라 현재 작업 디렉토리에 있다고 가정합니다. 기본적으로 os.system 및 subprocess는 경로에서 요청 된 실행 파일을 찾습니다. 그래서 현재 작업 디렉토리에 뭔가를 실행하기 위해이 같은 실행 파일을 지정해야합니다

subprocess.call("./script.sh") 

./은 단순히 실행해야 실행 파일이 현재 작업 디렉토리에 있음을 말한다.