.sh 파일을 실행해 보세요. 그러나 오류가 발생합니다: 구성이 누락되었습니다: 설치에 실패했습니다.

.sh 파일을 실행해 보세요. 그러나 오류가 발생합니다: 구성이 누락되었습니다: 설치에 실패했습니다.

저는 Debian 8.2 가상 머신을 실행 중이고 install.sh라는 파일을 실행하려고 합니다.

다음 명령을 실행했습니다.

  • sh./install.sh
  • sh 설치.sh
  • apt-get 설치 install.sh

위의 처음 두 명령을 실행하면 "구성이 존재하지 않습니다. 설치에 실패했습니다"라는 오류가 발생했습니다. 세 번째 명령은 다음과 같은 출력을 제공했습니다.

Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package install.sh
E: Couldn't find any package by regex 'install.sh'

파일이 실행 가능한지 확인하기 위해 chmod 700 install.sh를 실행했습니다.

이런 종류의 오류에 대한 정보를 전혀 찾을 수 없습니다.

답변1

스크립트가 쉘 스크립트인 경우 처음 두 명령이 스크립트를 실행합니다. 하지만 파이썬일 수도 있습니다. 아니면 어이. 아니면 완전히 다른 껍질입니다. 따라서 안전을 유지하려면 언급할 필요가 없습니다. sh특히 잘 작성된 대부분의 스크립트는 첫 번째 줄에 올바른 해석기를 지정하기 때문입니다.

  1. 스크립트를 실행 가능하게 만듭니다.chmod a+rx install.sh
  2. 이제 실행해 보세요:./install.sh

답변2

첫 번째 명령은 정확합니다(스크립트가 현재 디렉터리에 있는 한). 세 번째 순서는 아직 멀었습니다. 두 번째는 첫 번째와 동일한 작업을 수행합니다.

스크립트 실행 중: 스크립트를 실행할 수 없는 오류가 아닙니다. 스크립트의 일부 명령이 실패했습니다. 하지만 대본에 내용이 무엇인지 모르기 때문에 그렇게 말씀드릴 수 있습니다.

로 사용하기 위해 실행 가능하게 만들 필요는 없습니다 sh script_name. 첫 번째 줄로 시작하면 #!…실행 가능하도록 설계되어 ./script_name.

스크립트가 bash(또는 다른 고급 쉘) 확장에 의존하는 경우. 그럼 못 들어갈 수도 있겠네요.sh

스크립트를 디버깅하려면(bash 스크립트인 경우) 다음과 같이 실행할 수 있습니다.bash -x script_name


실행 파일을 확장하지 않는 것이 좋습니다. Python이나 C로 다시 작성하려면 이름을 바꿔야 합니다. 이는 좋은 생각이 아닙니다. (파일이 실행 가능하면 실행 가능합니다. 자체 인터프리터 선택을 담당합니다(참고자료 참조 #!).

관련 정보