!/bin/bash와 !/bin/sh의 차이점
- 쉘 스크립트를 작성할 때 종종
#!/bin/bash
와#!/bin/sh
가 사용된다.
sh란?
- sh는 bone shell이라고도 하며 가장 기본적인 쉘이다.
- 쉘이란 커널과 사용자를 연결해주는 하나의 매개체 역할을 한다.
- 쉘은 여러가지 형태로 만들어지지만 크게 csh 계열과 ksh 계열로 나뉜다.
csh
: c 언어를 기초로 관리자 중심으로 만들어진 쉘이고
ksh
: korn shell이라고 불리며 사용자 중심으로 만들어진 쉘이다.
bash란?
- 리눅스는 bash라는 쉘을 사용하며 이 의미는 born again shell의 의미를 가지고 있다.
- bash는 csh의 관리적인 측면과 ksh의 사용자 편의성 측면을 모두 고려하여 만들어진 쉘이다.
- 리눅스는 대부분의 쉘을 호환하여 사용할 수 있다.
- 따라서 크게 sh가 있고, 그 안에 bash가 속한다고 볼 수 있다.
결론
/bin/sh
, /bin/bash
는 쉘의 절대 경로 이다
- bash를 사용하면 프로그래밍을 현대적인 다른 프로그래밍 언어와 비슷하게 할 수 있다.
- 여기에는 지정된 지역 변수 및 배열과 같은 것이 포함된다.
- sh는 최소한의 프로그래밍 언어라고 보면 되겠다.
Reference
자기계발 - /bin/sh의 의미
bash - sh와 bash의 차이점