ksh를 사용하여 "해당 파일이 없습니다"라고 표시되지만 스크립트는 ksh -x를 사용하여 실행됩니까?

ksh를 사용하여 "해당 파일이 없습니다"라고 표시되지만 스크립트는 ksh -x를 사용하여 실행됩니까?

OpenBSD 5.7/amd64에서 쉘 스크립트를 실행하려고 합니다. FOSS 프로젝트를 테스트하기 위한 테스트 스크립트입니다. (OpenBSD는 기본적으로 고대 컴파일러를 제공하기 때문에 우리의 목표 중 하나입니다.)

스크립트를 실행하려고 하면 다음과 같습니다.

$ ./cryptest.sh        
ksh: ./cryptest.sh: No such file or directory

그러나 -x디버깅을 위해 추가하면 마술처럼 스크립트를 찾을 수 있습니다.

$ ksh -x ./cryptest.sh 
+ TEST_RESULTS=cryptest-result.txt
+ ADD_CXXFLAGS=
+ uname -s
+ grep -i -c darwin
+ IS_DARWIN=0
+ uname -s
+ grep -i -c linux
+ IS_LINUX=0
+ uname -s
+ grep -i -c cygwin
+ IS_CYGWIN=0
+ uname -s
+ grep -i -c mingw
+ IS_MINGW=0
+ [ -z  ]
+ [ 0 -ne 0 ]
+ [ 0 -ne 0 ]
+ [ 0 -ne 0 ]
+ [ 0 -ne 0 ]
+ -x c++ -dM -E -std=c++11 -
...

.zip을 사용하여 ZIP의 압축을 풀었습니다 -aoq. 소유권, 권한 등을 확인했습니다. 꼼꼼히 확인해 봤습니다 dos2unix. 나는 심지어 go+rx그것을 실행해 보겠다고 제안했습니다. 내가 확인해야 할 모든 것(몇 가지)은 괜찮은 것 같습니다.

무슨 일인지 설명해 줄 수 있는 사람 있나요?

답변1

쉘이 cryptest.sh의 첫 번째 줄(shebang)에 지정된 쉘을 실행하려고 시도했지만 실패했습니다. ksh를 제대로 찾은 다음 스크립트를 실행할 수 있습니다.

답변2

ksh파일의 첫 번째 줄에 있는 경로가 ksh시스템의 경로와 일치하지 않습니다.

실제 상황을 반영하도록 파일을 편집하면 스크립트가 예상대로 시작됩니다.

답변3

Windows에서 개발하는 경우 EOL 인코딩에서 Unix EOL을 사용하여 스크립트를 작성하고 저장해야 할 수 있습니다.

관련 정보