bash
및 확장자를 가진 파일에 대해 조사를 했습니다 sh
. 대부분의 사람들과 리소스는 파일에 bash
확장명이 있으면 bash
스크립트가 포함되어 있다고 말합니다. 마찬가지로 확장자를 가진 파일에는 스크립트가 sh
포함되어 있습니다 sh
.
그러나 bash와 sh 스크립트의 차이점을 찾을 수 없습니다. 사람들에게 셸에서 스크립트를 작성하는 방법을 가르치는 것을 목표로 하는 강좌와 기사가 있으며 모두 동일한 제목을 가지고 있습니다 shell scripting
.
이 시점에서 쉘 스크립트는 어느 것에 해당합니까?
Bash 스크립트 또는 Sh 스크립트.
bash와 sh 스크립트의 차이점이 무엇인지 이해하려고 노력하고 있습니다.
답변1
POSIXland의 파일 이름에는 "확장자"가 없습니다. 파일 이름의 A는 .
다른 문자와 다르지 않으며 우리와 같은 미트백이 제공하는 것 외에는 특별한 의미가 없습니다.
하나는 수희망이름이 로 끝나는 모든 파일은 .bash
쉘에 의해 실행되는 스크립트이지만 bash
이에 대한 보장은 없습니다.
사실 주는거모두쉘 스크립트의 접미사는 .sh
shebang 라인에서와 같이 사용하는 인터프리터입니다.~해야 한다해당 파일을 실행하는 데 사용해야 하는 쉘을 올바르게 지정하십시오.
sh
, , , , 등 bash
두 개의 서로 다르지만 관련된 쉘 입니다 .ksh
csh
zsh
fish
ash
dash
각 셸에는 고유한 구문, 기능, 습관 및 단점이 있습니다. 일부 셸은 서로 대체로 호환되지만(일반적으로 해당 셸용으로 작성된 스크립트는 sh
다른 많은 셸에서 실행되기도 함 bash
) 일부는 그렇지 않습니다.
답변2
내가 매일 발견하는 유일한 중요한 문제는 비교 연산자에 관한 bash
것입니다 . sh
이중 bash
같음 연산자는 ==
문자열 비교에 사용할 수 있습니다.
if [ "$var" == "foo" ]; then # bash
그러나 이는 sh
단일 동등 항목이 필요하기 때문에 구문 오류입니다.
if [ "$var" = "foo" ]; then # sh
이것이 유일한 차이점이라고 말하는 것은 아니지만 일반적인 문제입니다.