Unix 쉘 스크립트의 파일 확장자

Unix 쉘 스크립트의 파일 확장자

Wikipedia에서 해당 기사는 다음과 같습니다..쉿설명하다:

.sh 파일 확장자 유형은 다음을 참조하세요.본 쉘.

다른 Unix 쉘은 어떻습니까?

알아요셰르본 사용파일 내부인터프리터에게 실행을 지시하지만 다음 사항을 알고 싶습니다.

  • 파일 확장자를 사용하는 것과 파일 확장자를 사용하지 않는 것의 장점과 단점은 무엇입니까?

답변1

난 그냥 .sh이렇게 불러볼까의미는휴대가 간편합니다(아마도가지고 다닐 수 있는).

그렇지 않으면 숨겨진 언어가 더 좋다고 생각합니다. 세심한 독자는 어쨌든 shebang 라인에서 그것을 찾을 것입니다. (실제로 .bashor 같은 접미사는 .zsh거의 사용되지 않습니다.)

답변2

엄밀히 말하면 파일 확장자에는 "좋은 습관"이 없다고 말하고 싶습니다. Unix/Linux/*BSD 파일 시스템은 기본적으로 확장자를 지원하지 않습니다. 당신이 말하는 확장자는 단일 파일 이름의 접미사일 뿐입니다. 이는 inode-moral-equival의 특별한 위치가 확장을 위해 예약되어 있는 VM/CMS, VMS, MS-DOS, Windows 파일 시스템 및 운영 체제와 다릅니다.

이제 이 작은 불만은 끝났으니 쉘 스크립트 파일 이름에 ".sh", ".ksh" 또는 ".bash" 접미사를 추가하는 것은 조금 어리석은 일이라고 생각합니다. 프로그램은 프로그램일 뿐입니다. 무엇이 실행되는지 구별해도 아무런 이점이 없습니다. UNIX나 Linux 또는 어떤 커널도 파일 이름 접미사 때문에 파일에서 인터프리터를 호출하기로 결정하지 않습니다. 이 모든 #!작업은 라인이나 파일의 시작 부분에 있는 다른 "마법의 숫자" 바이트 시퀀스에 의해 수행됩니다. 실제로 파일 이름 "확장자"를 기반으로 무엇을 실행할지 결정하는 것은 Windows를 맬웨어의 자석으로 만드는 요인 중 하나입니다. "something.jpg.exe"라는 파일과 관련된 Windows 악성 코드 사기가 얼마나 많은지 살펴보십시오. 기본적으로 최신 Windows에서는 ".exe" 확장자를 표시하지 않으며 사용자가 "이미지"를 두 번 클릭하도록 권장합니다. 악성코드는 이미지가 아닌 다른 보기에서 실행됩니다.

어쨌든 직접 실행되는 명령은 일반적으로 쉘 스크립트라고 생각할 수도 있습니다. 때때로 cc그것은 sh 스크립트, firefoxsh 스크립트, startxsh 스크립트입니다. 스크립트에 ".sh" 접미사를 표시하는 것이 인지적 또는 조직적 이점이 없다고 생각합니다.

답변3

다양한 ?nix 환경에서 작업한 사람으로서 저는 다양한 쉘에서 작성해야 했습니다. 믿거나 말거나, 크로스 플랫폼 쉘은 동일하지 않습니다. 따라서 여러 셸에서 개인 라이브러리를 유지 관리하는 경우(필요한 경우) 확장을 사용하여 셸을 식별하는 것이 매우 도움이 될 수 있습니다. 이렇게 하면 다른 플랫폼으로 이동하고 셸이 약간 다른 경우 수정해야 할 스크립트를 알 수 있습니다. .sh .ksh .bsh .csh ...

답변4

당신이 말했듯이 Unix 파일 확장자는 순전히 정보 제공용입니다. 올바른 shebang을 갖고 실행 가능하려면 스크립트가 필요합니다.

확장 없이 수행하거나 .sh.

어떤 쉘(csh, tcsh, bash, sh...)을 사용하든 저는 개인적으로 다음 규칙을 사용합니다.

  • 시스템이나 고급 스크립트가 없는 확장 프로그램(매우 드뭅니다).
  • .sh낮은 수준에서 높은 수준까지 클래식 스크립트 .

관련 정보