나는 C 쉘 스크립트를 작성한 다음 작은 프로세스로 스크립트를 호출하는 작은 파이썬 프로그램을 작성했다. 그러나, 파이썬 스크립트를 실행하는 데 실패합니다. 필자는 터미널에서이를 테스트했으며 스크립트가 터미널에서 실행되지 않는다는 것을 발견했습니다 (즉, 파이썬 문제가 아님). 추가 테스트 결과, 동일한 스크립트를 텍스트 편집기 (vi)에 작성한 다음 터미널에서 성공적으로 실행할 수 있음을 나타냅니다 (즉, 스크립트의 내용이 잘못되었다고 생각하지 않음). 결국 나는 ./myscript.com
으로 터미널에서 직접 파이썬으로 출력을 실행하려고하면 이 아닌이 실행됨을 발견했습니다. 그러나 vi로 열면 NO을 변경하고 저장 한 다음 ./myscript.com
(정확히 동일한 명령)을 사용하여 터미널에서 저장하고 실행합니다. 이 스크립트는 아래에 포함되어 있습니다. 그러나 사용하기 위해 대부분의 내용은 내가 실행하려고하는 특정 프로그램에만 한정됩니다. 나는 이것을 더 자세히 디버깅 할 방법을 모르거나 vi에서 열기, 저장 및 닫기의 효과가 스크립트 실행을 허용하는 데 충분한 이유를 알지 못합니다. (예를 들어 사용 권한을 확인했는데 vi 단계 이후에 변경되지 않았습니다.) 계속 진행하는 방법에 대한 제안은 많이 감사하겠습니다.파이썬에서 쉘 스크립트 실행하기
#!/bin/csh
#
bin2pipe -in /full/path/to/this/script/recon.spc -bad 0.0 -noswap \
-xN 1714 \
-xT 1714 \
-xFT Freq \
-xMODE Real \
-xSW 4184.570312 \
-xCAR 10.929523 \
-xOBS 800.130005 \
-xLAB 1H \
-yN 2048 \
-yT 2048 \
-yFT Freq \
-yMODE Real \
-ySW 1700.680054 \
-yCAR 125.728023 \
-yOBS 81.075996 \
-yLAB 1H \
-ndim 2 \
|nmrPipe -fn TP -auto \
|nmrPipe -fn REV \
|nmrPipe -fn TP -auto \
-out recon.spc.pipe.ft2 -ov -verb
파이썬에서 어떻게 호출하고 있습니까? –
파이썬에서 저는'subprocess.call (FileName) '이라고 부릅니다. 이전에 파일 권한을 설정했기 때문에'os.chmod (FileName, 0o755)'로 실행 가능하도록했습니다. 내가 알아챈 한가지는 열기, 저장 및 닫기입니다. vi는 파일 크기 (492 - 493 바이트)에 1 바이트를 추가합니다. 이것이 중요한지 또는이 여분의 바이트가 추가되고 있는지 나는 모른다. – 218
두 파일을 한 바이트 씩 비교하여 다른 파일을 볼 수 있습니다. * 줄 바꿈 *은 이에 해당합니까? 유니 코드 대 ascii? – wwii