쉘 스크립트와 bash는 모두 리눅스와 유닉스 시스템에서 사용되는 스크립트 언어입니다. 그러나 둘은 약간의 차이점이 있습니다. 이번 주제에서는 둘의 차이점에 대해 자세히 알아보겠습니다.
쉘 스크립트는 리눅스와 유닉스 시스템에서 사용하는 명령어와 기능들을 스크립트 형태로 작성한 것입니다. 쉘 스크립트는 일련의 명령어를 실행할 수 있도록 하는 프로그램으로, 사용자의 입력이나 시스템의 자동 실행에 의해 실행될 수 있습니다.
Bash는 Bourne Again SHell의 약자로, 쉘 스크립트를 작성할 때 사용하는 인터프리터 중 하나입니다. Bash는 다양한 리눅스 배포판과 유닉스 시스템에서 기본 쉘로 사용되며, 대부분의 리눅스 사용자들이 익숙해지고 사용하는 쉘입니다.
쉘 스크립트와 Bash 모두 기본적으로 같은 문법을 사용하지만, 일부 차이점이 있습니다. 가장 큰 차이점은 변수 선언 방법입니다. 쉘 스크립트에서는 변수를 $VARNAME 형식으로 사용하지만, Bash에서는 ${VARNAME} 형식으로 사용합니다. 또한, Bash에서는 새로운 변수를 선언할 때 선언과 동시에 값을 할당할 수 있지만, 쉘 스크립트에서는 따로 값을 할당해야 합니다. 그 외에도, Bash에서는 배열 변수를 선언할 수 있고, 쉘 스크립트에서는 for 반복문에서 변수를 사용할 때 $를 붙이지 않아도 됩니다.
쉘 스크립트와 Bash 모두 실행 파일로서 사용됩니다. 쉘 스크립트를 실행할 때는 스크립트 파일에 실행 권한을 부여한 뒤 ./script.sh와 같은 형식으로 실행할 수 있습니다. Bash를 실행할 때는 터미널에서 bash를 입력하면 Bash 쉘을 실행할 수 있습니다.
#!/bin/bash
쉘 상단에 위와 같이 명시된 경우를 많이 보셨을 겁니다. 이는 bash 쉘로 실행시킨다는 의미입니다. 리눅스 배포판은 기본적으로 bash 쉘로 설정되어 있어 이와 같이 명시해주지 않더라도 bash로 실행됩니다. 그러나 프로그램이 명확히 인지할 수 있도록 선언해주는 것이 좋습니다.