bash 및 sh 확장자를 가진 파일

bash 및 sh 확장자를 가진 파일

bash및 확장자를 가진 파일에 대해 조사를 했습니다 sh. 대부분의 사람들과 리소스는 파일에 bash확장명이 있으면 bash스크립트가 포함되어 있다고 말합니다. 마찬가지로 확장자를 가진 파일에는 스크립트가 sh포함되어 있습니다 sh.

그러나 bash와 sh 스크립트의 차이점을 찾을 수 없습니다. 사람들에게 셸에서 스크립트를 작성하는 방법을 가르치는 것을 목표로 하는 강좌와 기사가 있으며 모두 동일한 제목을 가지고 있습니다 shell scripting.

이 시점에서 쉘 스크립트는 어느 것에 해당합니까?

Bash 스크립트 또는 Sh 스크립트.

bash와 sh 스크립트의 차이점이 무엇인지 이해하려고 노력하고 있습니다.

답변1

POSIXland의 파일 이름에는 "확장자"가 없습니다. 파일 이름의 A는 .다른 문자와 다르지 않으며 우리와 같은 미트백이 제공하는 것 외에는 특별한 의미가 없습니다.

하나는 수희망이름이 로 끝나는 모든 파일은 .bash쉘에 의해 실행되는 스크립트이지만 bash이에 대한 보장은 없습니다.

사실 주는거모두쉘 스크립트의 접미사는 .shshebang 라인에서와 같이 사용하는 인터프리터입니다.~해야 한다해당 파일을 실행하는 데 사용해야 하는 쉘을 올바르게 지정하십시오.

sh, , , , 등 bash두 개의 서로 다르지만 관련된 쉘 입니다 .kshcshzshfishashdash

각 셸에는 고유한 구문, 기능, 습관 및 단점이 있습니다. 일부 셸은 서로 대체로 호환되지만(일반적으로 해당 셸용으로 작성된 스크립트는 sh다른 많은 셸에서 실행되기도 함 bash) 일부는 그렇지 않습니다.

답변2

내가 매일 발견하는 유일한 중요한 문제는 비교 연산자에 관한 bash것입니다 . sh이중 bash같음 연산자는 ==문자열 비교에 사용할 수 있습니다.

if [ "$var" == "foo" ]; then  # bash

그러나 이는 sh단일 동등 항목이 필요하기 때문에 구문 오류입니다.

if [ "$var" = "foo" ]; then   # sh

이것이 유일한 차이점이라고 말하는 것은 아니지만 일반적인 문제입니다.

관련 정보