Linux

[Linux] Shell Script 문법

병호네 2025. 2. 14. 16:35

쉘 스크립트 문법

1. 명시

특별한 형태의 주석(#!)으로 첫 행에 꼭 아래의 행을 써줘야 함

"나 쉘스크립트 파일임"을 명시 하는것

 

 

2. 주석

쉘 스크립트의 주석은 파이썬과 같음  #으로 표기해주시면 됨

 

3. 변수 선언

쉘 스크립트에서도 변수 선언을 해줄 수 있음. 따로 자료형을 선언해주지 않으셔도 됨. 여기서 중요한 포인트가 있음. 

- 변수 선언시 등호를 이용하고, 변수 이름과 값 사이에 공백을 넣으면 안됨. 

생각보다 쉘 스크립트는 공백에 예민하니 주의. 

위에서 변수를 선언했으니 받아와야함

변수는 $기호(표현식)를 사용하여 받아옴. 

실행

 

 

4. 조건문

조건문은 기존과 동일하게 if, elif, else를 이용. 

단, 여기서는 조금 다른 부분이 있음. 

if, elif 뒤에는 then을 적어줘야하며, 조건문이 끝나는 부분에 fi를 적어줘야함 

여기서 주의사항! 

앞에서도 말씀드렸듯이 쉘 스크립트는 공백에 굉장히 예민함. 따라서 [ $name == "ComGongNuNa" ]괄호와 인자들 사이에 공백을 반드시 넣어주어야함. 

 

출력

 

 

5. 반복문

반복문도 for, in으로 사용가능함. 

여기서도 조금 다른점이 있음. 

for문을 돌기전 do 로시작을 알려야하며, 끝날 경우 done으로 명시해줘야 함. 

 

리스트

  • 리스트의 경우 공백을 기준으로 써줍니다. 

배열

  • 배열은 ()로 감싸주며, 콤마 없이 공백으로 구분합니다. 문자열, 숫자 모두 가능합니다. 

증가, 감소

  • 파이썬에서의 range는 {}으로 표현하며 ..으로 구분합니다.
  • range(1,10)은 {1..10}
  • range(1,10,2)는 {1..10..2}

 

여기서 또 다른 반복문인 while은 아래와 같이 사용. 

선언은 위와 동일하게 해주면됨.

while문 내의 수치 비교

 

사칙연산

 

연산자에는 +, -, /가 공통적으로 들어가며 expr곱셈에는 \*로 적어주시고, 일반 곱셈에는 *로 사용하시면 됩니다. 

 

6. 함수

함수도 파이썬과 굉장히 비슷함. 파이썬에서는 def로 선언해주지만, bash에서는 function 으로 선언.

 

함수 호출시에는 아래와 같이 사용합니다. 

 

 

함수에 인자를 줄 경우 호출 부분에서는 따로 명시해주지 않음. 

예를 들어 아래와 같이 출력하는 함수가 있다고 가정. 

여기서 $1, $2는 각각 첫번째, 두번째 인자임. 

아래와 같이 호출해 주면 함수의 인자가 들어가서 각각 1, 2가 출력 

 

공백 기준으로 인자를 넣어주시면 됩니다. 

 

출력