[Linux] shell: 쉘 프로그래밍-1

쉘은 터미널 수준에서 지원하는 가장 기본적인 명령어 집합 중 하나다.

리눅스에서는 bash, macOS에서는 zsh를 통해 쉘스크립트를 지원한다.

간단한 스크립트이면서도 꽤나 프로그래밍 언어에 근접하는 표현력을 갖고 있어서, 서버 환경에서 이런저런 작업을 자동화할때 굉장히 애용되는 녀석이다.

기본적인 문법요소에 대해서 조금씩 정리해보겠다.




Hello World 프로그램 작성

텍스트를 출력하는 방법은 매우 간단하다.
echo 명령어를 사용하면 된다.

그리고 쉘을 통해 실행한다.




변수

변수 선언법은 매우 단순하다.
A=B의 형태로 선언하면 되는데, 유의할 점은 shell에서는 모든 값이 문자열이라는 것이다.
그래서 숫자를 넣더라도 산술 연산을 하려면 $(()) 표현식을 씌워줘야 한다.

그리고 $ 보간을 통해 산술한 c 값을 문자열에 집어넣었다.

그럼 이렇게 실행될 것이다.




조건식: if-else

if-else문을 제공한다.






조건식: switch

다중분기문도 제공한다.
프로그래밍 언어들의 switch-case 문과 동등하다.

case - in을 통해 선언되고, 조건값) 의 형태로 각 절이 정의된다. 그리고 각 절은 ;;로 끝난다.
default는 *)로 표현된다.




반복문: while

가장 기본적인 형태의 반복문이다. 대부분의 언어에서 제공하는 while과 동등하다.
다음과 같이 작성하면 0에서 시작해서 총 6번 반복하는 증가형 루프가 된다.




반복문: for-in

범위값에 기반한 반복문이다. seq 명령 등으로 문자 순열을 만들거나, "1 2 3 4"같은 문자열을 받아서 순회를 시킬 수도 있다.

다음 코드는 for-in 문을 활용해서 구구단을 작성한 예제다.