not found [No such file or directory]
ksh 스크립트를 실행하려고 할 때 동일한 오류가 발생했습니다. PATH에 대한 팁을 읽고 ./
게시물의 a를 사용하여 스크립트를 실행하세요.여기그리고여기시도했지만 운이 없었습니다. 스크립트는 전체 권한으로 실행하려는 디렉토리에 존재하지만 직접 실행하거나 ./
스크립트의 첫 번째 줄을 사용할 때도 마찬가지입니다.#!/usr/bin/ksh
오류 메시지는 다음과 같습니다.
-ksh: revenue_ext.ksh: not found [No such file or directory]
그러나 ksh
동일한 디렉토리의 다른 스크립트는 정상적으로 실행되므로 여기서 무엇이 잘못될 수 있는지 전혀 알 수 없습니다. 어떤 도움이라도 대단히 감사하겠습니다.
답변1
이 오류를 일으키는 일부 캐리지 리턴이 있을 수 있다고 생각합니다.여기. 오류를 성공적으로 재현할 수 있었습니다.
시험
cat ksh_experiment.ksh
#!/usr/bin/ksh
echo "Hello"
이제 파일을 실행할 때 권한을 제공하면 출력이 성공적으로 생성됩니다. 이제 논의한 대로여기, 파일에 캐리지 리턴을 삽입했습니다. 이제 스크립트를 실행하면 내가 얻는 결과는 다음과 같습니다.
ksh: ./ksh_experiment.ksh: not found [No such file or directory]
이제 cat -v ksh_experiment.ksh
동일한 출력이 생성됩니다. 또한 를 입력하면 vim ksh_experiment.ksh
새 파일이 열립니다.
제공한 링크의 답변에서 논의한 대로 다음 명령을 사용하여 캐리지 리턴을 제거했습니다.
perl -p -i -e "s/\r//g" ksh_experiment.ksh
수정사항을 실행하면 예상한 결과가 나타납니다.
답변2
제 경우에는 파일이 다음 중 하나이면 동일한 오류 메시지가 나타납니다..ksh또는.쉿이와 같이:
-ksh: ./somefile.sh: not found [No such file or directory]
액세스 문제인 것으로 나타났습니다.
파일을 실행 가능하게 만들더라도 해당 파일을 실행하려면 서버에 대한 관리자 권한이 필요할 수 있습니다. 명령줄을 실행할 수 있지만 스크립트 실행 결과를 찾을 수 없습니다. 다음에서 스크립트를 실행해 보세요.스도, 그러면 루트로 스크립트를 실행할 수 있는지 여부를 알 수 있습니다.
답변3
^M
캐릭터 때문에 이런 일이 일어났습니다.
그것을 사용해 보면 dos2unix <File_name>
예상한 결과를 얻을 수 있습니다.