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을 사용하여 스크립트를 작성하고 저장해야 할 수 있습니다.