유닉스 쉘 스크립트를위한 파일 확장자 Bourne shell을 참조하십시오 . 다른 유닉스

Wikipedia에서 .sh에 대한 기사 는 다음과 같이 말합니다.

.sh 파일 확장자 유형은 Bourne shell을 참조하십시오 .

다른 유닉스 쉘은 어떻습니까?

파일 내부 에서 shebang 이 사용 되어 인터프리터를 실행 한다는 것을 알고 있지만 궁금합니다.

  • 파일 확장자의 장점과 단점은 무엇입니까?


답변

난 단지 부를 것이다 .sh무언가 의미 이식을 (희망 이다 휴대용).

그렇지 않으면 언어를 숨기는 것이 낫다고 생각합니다. 주의 깊은 독자는 어쨌든 shebang 라인에서 찾을 것입니다. (실제로, .bash또는 .zsh, 등등 … 접미사는 거의 사용되지 않습니다.)


답변

필자는 기술적으로 파일 확장자에 대한 “우수 사례”가 존재하지 않는다고 말하고 싶습니다. Unix / Linux / * BSD 파일 시스템은 확장자 자체를 지원하지 않습니다. 확장명이라고 부르는 것은 단일 파일 이름의 접미사 일뿐입니다. 이는 inode-moral-equivalent의 특수 지점이 확장을 위해 예약 된 VM / CMS, VMS, MS-DOS 및 Windows 파일 시스템 및 OS와 다릅니다.

그 작은 소리가 이제 끝났다. 쉘 스크립트 파일 이름에 “.sh”또는 “.ksh”또는 “.bash”접미사를 붙이는 것은 약간 어리석은 생각이다. 프로그램은 프로그램입니다. 실행되는 내용을 구별 할 때 이점이 없습니다. 유닉스 나 리눅스 또는 커널이 파일 이름 접미사 때문에 일부 파일에서 인터프리터를 호출하기로 결정한 것은 없습니다. 그것은 모두 #!파일의 시작 부분에서 줄 또는 다른 “마법의 숫자”바이트 시퀀스에 의해 수행됩니다. 실제로 “확장자”파일 이름을 기반으로 실행할 항목을 결정하는 것이 Windows를 맬웨어로 만드는 요인 중 하나입니다. “something.jpg.exe”라는 파일이 포함 된 Windows 맬웨어 사기 수를 확인하십시오. 기본적으로 최신 Windows에는 “.exe”확장자가 표시되지 않으며 사용자가 “

미리 명령으로 생각할 수있는 것은 종종 어쨌든 쉘 스크립트입니다. 때때로 ccsh- 스크립트 firefox였으며 sh- 스크립트, startxsh- 스크립트입니다. 스크립트에 “.sh”접미사를 표시하면인지 적 또는 조직적 이점이 없다고 생각합니다.


답변

다수의? nix 환경에서 일한 사람으로서 저는 다양한 껍질로 글을 써야했습니다. 믿거 나 말거나, 플랫폼 전체에서 쉘이 동일하지 않습니다. 따라서 개인 라이브러리를 여러 셸로 유지 관리하는 경우 (필요한 경우) 확장을 사용하여 셸을 식별하는 것이 매우 유용합니다. 그렇게하면 다른 플랫폼으로 옮길 때 쉘이 약간 다를 때 수정 대상 스크립트를 알 수 있습니다. .sh .ksh .bsh .csh …


답변

당신이 말했듯이, 유닉스 파일 확장자는 순수한 정보입니다. 올바른 shebang을 가지고 실행 가능하도록 스크립트가 필요합니다.

확장명이 없거나을 사용할 수 있습니다 .sh.

나는 사용 된 쉘 (csh, tcsh, bash, sh, …)에 관계없이 다음 규칙을 개인적으로 사용합니다.

  • 시스템 또는 고급 스크립트에 대한 확장명 없음 (매우 드문 경우)
  • .sh고급 고전 스크립트, 낮은.

답변

실행 파일은 서로 호환되지 않으므로 확장 프로그램을 사용해서는 안됩니다. 쉘 스크립트가 있다고 가정하고 a.shpython으로 다시 작성한다고 가정 a.py하면 스크립트를 호출하는 모든 프로그램을 변경해야하며 구현 세부 정보가 유출됩니다.

Mircosoft의 Windows에서 전체 파일 이름 확장자는 엉망입니다. 예를 들어 a.audio, b.audio, c.audio, is a.mp3, b.wav, c.oggd.picture, e.picture, f.pictureis 가 될 수 있습니다 d.jpeg, e.png, f.gif. 우리는 대부분 오디오 나 사진의 형식을 신경 쓰지 않습니다. 또한 새로운 사용자에게 모든 파일 확장자를 가르치는 데 오랜 시간을 소비해야합니다.


답변

쉘 스크립트 확장은 매우 유용합니다. 예를 들어, 종종 같은 디렉토리에 여러 언어로 된 여러 파일 (예 : bash, awk 및 lua)이있는 스크립트를 작성합니다. bash 파일에서만 문자열을 검색 해야하는 경우 확장 프로그램은이를 매우 유용하게하여 오 탐지를 줄입니다. 또는 해당 프로젝트에 대한 모든 bash 코드의 행 수를 원할 경우.

프로그램을 실행할 때 확장명을 입력 해야하는 것은 고통 스럽기 때문에 매번 확장 프로그램을 입력 할 필요없이 기본 실행 파일의 확장명없이 symlink를 작성하여 편집 / 실행합니다. Symlink는 저렴하고 쉽습니다.


답변

다른 사람들이 말했듯이, 쉘은 확장에 신경 쓰지 않습니다. 그러나 사람이 파일을 빠르게 식별 할 수 있습니다. 나는 파일이 끝나는 참조 .py또는 .sh내가 빨리 (최소한)가되어야 하는지를 알고있다. Steve가 말했듯이 파일 확장자로 검색하거나 줄 수를 계산하는 것도 실용적인 고려 사항입니다.